一:csv格式文件导出
1、创建linux执行文件,例:law.sh
文件内容如下: export NLS_LANG=编码格式----select userenv('language') from dual,可通过此语句在数据库查询得到,用于解决导出数据中文乱码 sqlplus -s arms/ZC_gl_xt#db08@orcl <<EOF >/dev/null set echo off; set feedback off; set heading off; set verify off; set pagesize 0; set newp none; set trims on; set linesize 1500; set termout off; set trimout on; set trimspool on; set term off; spool ./law.csv @./law.sql; spool off; exit; EOF 内容说明: set colsep , #分割符 set feedback off #回显本次sql命令处理记录条数 set heading off #输出标题 set newp none #设置查询出来的数据分多少页显示,如果需要连续的数据,中间不要出现空行就把newp设置为none set pagesize 0 #输出每页行数,为了避免分页设置为0 set linesize 200 #每行大小,如果设置太小,会分行,最好是超好输出最大值 set trimout on #去除标准输出每行的拖尾空格 set termout off #显示脚本中的命令的执行结果 set echo on #设置运行命令是否显示语句 set numwidth 12 #输出number类型域长度
2、创建导出数据控制文件(一个sql语句),例:law.sql
select * from s_bch t where t.bch_level='2';
二:csv格式文件导入
1、创建linux执行文件,例:hn_poor_cif.sh
内容如下: echo "loader data henan.csv" sqlldr cmsii/cms5umx control=/cms/data/impdata/hn_poor_cif.ctl bad=/cms/data/impdata/hn_poor_cif.bad log=/cms/data/impdata/hn_poor_cif.log rows=1000 bindsize=10240000 内容说明: control:规则控制文件位置,需自行创建 bad:导入出错数据记录,执行程序后生成 log:导入过程日志记录 rows:每次导入行数 bindsize:每次导入大小控制
2、创建control控制文件,例:hn_poor_cif.ctl
内容如下: load data CHARACTERSET ZHS16GBK infile '/cms/data/impdata/cif_poor_inf_2020.csv' truncate into table cif_poor_inf_2020 fields terminated by ',' trailing nullcols (AREACODE,PROVINCE,CITY,COUNTRY,COUNTRYSIDE,VILLAGE,HZ_CIF_NAME,HBH,YHZGX,PKHSX,TPZT,HZ_ID_NO,CY_CIF_NAME,CY_ID_NO) 内容说明: 1:truncate into table,into table后面指定导入数据库表USER_INFO,且表名必须大写; insert :默认方式,在导入记录前要求表为空; append :在表中追加新导入的记录; replace :删除旧记录(等价delete from table语句),替换成新导入的记录; truncate:删除旧记录(等价truncate table语句),替换成新导入的记录; 2:fields terminated by ',',解析的文件分隔符