想把一批数据导入到oracle数据库中,用的是sqlload,现在这些数据中有些数据的时间是错的,所以我想把数据的其中一个时间字段和当前系统时间比较,如果比系统时间大,那么就把这条数据丢弃。如果比系统时间小,就入库。请问这个要怎么实现。求大神帮忙
------解决思路----------------------
-- 可以使用触发器,大体如下
SQL> create table a(id int , cdate date) ;
表已创建。
SQL> create table b(id int , cdate date) ;
表已创建。
SQL> create trigger a_ins
2 before insert on a
3 for each row
4 begin
5 if :new.cdate <= sysdate then
6 insert into b(id,cdate) values(:new.id , :new.cdate);
7 end if ;
8 end;
9 /
触发器已创建
SQL> begin
2 insert into a(id,cdate) values(1,sysdate -1) ;
3 insert into a(id,cdate) values(1,sysdate) ;
4 insert into a(id,cdate) values(1,sysdate +1) ;
5 end ;
6 /
PL/SQL 过程已成功完成。
SQL> select id,to_char(cdate,'yyyy-mm-dd hh24:mi:ss') cdate from a ;
ID CDATE
---------- -------------------
1 2015-05-21 13:14:46
1 2015-05-22 13:14:46
1 2015-05-23 13:14:46
SQL> select id,to_char(cdate,'yyyy-mm-dd hh24:mi:ss') cdate from b ;
ID CDATE
---------- -------------------
1 2015-05-21 13:14:46
1 2015-05-22 13:14:46
SQL>
SQL> drop table a purge ;
表已删除。
SQL> drop table b purge ;
表已删除。
SQL>