sqlldr 匯入有逗號的文字格式入庫

2021-10-07 19:29:42 字數 1500 閱讀 1881

1.建表

2.建立ora.ctl

infile 『測試.txt』

replace into table test08

( id char terminated by 『,』,

usernmae char terminated by 『,』,

mobile char terminated by 『,』,

identified_card char terminated by 『,』,

address char terminated by whitespace

)3.把xls的excel 另存為csv,開啟csv,另存為utf-8的記事本檔案上傳到linux

4.執行語句

sqlldr userid=datawork/123@orclpdb control=ora.ctl log=./imptable/load.log

遇到的問題:

開啟的txt為亂碼,是windows的編碼格式為gbk,linux為utf-8,需要在windows上編碼為utf-8;或者inconv設定編碼

檢查ctl檔案和txt檔案的逗號是否為英文 「,」

檢查使用者的預設表空間是否為指定表空間,是否有使用權

查詢:select username,default_tablespace from dba_users where username=『datawork』;

格式:alter user datawork quota unlimited on users;

併發操作:

sqlldr userid=/ control=result1.ctl direct=true parallel=true

sqlldr userid=/ control=result2.ctl direct=true parallel=true

sqlldr userid=/ control=result2.ctl direct=true parallel=true

當載入大量資料時(大約超過10gb),抑制日誌的產生:

sql>alter table resultxt nologging;

這樣不產生redo log,可以提高效率。然後在control檔案中load data上面加一行:unrecoverable

此選項必須要與direct共同應用。

在併發操作時,oracle聲稱可以達到每小時處理100gb資料的能力!其實,估計能到1-10g就算不錯了,開始可用結構

相同的檔案,但只有少量資料,成功後開始載入大量資料,這樣可以避免時間的浪費。

參***

SQLLDR匯入亂碼問題的解決

處理過程 1 本地建立控制檔案 load data infile d tmp kaitoushuju.csv into table tmp kaitoushuju fields terminated by trade co,full name,customs code,co class,valid ...

SQLLDR匯入亂碼問題的解決

場景 業務部門要求匯入一批資料,是csv格式的,大家就想到了excel格式可以開啟,但悲劇的是該批資料超過10萬條,用excel處理顯然行不通,更悲劇的是開啟直接就是亂碼。於是筆者接了單子,籌畫用sqlldr進行匯入。話說7年前做野村 的batch系統時大量的使用了unix shell呼叫oracl...

sqlldr命令 將文字格式資料匯入到資料庫

第一步 寫乙個 ctl格式的控制檔案 load data 控制檔案標識 characterset utf8 格式統一utf8 infile u01 mbd dy channel.txt 要匯入的資料檔名 提前把這txt檔案放入目錄下 fields terminated by 外部檔案的資料以 分隔 ...