使用SQL*Loader匯入CLOB和BLOB資料使用案例
在之前的四篇文章中,介紹了SQL*Loader的使用方法及使用案例,本篇使用SQL*Loader匯入CLOB和BLOB資料
Oracle SQL*Loader使用案例(一)
Oracle SQL*Loader使用案例(二)
Oracle SQL*Loader使用案例(三)
Oracle SQL*Loader使用案例(四)
在使用SQL*Loader往資料庫中匯入blob或clob資料總令人有些頭疼。本文詳細記錄了用Oracle的SQL*Loader實現該功能的一個實驗案例,希望能對大家有幫助。
首先建立一張用於實驗的測試表
SCOTT@seiang11g>create table tb_clob(new_id number(20),new_to
varchar2(100),new_subject varchar2(100),new_date date,new_content clob);
Table created.
下面是資料檔案中的內容:
[oracle@wjq
SQL*Loader]$ vim
wjq_clob.csv
1,wjq123@qq.com,"Greeting from Mars",2017-11-02
10:59:43,\/u01\/app\/oracle\/SQL*Loader\/new_clob001.dat
2,seiang@126.com,"Special discount",2017-11-02
11:28:55,\/u01\/app\/oracle\/SQL*Loader\/new_clob002.dat
(特別注意:一定要注意資料檔案的格式,不能有多餘的空格存在,作者在這裡栽過好多次的坑,否則匯入的時候會報錯,所以執行匯入之後最好檢視一下日誌資訊)
new_content是訊息正文,用clob資料型別表示。在資料檔案中該欄位僅儲存每條記錄的訊息正文的clob檔名。new_clob001.dat,,new_clob002.dat檔案中儲存new_content的真正內容。
new_clob001.dat檔案中的內容:
[oracle@wjq SQL*Loader]$ cat new_clob001.dat
China's top judicial authorities presented long-anticipated reports on
Wednesday to national legislators on their progress in upholding the law and
preventing wrongful convictions in the wake of important judicial reforms in
2013.
The Supreme People's Court and Supreme People's Procuratorate both submitted
reports to the bimonthly session of the Standing Committee of the National
People's Congress on Wednesday.The top court said it had overturned 37 wrongful
convictions since November 2012, including in the high-profile case of Nie
Shubin, who was exonerated on Dec 2, 2016, more than two decades after he was
wrongly executed for rape and murder.
new_clob001.dat檔案中的內容:
[oracle@wjq SQL*Loader]$ cat new_clob002.dat
Thanks to these efforts, courts acquitted 4,032 defendants in accordance with
the law between 2013 and September this year, the report said.
Courts have also been ordered to strictly exclude evidence obtained illegally,
including evidence gained by torture, "and not to force anyone to plead
guilty", Zhou said.In Shanghai, for example, between July 2016 and
September this year, the city's courts received 24 applications from defense
attorneys to strike evidence suspected to have been obtained illegally, leading
to 15 reviews on the legality of evidence, he said.
匯入上述的資料需要寫如下的控制檔案:
[oracle@wjq SQL*Loader]$ cat wjq_clob.ctl
LOAD DATA
INFILE '/u01/app/oracle/SQL*Loader/wjq_clob.csv'
TRUNCATE INTO TABLE tb_clob
FIELDS TERMINATED BY ','
( new_id CHAR(20),
new_to CHAR(100),
new_subject CHAR(100),
new_date DATE "YYYY-MM-DD HH24:MI:SS"
":new_date",
clob_filename FILLER
CHAR(1000000),
new_content LOBFILE(clob_filename) TERMINATED BY EOF
)
上述控制檔案的關鍵在於定義一個clob_filename的偽欄位(在SQL*Loader中就是filler)以獲取clob檔名,緊接著用lobfile從該檔案匯入訊息正文。如果需要匯入blob型別的資料,其方法完全一樣。
下面就開始執行匯入操作:
[oracle@wjq ~]$ sqlldr scott/tiger
control=/u01/app/oracle/SQL*Loader/wjq_clob.ctl
log=/u01/app/oracle/SQL*Loader/wjq_clob.log
SQL*Loader: Release 11.2.0.4.0 - Production on Thu Nov 2 11:43:54 2017
Copyright (c) 1982, 2011, Oracle and/or its affiliates. All rights reserved.
Commit point reached - logical record count 1
Commit point reached - logical record count 2
下面檢視一下日誌資訊:
Table TB_CLOB:
2
Rows successfully loaded.
0 Rows not loaded due to data errors.
0 Rows not loaded because all WHEN
clauses were failed.
0 Rows not loaded because all fields
were null.
Space allocated for bind array:
1000488 bytes(1 rows)
Read buffer bytes: 1048576
Total logical records skipped: 0
Total logical records read: 2
Total logical records rejected: 0
Total logical records discarded: 0
Run began on Thu Nov 02 11:43:54 2017
Run ended on Thu Nov 02 11:43:54 2017
Elapsed time was: 00:00:00.05
CPU time was: 00:00:00.00
透過日誌可以看到,匯入成功,下面透過查詢表中的內容來進行驗證
作者:SEian.G(苦練七十二變,笑對八十一難)
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31015730/viewspace-2147266/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 【實驗】【SQL*Loader】使用SQLLDR將資料載入到CLOB欄位SQL
- 用JDBC操縱BLOB和CLOB資料JDBC
- Oracle SQL*Loader使用案例(一)OracleSQL
- Oracle SQL*Loader使用案例(二)OracleSQL
- Oracle SQL*Loader使用案例(三)OracleSQL
- Oracle SQL*Loader使用案例(四)OracleSQL
- JDBC 處理CLob和Blob型別資料JDBC型別
- 使用sql loader導資料SQL
- 用SQLLOAD匯入CLOB資料SQL
- 使用Oracle SQL Developer匯入Excel資料OracleSQLDeveloperExcel
- 【SQL*Loader】sqlldr匯入SQL
- 【實驗】【SQL*Loader】使用SQLLDR將Linux的使用者檔案passwd匯入資料庫SQLLinux資料庫
- Oracle 的資料匯入匯出及 Sql Loader (sqlldr) 的用法OracleSQL
- 使用SqlBulkCopy匯入資料至MS SQL ServerSQLServer
- 關於 Oracle 的資料匯入匯出及 Sql Loader (sqlldr) 的用法OracleSQL
- 關於Oracle的BLOB和CLOBOracle
- SQL資料庫的匯入和匯出SQL資料庫
- 使用Dbeaver 進行資料的匯入和匯出
- Oracle Sql loader 匯入資料指令碼的編寫過程OracleSQL指令碼
- 【SQL】Oracle BLOB 批量匯入匯出圖片語句SQLOracle
- SQL SERVER 和EXCEL的資料匯入匯出SQLServerExcel
- 用SQL Loader將Excel資料匯出到OracleSQLExcelOracle
- 使用資料泵impdp匯入資料
- Oracle使用dump匯入資料Oracle
- 用SQL*Loader載入外部資料SQL
- sql loader使用例子SQL
- 匯出和匯入資料庫使用者操作說明資料庫
- 如何使用 jq 接收 blob 資料
- Oracle使用資料泵匯出匯入表Oracle
- oracle sql*loader批量匯入多個CSVOracleSQL
- 【匯入匯出】將資料匯入到其他使用者
- NumPy之:使用genfromtxt匯入資料
- 使用sqlload匯入外部資料SQL
- Mysql資料庫使用Navicat Mysql匯入sql檔案報錯MySql資料庫
- Oracle - UTL_FILE包之BLOB匯入和匯出Oracle
- SQL*Loader使用方法SQL
- oracle sql loader 的使用OracleSQL
- 轉載:利用SQL*Loader將 Excel 資料匯出到資料庫中SQLExcel資料庫