【匯入匯出】sqlldr 匯入案例
今天使用sqlldr 將600w單欄位的資料匯入到一個表當中,但是由於未指定分隔符導致匯入資料失敗。重現一下匯入過程。
load.ctl
load data
infile 'd:\rid_600w.txt'
insert
into table tmp_user (tuid)
C:\Users\aaaa>sqlldr userid=yang/yang control=d:\load.ctl direct=true
SQL*Loader: Release 11.1.0.6.0 - Production on 星期三 3月 9 20:12:02 2011
Copyright (c) 1982, 2007, Oracle. All rights reserved.
載入完成 - 邏輯記錄計數 6070664。
==========sqlplus記錄
C:\Users\aaaa>sqlplus yang/yang
SQL*Plus: Release 11.1.0.6.0 - Production on 星期三 3月 9 19:42:28 2011
Copyright (c) 1982, 2007, Oracle. All rights reserved.
連線到:
Oracle Database 11g Enterprise Edition Release 11.1.0.6.0 - Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
yang@ORACL> create table tmp_user(tuid varchar2(100));
表已建立。
yang@ORACL> select tuid from tmp_user where rownum <12;
TUID
------------------------
c
c
c
c
c
c
c
c
c
c
c
已選擇11行。
===================匯入的日誌如下:注意 長度的值為1--失敗的關鍵。
SQL*Loader: Release 11.1.0.6.0 - Production on 星期三 3月 9 20:12:02 2011
Copyright (c) 1982, 2007, Oracle. All rights reserved.
控制檔案: d:\load.ctl
資料檔案: d:\rid_600w.txt
錯誤檔案: d:\rid_600w.bad
廢棄檔案: 未作指定
(可廢棄所有記錄)
要載入的數: ALL
要跳過的數: 0
允許的錯誤: 50
繼續: 未作指定
所用路徑: 直接
表 TMP_USER,已載入從每個邏輯記錄
插入選項對此表 INSERT 生效
列名 位置 長度 中止 包裝資料型別
------------------------------ ---------- ----- ---- ---- ---------------------
TUID FIRST 1 CHARACTER
表 TMP_USER:
6070664 行 載入成功。
由於資料錯誤, 0 行 沒有載入。
由於所有 WHEN 子句失敗, 0 行 沒有載入。
由於所有欄位都為空的, 0 行 沒有載入。
在直接路徑中沒有使用繫結陣列大小。
列陣列 行數: 5000
流緩衝區位元組數: 256000
讀取 緩衝區位元組數: 1048576
跳過的邏輯記錄總數: 0
讀取的邏輯記錄總數: 6070664
拒絕的邏輯記錄總數: 0
廢棄的邏輯記錄總數: 0
由 SQL*Loader 主執行緒載入的流緩衝區總數: 1259
由 SQL*Loader 載入執行緒載入的流緩衝區總數: 0
從 星期三 3月 09 20:12:02 2011 開始執行
在 星期三 3月 09 20:12:09 2011 處執行結束
經過時間為: 00: 00: 06.30
CPU 時間為: 00: 00: 01.98
錯誤的原因是因為沒有指出分割符。FIELDS TERMINATED BY ' '/FIELDS TERMINATED BY 'chr(10)' 都可以。
==========修改後的load 控制檔案====
load.ctl
load data
infile 'd:\rid_600w.txt'
insert
into table tmp_user FIELDS TERMINATED BY 'chr(10)' (tuid)
fields teriminated by 'chr(10)' 表示一換行符為分隔符
C:\Users\aaaa>sqlldr userid=yang/yang control=d:\load.ctl direct=true log=d:\sqlldr.log
SQL*Loader: Release 11.1.0.6.0 - Production on 星期三 3月 9 20:21:07 2011
Copyright (c) 1982, 2007, Oracle. All rights reserved.
載入完成 - 邏輯記錄計數 6070664。
yang@ORACL> truncate table tmp_user;
表被截斷。
yang@ORACL> drop table tmp_user;
表已刪除。
yang@ORACL> create table tmp_user(tuid varchar2(50));
表已建立。
yang@ORACL> select tuid from tmp_user where rownum <12;
TUID
--------------------------
cindy74583
himself49441
paragraph58429
wander80900
soluble32354
situation72689
gross51644
lee54299
dismiss32151
eyesight1968
advance7776
已選擇11行。
yang@ORACL>
===================匯入的日誌如下:注意 長度的值為*
SQL*Loader: Release 11.1.0.6.0 - Production on 星期三 3月 9 20:21:07 2011
Copyright (c) 1982, 2007, Oracle. All rights reserved.
控制檔案: d:\load.ctl
資料檔案: d:\rid_600w.txt
錯誤檔案: d:\rid_600w.bad
廢棄檔案: 未作指定
(可廢棄所有記錄)
要載入的數: ALL
要跳過的數: 0
允許的錯誤: 50
繼續: 未作指定
所用路徑: 直接
表 TMP_USER,已載入從每個邏輯記錄
插入選項對此表 INSERT 生效
列名 位置 長度 中止 包裝資料型別
------------------------------ ---------- ----- ---- ---- ---------------------
TUID FIRST * CHARACTER
終止符字串: 'chr(10)'
表 TMP_USER:
6070664 行 載入成功。
由於資料錯誤, 0 行 沒有載入。
由於所有 WHEN 子句失敗, 0 行 沒有載入。
由於所有欄位都為空的, 0 行 沒有載入。
在直接路徑中沒有使用繫結陣列大小。
列陣列 行數: 5000
流緩衝區位元組數: 256000
讀取 緩衝區位元組數: 1048576
跳過的邏輯記錄總數: 0
讀取的邏輯記錄總數: 6070664
拒絕的邏輯記錄總數: 0
廢棄的邏輯記錄總數: 0
由 SQL*Loader 主執行緒載入的流緩衝區總數: 1259
由 SQL*Loader 載入執行緒載入的流緩衝區總數: 0
從 星期三 3月 09 20:21:07 2011 開始執行
在 星期三 3月 09 20:21:17 2011 處執行結束
經過時間為: 00: 00: 09.89
CPU 時間為: 00: 00: 05.82
load.ctl
load data
infile 'd:\rid_600w.txt'
insert
into table tmp_user (tuid)
C:\Users\aaaa>sqlldr userid=yang/yang control=d:\load.ctl direct=true
SQL*Loader: Release 11.1.0.6.0 - Production on 星期三 3月 9 20:12:02 2011
Copyright (c) 1982, 2007, Oracle. All rights reserved.
載入完成 - 邏輯記錄計數 6070664。
==========sqlplus記錄
C:\Users\aaaa>sqlplus yang/yang
SQL*Plus: Release 11.1.0.6.0 - Production on 星期三 3月 9 19:42:28 2011
Copyright (c) 1982, 2007, Oracle. All rights reserved.
連線到:
Oracle Database 11g Enterprise Edition Release 11.1.0.6.0 - Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
yang@ORACL> create table tmp_user(tuid varchar2(100));
表已建立。
yang@ORACL> select tuid from tmp_user where rownum <12;
TUID
------------------------
c
c
c
c
c
c
c
c
c
c
c
已選擇11行。
===================匯入的日誌如下:注意 長度的值為1--失敗的關鍵。
SQL*Loader: Release 11.1.0.6.0 - Production on 星期三 3月 9 20:12:02 2011
Copyright (c) 1982, 2007, Oracle. All rights reserved.
控制檔案: d:\load.ctl
資料檔案: d:\rid_600w.txt
錯誤檔案: d:\rid_600w.bad
廢棄檔案: 未作指定
(可廢棄所有記錄)
要載入的數: ALL
要跳過的數: 0
允許的錯誤: 50
繼續: 未作指定
所用路徑: 直接
表 TMP_USER,已載入從每個邏輯記錄
插入選項對此表 INSERT 生效
列名 位置 長度 中止 包裝資料型別
------------------------------ ---------- ----- ---- ---- ---------------------
TUID FIRST 1 CHARACTER
表 TMP_USER:
6070664 行 載入成功。
由於資料錯誤, 0 行 沒有載入。
由於所有 WHEN 子句失敗, 0 行 沒有載入。
由於所有欄位都為空的, 0 行 沒有載入。
在直接路徑中沒有使用繫結陣列大小。
列陣列 行數: 5000
流緩衝區位元組數: 256000
讀取 緩衝區位元組數: 1048576
跳過的邏輯記錄總數: 0
讀取的邏輯記錄總數: 6070664
拒絕的邏輯記錄總數: 0
廢棄的邏輯記錄總數: 0
由 SQL*Loader 主執行緒載入的流緩衝區總數: 1259
由 SQL*Loader 載入執行緒載入的流緩衝區總數: 0
從 星期三 3月 09 20:12:02 2011 開始執行
在 星期三 3月 09 20:12:09 2011 處執行結束
經過時間為: 00: 00: 06.30
CPU 時間為: 00: 00: 01.98
錯誤的原因是因為沒有指出分割符。FIELDS TERMINATED BY ' '/FIELDS TERMINATED BY 'chr(10)' 都可以。
==========修改後的load 控制檔案====
load.ctl
load data
infile 'd:\rid_600w.txt'
insert
into table tmp_user FIELDS TERMINATED BY 'chr(10)' (tuid)
fields teriminated by 'chr(10)' 表示一換行符為分隔符
C:\Users\aaaa>sqlldr userid=yang/yang control=d:\load.ctl direct=true log=d:\sqlldr.log
SQL*Loader: Release 11.1.0.6.0 - Production on 星期三 3月 9 20:21:07 2011
Copyright (c) 1982, 2007, Oracle. All rights reserved.
載入完成 - 邏輯記錄計數 6070664。
yang@ORACL> truncate table tmp_user;
表被截斷。
yang@ORACL> drop table tmp_user;
表已刪除。
yang@ORACL> create table tmp_user(tuid varchar2(50));
表已建立。
yang@ORACL> select tuid from tmp_user where rownum <12;
TUID
--------------------------
cindy74583
himself49441
paragraph58429
wander80900
soluble32354
situation72689
gross51644
lee54299
dismiss32151
eyesight1968
advance7776
已選擇11行。
yang@ORACL>
===================匯入的日誌如下:注意 長度的值為*
SQL*Loader: Release 11.1.0.6.0 - Production on 星期三 3月 9 20:21:07 2011
Copyright (c) 1982, 2007, Oracle. All rights reserved.
控制檔案: d:\load.ctl
資料檔案: d:\rid_600w.txt
錯誤檔案: d:\rid_600w.bad
廢棄檔案: 未作指定
(可廢棄所有記錄)
要載入的數: ALL
要跳過的數: 0
允許的錯誤: 50
繼續: 未作指定
所用路徑: 直接
表 TMP_USER,已載入從每個邏輯記錄
插入選項對此表 INSERT 生效
列名 位置 長度 中止 包裝資料型別
------------------------------ ---------- ----- ---- ---- ---------------------
TUID FIRST * CHARACTER
終止符字串: 'chr(10)'
表 TMP_USER:
6070664 行 載入成功。
由於資料錯誤, 0 行 沒有載入。
由於所有 WHEN 子句失敗, 0 行 沒有載入。
由於所有欄位都為空的, 0 行 沒有載入。
在直接路徑中沒有使用繫結陣列大小。
列陣列 行數: 5000
流緩衝區位元組數: 256000
讀取 緩衝區位元組數: 1048576
跳過的邏輯記錄總數: 0
讀取的邏輯記錄總數: 6070664
拒絕的邏輯記錄總數: 0
廢棄的邏輯記錄總數: 0
由 SQL*Loader 主執行緒載入的流緩衝區總數: 1259
由 SQL*Loader 載入執行緒載入的流緩衝區總數: 0
從 星期三 3月 09 20:21:07 2011 開始執行
在 星期三 3月 09 20:21:17 2011 處執行結束
經過時間為: 00: 00: 09.89
CPU 時間為: 00: 00: 05.82
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/22664653/viewspace-688865/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Activity 流程模型匯入匯出-activity流程模型匯入匯出模型
- Mysql匯入&匯出MySql
- doris匯入匯出
- esayExcel匯入匯出Excel
- vue excel匯入匯出VueExcel
- navlicat 匯入匯出SQLSQL
- Oracle資料庫匯入匯出。imp匯入命令和exp匯出命令Oracle資料庫
- Angular Excel 匯入與匯出AngularExcel
- sqoop資料匯入匯出OOP
- Oracle 資料匯入匯出Oracle
- 資料泵匯出匯入
- .net6 匯入匯出
- Oracle資料匯入匯出Oracle
- phpMyAdmin匯入/匯出資料PHP
- 【docker】docker映象匯出匯入Docker
- ASP.NET 開源匯入匯出庫Magicodes.IE 完成Csv匯入匯出ASP.NET
- 原生PHP網頁匯出和匯入excel檔案例項PHP網頁Excel
- MySQL入門--匯出和匯入資料MySql
- vue + element + 匯入、匯出excel表格VueExcel
- sqoop部署及匯入與匯出OOP
- (十一)Electron 匯入匯出檔案
- docker匯入&匯出離線映象Docker
- SQLServer匯出匯入資料到MySQLServerMySql
- kxcel, 方便匯入和匯出 ExcelExcel
- AWR跨庫匯出與匯入
- datapump 匯出匯入ORA-07445
- Colab pydrive 匯入匯出csv(pandas)
- Vue框架下實現匯入匯出Excel、匯出PDFVue框架Excel
- [Docker核心之容器、資料庫檔案的匯入匯出、容器映象的匯入匯出]Docker資料庫
- Mongodb資料的匯出與匯入MongoDB
- IDEA 匯出和匯入jar包教程IdeaJAR
- oracle資料匯出匯入(exp/imp)Oracle
- 匯入和匯出AWR的資料
- 如何使用 JavaScript 匯入和匯出 ExcelJavaScriptExcel
- EasyPoi, Excel資料的匯入匯出Excel
- Vue + Element 實現匯入匯出ExcelVueExcel
- 伺服器批次匯入與匯出伺服器
- esxi 虛擬機器 匯出 & 匯入虛擬機
- Mysql 資料庫匯入與匯出MySql資料庫