请赐教,谢谢。数据库结构是:
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')};问题有点多,谢谢各位。
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')};问题有点多,谢谢各位。
第三次操作不适合研究。
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呢?