请赐教,谢谢。数据库结构是:
SQL> DESC FISHERUSER.PASSWORD_NEW0509FLT;
 名称                                      是否为空? 类型
 ----------------------------------------- -------- -------------------------- MSG_TIME                                           DATE
 RECORD_ID                                          NUMBER(10)
 SORT_IP                                            NUMBER(10)
 DEST_IP                                            NUMBER(10)
 SORT_PORT                                          NUMBER(10)
 DEST_PORT                                          NUMBER(10)
 PROTOCOL_TYPE                                      NUMBER(3)
 PHY_SORT_IP                                        VARCHAR2(256)
 PHY_DEST_IP                                        VARCHAR2(256)
 USER_NAME                                          VARCHAR2(256)
 PASSWORD                                           VARCHAR2(256)
 DOMAIN                                             VARCHAR2(256)
 CORRECT_FLAG                                       NUMBER(1)
 REPEAT_COUNTS                                      NUMBER(10)
 ZHLY_GET                                           NUMBER(1)
 IMP_LEVEL                                          NUMBER(10)
 IMP_INFO                                           VARCHAR2(256)数据共1亿条。
本人创建了一个新表,并将 SORT_IP, DEST_IP, USER_NAME , PASSWORD 为主键,想以此来来滤重 。
第一次操作:
insert into FISHERUSER.PASSWORD_NEW0509FLT1 select * from FISHERUSER.PASSWORD_NEW0509FLT where length(user_name)<25 and 
length(password) < 25;   
出现错误:“ora-00001 违反唯一性错误”。第二次操作:insert into FISHERUSER.PASSWORD_NEW0509FLT1(sort_ip,dest_ip,user_name,password, msg_time, record_id, sort_port,dest_port, protocol_type, phy_sort_ip, phy_dest_ip, domain, correct_flag, repeat_counts, zhly_get, imp_level, imp_info)
values ( select distinct t.sort_ip, t.dest_ip, t.user_name, t.password, msg_time, record_id, sort_port, dest_port, protocol_type, phy_sort_ip, phy_dest_ip, domain, correct_flag, repeat_counts, zhly_get, imp_level, imp_info 
from FISHERUSER.PASSWORD_NEW0509FLT;第 2 行出现错误:
ORA-00936: 缺失表达式确实不知道第二行出现了什么错误啊!
第三次操作:
  本人想根据user_name 的第一个字母来建立partition,譬如'A-E'放在一个partition中,'F-I'放入另一个partition中。sql 语句 
Create -----
partition by range(UPPPER(substring(user_name,0,1)))
{
 partition p1 values less than('E'),
 partition p2 values less than('I')};问题有点多,谢谢各位。

解决方案 »

  1.   

    第二次操作中,“values ( ”多余,语法错误。
    第三次操作不适合研究。
      

  2.   

    谢谢楼上的指点,但依然出错,“T”."password":标识符无效
      

  3.   

    insert into FISHERUSER.PASSWORD_NEW0509FLT1(sort_ip,dest_ip,user_name,password, msg_time, record_id, sort_port,dest_port, protocol_type, phy_sort_ip, phy_dest_ip, domain, correct_flag, repeat_counts, zhly_get, imp_level, imp_info)
    select distinct t.sort_ip, t.dest_ip, t.user_name, t.password, msg_time, record_id, sort_port, dest_port, protocol_type, phy_sort_ip, phy_dest_ip, domain, correct_flag, repeat_counts, zhly_get, imp_level, imp_info  
    from FISHERUSER.PASSWORD_NEW0509FLT;
     为什么要加VALUES呢?