使用sqlload匯入外部資料
SQL> desc emp_enc
Name Type Nullable Default Comments
----- ------------ -------- ------- --------
ENAME VARCHAR2(10) Y
EMPNO NUMBER(4) Y
SAL NUMBER(7,2) Y
需要匯入的txt檔案,以逗號分隔
load.txt
aa,1,100
cc,2,222
dd,3,221
js,4,231
jdj,38,282892(這天記錄長度過長,所以待會會匯入失敗)
sqlload 控制檔案所要用到的引數
OPTIONS (skip=1,rows=128) -- sqlldr 命令顯示的選項可以寫到這裡邊來,skip=1
用來跳過資料中的第一行
LOAD DATA
INFILE "users_data.csv"
--指定外部資料檔案,可以是不同格式的資料檔案,如csv、txt都支援
可以寫多個 INFILE "another_data_file.csv"
指定多個資料檔案
truncate --操作型別,用 truncate table
來清除表中原有記錄,根據情況而定是否需要清楚原有表中資料
INTO TABLE users --要插入記錄的表
Fields
terminated by "," --資料中每行記錄用 "," 分隔
Optionally enclosed by '"'
--資料中每個欄位用 '"' 框起,比如欄位中有 "," 分隔符時
trailing nullcols
--表的欄位沒有對應的值時允許為空
(
virtual_column FILLER, --這是一個虛擬欄位,用來跳過由 PL/SQL
Developer 生成的第一列序號
user_id number, --欄位可以指定型別,否則認為是 CHARACTER 型別,
log 檔案中有顯示
user_name,
login_times,
last_login DATE "YYYY-MM-DD
HH24:MI:SS" -- 指定接受日期的格式,相當用 to_date() 函式轉換
)
insert --為預設方式,在資料裝載開始時要求表為空
append --在表中追加新記錄
replace --刪除舊記錄(用
delete from table 語句),替換成新裝載的記錄
truncate --刪除舊記錄(用 truncate table
語句),替換成新裝載的記錄
根據上面的引數寫入到一個文字,(將原表truncate後,再插入)
LOAD DATA
INFILE 'D:\load.txt'
INTO TABLE test
TRUNCATE
fields terminated by ','
trailing nullcols
(ENAME,EMPNO,SAL)
C:>sqlldr scott/tiger@ab control=D:\control.txt log=D:\log.txt bad=D:\load\bad.txt
SQL*Loader: Release 11.2.0.1.0 - Production on 星期五 11月 20 15:19:07 2015
Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved.
達到提交點 - 邏輯記錄計數 4
達到提交點 - 邏輯記錄計數 5
匯入成功,違規的記錄放在bad.txt裡
SQL> select * from emp_enc;
ENAME EMPNO SAL
---------- ----- ---------
aa 1 100.00
cc 2 222.00
dd 3 221.00
js 4 231.00
修改控制檔案,不請空原表,再匯入,會報錯
LOAD DATA
INFILE 'D:\load.txt'
INTO TABLE test
fields terminated by ','
trailing nullcols
(ENAME,EMPNO,SAL)
SQL*Loader-601: 對於 INSERT 選項, 表必須為空。表 EMP_ENC 上出錯
需要修改控制檔案
LOAD DATA
INFILE 'D:\load.txt'
APPEND INTO TABLE testfields terminated by ','
trailing nullcols
(ENAME,EMPNO,SAL)
sqlload的用法: sqlload keyword=value [,keyword=value,...]
有效的關鍵字:
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 (預設 NO
T_USED)
columnarrayrows -- 直接路徑列陣列的行數 (預設
5000)
streamsize -- 直接路徑流緩衝區的大小 (以位元組計) (預設 256000)
multithreading --
在直接路徑中使用多執行緒
resumable -- 啟用或禁用當前的可恢復會話 (預設 FALSE)
resumable_name --
有助於標識可恢復語句的文字字串
resumable_timeout -- RESUMABLE 的等待時間 (以秒計) (預設
7200)
date_cache -- 日期轉換快取記憶體的大小 (以條目計) (預設 1000)
no_index_errors --
出現任何索引錯誤時中止載入 (預設 FALSE)
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/27500440/viewspace-1842094/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- pandas的外部資料匯入與常用方法
- fdw批次匯入外部表
- 如何將外部資料庫 匯入到系統的SQL中資料庫SQL
- NumPy之:使用genfromtxt匯入資料
- Oracle使用資料泵expdp,impdp進行資料匯出匯入Oracle
- mongodb使用自帶命令工具匯出匯入資料MongoDB
- 使用Dbeaver 進行資料的匯入和匯出
- 使用VUE+SpringBoot+EasyExcel 整合匯入匯出資料VueSpring BootExcel
- 使用Oracle SQL Developer匯入Excel資料OracleSQLDeveloperExcel
- 資料庫 MySQL 資料匯入匯出資料庫MySql
- sqoop資料匯入匯出OOP
- Oracle 資料匯入匯出Oracle
- 資料泵匯出匯入
- Oracle資料匯入匯出Oracle
- phpMyAdmin匯入/匯出資料PHP
- 使用csv批量匯入、匯出資料的需求處理
- 大文字資料,匯入匯出到資料庫資料庫
- MySQL入門--匯出和匯入資料MySql
- MATLAB匯入資料Matlab
- 資料匯入終章:如何將HBase的資料匯入HDFS?
- 【oracle 多種形式的外部表匯入、匯出】實驗Oracle
- Mongodb資料的匯出與匯入MongoDB
- oracle資料匯出匯入(exp/imp)Oracle
- 匯入和匯出AWR的資料
- EasyPoi, Excel資料的匯入匯出Excel
- Mysql 資料庫匯入與匯出MySql資料庫
- IDEA如何匯入外部依賴的jar包IdeaJAR
- Excel 表匯入資料Excel
- MySQL資料的匯入MySql
- Oracle 資料匯入ExcelOracleExcel
- mysqlimport 資料匯入程式MySqlImport
- Oracle資料庫匯入匯出。imp匯入命令和exp匯出命令Oracle資料庫
- PHP大資料xlswriter匯入匯出(最優資料化)PHP大資料
- 使用navicat匯出查詢大量資料結果集並匯入到其他資料庫(mysql)資料庫MySql
- Oracle資料泵匯出匯入(expdp/impdp)Oracle
- 【最佳實踐】MongoDB匯出匯入資料MongoDB
- SQL資料庫的匯入和匯出SQL資料庫
- Oracle資料泵的匯入和匯出Oracle
- 複雜「場景」資料匯入匯出