oracle sqlldr匯入匯出

2021-10-12 08:35:20 字數 2159 閱讀 8215

目錄

匯入例項

常見問題解決辦法

1 匯出大字段

2 換號符處理

3 資料檔案的字段超出最大長度

4 ora-12899: 列的值太大

5 遇到特殊字元&處理

參考**

sqlldr 資料型別

sqlldr 配置引數

qlplus 中執行sql 遇到特殊字元&處理

oracle 匯出 字元超長處理

開啟命令提示符,執行命令

sqlplus username/[email protected]:1521/orcl

--執行sql指令碼

@e:\2019_transdata\adlib4_db\建庫指令碼\oracle\0_基礎.sql

--匯入

sqlldr "'username/[email protected]:1521/orcl'" control=e:/1_exp_test.ctl log=e:/1_exp_test.log direct=true bad=e:/log/1_exp_test.bad rows=10000 errors=1000

1_exp_test.ctl內容如下:

load data

infile 'e:/1_exp_test.data' --修改對應的路徑和檔名

truncate into table exp_test --修改對應的表名

fields terminated by x'1b'  --修改對應的分割符

trailing nullcols

( filed1 ,

filed2 char(100000000)

)

ctl檔案中「trailing nullcols」中對應的clob欄位新增char(1000000000),括號數字大小要比clob字元長度大。

replace(a.filed2,'0x0a',chr(10))

sqlldr對於字元型別預設長度為255,如果超過255需要指定長度,見紅色下面ctl檔案中的紅色字型:

load data  

infile 'data_cn_01.dat' "str x'0d0a232323230d0a'"

into table tpis_pat_cn

fields terminated by '||||'

trailing nullcols

an,pn,

ab char(4000),

source constant 'sipo',

patent_id "seq_tpis_pat_base.nextval"

其錯誤原因在於從文字中讀取的字段值超過了資料庫表字段的長度,需要用oracle函式解決,如下紅色字型:

load data  

trailing nullcols

ab char(4000) "substrb(:ab,1,2000)",

原sql如:update trans_record set params = 'service=standard_bail&***=112' where trans_record_id = '3041';

執行時執行出現問題,提示輸入對應引數的值。

經查,問題就出在字元&上,他是乙個控制引數傳入的字元,要解決執行的問題,有如下幾種方式:

1、在sqlplus中執行set define off關閉特殊字元,關閉前可用show define檢視有哪些特殊字元;

2、update trans_record set params = 'service=standard_bail'||'&'||'***=112' where trans_record_id = '3041';

3、update trans_record set params = 'service=standard_bail'||chr(38)||'***=112' where trans_record_id = '3041';

4、update trans_record set params = 'service=standard_bail/&***=112' where trans_record_id = '3041';

以上4種方式推薦使用第一種方式,簡單,徹底解決特殊字元問題(前提是看清到底關閉了哪些特殊字元);因為特殊字元不止有&,還有%等;

oracle sqlldr匯入資料

執行命令 sqlldr userid epay epay control tmp test.ctl log tmp test.log data tmp test.csv rows 10 命令引數 userid oracle 的 username password servicename contro...

oracle sqlldr 匯入亂碼問題

具體情況,見附件,附件內有截圖。問題 oralce 使用 sqlldr 匯入資料 匯入成功後,進入相關的表中查詢為亂碼。a bss.ctl檔案內容 load data characterset utf8 infile bss.txt fields terminated by phone type c...

Python requirement 匯入匯出包

在使用python的時候,需要把安裝的package通過requirements.txt匯出來,乙個命令便可部署新環境。requirements.txt,是用於記錄所有依賴包及其精確的版本號。自動生成requirement.txt命令 pip freeze requirements.txt執行成功後...