Oracle-csv格式文件導入導出


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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM