--0、导出数据 将数据导出为excel,再复制到UE中,保存为txt格式 select '"' ||ECIF_CUST_NO|| '",'||'"' ||replace (name,' ','') || '",'||'"' ||CERT_TYPE|| '",'||'"' ||CERT_NO || '"' as A from t_usr_reg_info where USER_CERT_LEVEL = '05' and ECIF_CUST_NO is null ; --1、创建临时表 create table t_usr_reg_info_temp ( ECIF_CUST_NO VARCHAR2(14), NAME VARCHAR2(120), CERT_TYPE CHAR(1), CERT_NO VARCHAR2(30) ) --2、cmd 往临时表中灌入数据 sqlldr ebbc/ebbc@EBBC_10.16.10.54 control=e:\t_usr_mobile_reserveinfo.ctl log=e:\t_usr_mobile_reserveinfo.log errors=1000000 rows=10000 bindsize=5120000 readsize=5120000 其中,ebbcusr_x/ebbcusr_x@uatb_ebbcusr 指的是用户名和密码和数据库路径、control=f:\ecif\t_usr_mobile_reserveinfo.ctl 指的是ctl脚本文件的存放路径、log=f:\ecif\t_usr_mobile_reserveinfo.log 指的是日志的存放路径、errors=1000000执行时报错的条数,超过了就会打断不会继续往下走了,但是执行的了,就会事物提交、 rows=10000 每次提交事物的条数、其中,具体见t_usr_mobile_reserveinfo.ctl,里面会筛选出没有成功的数据 --其中,t_usr_mobile_reserveinfo.ctl文件具体内容 LOAD DATA CHARACTERSET UTF8 --编码格式 INFILE 'E:\ecif_cust_no_bak.txt' --导出的数据,按"20380000299000","文学蓉","0","510624196304284868"格式添加到临时表中 BADFILE 'E:\ecif_cust_no_bak.bad' --执行失败的数据 APPEND INTO TABLE t_usr_reg_info_temp FIELDS TERMINATED BY "," --按逗号分隔 OPTIONALLY ENCLOSED BY '"' --去除双引号 TRAILING NULLCOLS ( ECIF_CUST_NO , Name , CERT_TYPE , CERT_NO ) --3、验证数据 select * from t_usr_reg_info_temp --4、更新数据 update t_usr_reg_info a set a.ecif_cust_no=(select b.ecif_cust_no from t_usr_reg_info_temp b where a.cert_no=b.cert_no and a.cert_type=b.cert_type) where (cert_no,cert_type) in ( select cert_no,cert_type from t_usr_reg_info_temp );
批量更新/导入数据
猜你喜欢
转载自sophyly.iteye.com/blog/2270682
今日推荐
周排行