我使用的是delphi+Oracle,使用DBExpress连接数据库。现在有一个问题,
我的程序实现这样的一个功能:把数据从文本里面导入到数据库(分别有两个不同的表,从两个不同的文本文件之中导入)中,然后在两个表之间进行查找表A有,但是表B没有的数据。
因为每次执行查找的时候都会执行导入功能,所以有时候会出现同样的纪录被导入了很多次,数据库里面有了很多同样的纪录,这样不是我想要的结果。所以我希望,同样的记录在数据库只有一条!有两种做法:
1、在插入之前先检查是否在数据库里面已经存在了同样的记录;
2、先不检查,导入数据库之后再检查。因为第一个方法不是很适合我的目前情况(我的文本文件记录数达到20多万条的,一条一条判断太慢了),所以我希望采用第二个方法。
请问,在一个表格里面,我可以用什么方法去掉那些多余的同样记录?
需要用到临时表么?
在delphi里面的具体语法是怎么样的?还有,顺便问问一个oracle的问题,为什么我使用
create table testtb parallel (degree 4)
(name varchar2(20));
这样的语句无法建立表格?难道并行处理那个语句有错误么?数据库提示错误如下:
SVRMGR> create table testtb parallel (degree 4)
     2> (name varchar2(20));
(name varchar2(20))
*
ORA-00922: 缺少或无效选项请问我该怎么样作才能够建立一个可以并行处理的数据表?

解决方案 »

  1.   

    你表里没有设关键字吗?要不怎么会有重复记录?
    select distinct * from biao是查出不重复的记录。
      

  2.   

    先将数据导入临时表中,再用
    insert into 你的真实表 
    select distinct * from 临时表
      

  3.   

    To  lwk_hlj(阿凯(向双星努力)) ,
    是啊,不过我在操作的过程之中,发现了一个问题,首先,
    create global temporary tmp_ba as
    select * from ba 
    这样建立的临时表竟然是空的!除了字段信息之外,一条记录都没有在我的ba表格copy 过去。
    另外,这个临时表在我退出程序的时候竟然不是自动被删除的,还保存在数据库系统里面!sigh