Oracle 匯入資料

2021-06-28 11:14:03 字數 3397 閱讀 9029

一、文字型別資料匯入資料庫

1.如果匯入的資料條數小於10萬條,用plsql自帶的文字匯入器比較方便。

2.如果匯入的資料較大,用sqlldr這種方法效率最高

有效的關鍵字:

userid -- oracle 使用者名稱/口令

control -- 控制檔名

log -- 日誌檔名

bad -- 錯誤檔名

data -- 資料檔名

discard -- 廢棄檔名

discardmax -- 允許廢棄的檔案的數目         (全部預設)

skip -- 要跳過的邏輯記錄的數目  (預設 0)

load -- 要載入的邏輯記錄的數目  (全部預設)

errors -- 允許的錯誤的數目         (預設 50)

rows -- 常規路徑繫結陣列中或直接路徑儲存資料間的行數

(預設: 常規路徑 64, 所有直接路徑)

bindsize -- 常規路徑繫結陣列的大小 (以位元組計)  (預設 256000)

silent -- 執行過程中隱藏訊息 (標題,反饋,錯誤,廢棄,分割槽)

direct -- 使用直接路徑                     (預設 false)

parfile -- 引數檔案: 包含引數說明的檔案的名稱

parallel -- 執行並行載入                    (預設 false)

file -- 要從以下物件中分配區的檔案

skip_unusable_indexes -- 不允許/允許使用無用的索引或索引分割槽  (預設 false)

skip_index_maintenance -- 沒有維護索引, 將受到影響的索引標記為無用  (預設 false)

commit_discontinued -- 提交載入中斷時已載入的行  (預設 false)

readsize -- 讀取緩衝區的大小               (預設 1048576)

external_table -- 使用外部表進行載入; not_used, generate_only, execute  (預設 not_used)

columnarrayrows -- 直接路徑列陣列的行數  (預設 5000)

streamsize -- 直接路徑流緩衝區的大小 (以位元組計)  (預設 256000)

multithreading -- 在直接路徑中使用多執行緒

resumable -- 啟用或禁用當前的可恢復會話  (預設 false)

resumable_name -- 有助於標識可恢復語句的文字字串

resumable_timeout -- resumable 的等待時間 (以秒計)  (預設 7200)

date_cache -- 日期轉換快取記憶體的大小 (以條目計)  (預設 1000)

no_index_errors -- 出現任何索引錯誤時中止載入  (預設 false)

下面是我的資料檔案data.txt的格式:

xa0010011,88721,201207

xa0010012,88722,201207

......

下面是我的資料表的結構:

create table sqlldr_test

(user_no varchar2(100),

user_rate number,

month_id varchar2(6)

)。那麼,sqlldr的控制檔案control.ctl應該這樣寫: 

load data

infile

'e:\data.txt

'into table sqlldr_test

fields terminated by ',

'trailing nullcols

( user_no,

user_rate,

month_id

)

我的文字檔案中,資料是用逗號「,」分割的,這句一定要寫。

trailing nullcols代表表的字段沒有值時,允許為空。

到此為止,控制檔案的寫作就算完成了,已經可以滿足我的應用了。

命令列的命令如下:

sqlldr username/password@obama control=control.ctl log=log.log bad=bad.log errors=5000 rows=500
我覺得需要說的應該就是rows了,因為從最開始接觸oracle就有人告訴我,每次插入資料的時候,最好每多少多少行提交一次,因為undo空間是有限的。至於每次使用sqlldr的時候多少行提交一次,我想應該根據自己的檔案大小決定。

記得記日誌,不然錯了你都不知道錯到**了。

二、excel型別資料匯入資料庫

三、dmp、sql等型別的資料格式匯入資料庫

1.將d:\daochu.dmp 中的資料匯入 test資料庫中。

imp username/password@orclfull=y file=

d:\xx.dmp ignore=y   

將d:\daochu.dmp中的表table1 匯入  

imp username/password@orcl file=d:\daochu.dmp tables=(table1)  

2.sql型別資料直接在oracle命令視窗按@,回車選擇檔案即可。

Oracle匯入資料

oracle匯入資料 在sql plus中 1.c test.sql 2.imp 3.impdp server端 a.conn sys sys as sysdba b.creat directory dumpin idr as d dump c.grant read,write on directo...

oracle匯入資料

create the user create user user identified by 123456 default tablespace users temporary tablespace temp profile default password expire grant revoke ...

oracle匯入資料

oracle匯入資料時出現的問題 alter user spowner default tablespace users ora 00959 表空間 tbs arch risk 不存在 create tablespace tbs arch risk datafile c oracle product...