一: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 ',',解析的文件分隔符