使用SQL*Loader建立外部表之二
這裡講述另外一種方法透過SQL*loader建立外部表,把外部資料直接寫在控制檔案上:
---檢視hisloader表的資料:
SQL> select * from hisloader;
ID DNAME LNAME
---------- ------------ ----------
101 OPERATIONS5 BOSTON1
102 OPERATIONS6 BOSTON2
103 OPERATIONS7
---編輯外部表控制檔案:
[oracle@enmo dirhome]$ vi load1.ctl
load data
infile*
badfile 'load.bad'
into table hisloader
truncate
fields terminated by ','
trailing nullcols
(id,dname,lname)
begindata
104,OPERATIONS5,BOSTON1
105,OPERATIONS6,BOSTON2
106,OPERATIONS7,"BOSTON3"
~
--匯入資料:
[oracle@enmo dirhome]$ sqlldr scott/tiger control=load1.ctl
SQL*Loader: Release 11.2.0.4.0 - Production on Wed Nov 2 11:26:27 2016
Copyright (c) 1982, 2011, Oracle and/or its affiliates. All rights reserved.
Commit point reached - logical record count 3
[oracle@enmo dirhome]$
--檢視錶資料:
SQL> select * from hisloader;
ID DNAME LNAME
---------- ------------ ----------
104 OPERATIONS5 BOSTON1
105 OPERATIONS6 BOSTON2
106 OPERATIONS7 "BOSTON3"
#發現資料被替換了。
---建立另外一個外部表:
SQL> create table yourloader(
2 id number(3),
3 dname varchar2(12),
4 lname varchar2(10));
Table created.
---編輯控制檔案:
[oracle@enmo dirhome]$ vi load2.ctl
load data
infile 'dt4.scv'
badfile 'base.bad'
into table yourloader
truncate
trailing nullcols
(
id TERMINATED BY ',',
dname TERMINATED BY ',',
lname TERMINATED BY ','OPTIONALLY ENCLOSED BY '"'
)
~
--匯入資料:
[oracle@enmo dirhome]$ sqlldr scott/tiger control=load2.ctl
SQL*Loader: Release 11.2.0.4.0 - Production on Wed Nov 2 12:27:59 2016
Copyright (c) 1982, 2011, Oracle and/or its affiliates. All rights reserved.
Commit point reached - logical record count 7
[oracle@enmo dirhome]$
#匯入了7條資料。
--檢視外部表的資料:
SQL> select * from yourloader;
ID DNAME LNAME
---------- ------------ ----------
104 OPERATIONS5 BOSTON1
105 OPERATIONS6 BOSTON2
106 OPERATIONS7 BOS,TON3
101 OPERATIONS5 BOSTON1
102 OPERATIONS6 BOSTON2
103 OPERATIONS7
6 rows selected.
#實際就只有6條資料。
--使用以下語句:
trailing nullcols
(
id TERMINATED BY ',',
dname TERMINATED BY ',',
lname TERMINATED BY ','OPTIONALLY ENCLOSED BY '"'
)
既能處理空值的資料,也解決了雙引號’"’的問題。
---檢視hisloader表的資料:
SQL> select * from hisloader;
ID DNAME LNAME
---------- ------------ ----------
101 OPERATIONS5 BOSTON1
102 OPERATIONS6 BOSTON2
103 OPERATIONS7
---編輯外部表控制檔案:
[oracle@enmo dirhome]$ vi load1.ctl
load data
infile*
badfile 'load.bad'
into table hisloader
truncate
fields terminated by ','
trailing nullcols
(id,dname,lname)
begindata
104,OPERATIONS5,BOSTON1
105,OPERATIONS6,BOSTON2
106,OPERATIONS7,"BOSTON3"
~
--匯入資料:
[oracle@enmo dirhome]$ sqlldr scott/tiger control=load1.ctl
SQL*Loader: Release 11.2.0.4.0 - Production on Wed Nov 2 11:26:27 2016
Copyright (c) 1982, 2011, Oracle and/or its affiliates. All rights reserved.
Commit point reached - logical record count 3
[oracle@enmo dirhome]$
--檢視錶資料:
SQL> select * from hisloader;
ID DNAME LNAME
---------- ------------ ----------
104 OPERATIONS5 BOSTON1
105 OPERATIONS6 BOSTON2
106 OPERATIONS7 "BOSTON3"
#發現資料被替換了。
---建立另外一個外部表:
SQL> create table yourloader(
2 id number(3),
3 dname varchar2(12),
4 lname varchar2(10));
Table created.
---編輯控制檔案:
[oracle@enmo dirhome]$ vi load2.ctl
load data
infile 'dt4.scv'
badfile 'base.bad'
into table yourloader
truncate
trailing nullcols
(
id TERMINATED BY ',',
dname TERMINATED BY ',',
lname TERMINATED BY ','OPTIONALLY ENCLOSED BY '"'
)
~
--匯入資料:
[oracle@enmo dirhome]$ sqlldr scott/tiger control=load2.ctl
SQL*Loader: Release 11.2.0.4.0 - Production on Wed Nov 2 12:27:59 2016
Copyright (c) 1982, 2011, Oracle and/or its affiliates. All rights reserved.
Commit point reached - logical record count 7
[oracle@enmo dirhome]$
#匯入了7條資料。
--檢視外部表的資料:
SQL> select * from yourloader;
ID DNAME LNAME
---------- ------------ ----------
104 OPERATIONS5 BOSTON1
105 OPERATIONS6 BOSTON2
106 OPERATIONS7 BOS,TON3
101 OPERATIONS5 BOSTON1
102 OPERATIONS6 BOSTON2
103 OPERATIONS7
6 rows selected.
#實際就只有6條資料。
--使用以下語句:
trailing nullcols
(
id TERMINATED BY ',',
dname TERMINATED BY ',',
lname TERMINATED BY ','OPTIONALLY ENCLOSED BY '"'
)
既能處理空值的資料,也解決了雙引號’"’的問題。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31392094/viewspace-2127530/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 使用SQL*Loader建立外部表之一SQL
- 【SQLLDR】使用SQL*Loader輔助生成外部表建立語句SQL
- 外部表筆記一loader筆記
- OCA題目深入瞭解繼續,SQL*Loader和外部表SQL
- 用SQL*Loader載入外部資料SQL
- ORACLE_LOADER外部表簡單案例Oracle
- sql loader使用例子SQL
- oracle_datapump建立外部表案例Oracle
- SQL*Loader使用方法SQL
- oracle sql loader 的使用OracleSQL
- Redshift建立外部架構external schema和外部表external table架構
- Oracle資料庫備份與恢復之二:SQL*LoaderOracle資料庫SQL
- Oracle SQL*Loader使用案例(一)OracleSQL
- Oracle SQL*Loader使用案例(二)OracleSQL
- Oracle SQL*Loader使用案例(三)OracleSQL
- Oracle SQL*Loader使用案例(四)OracleSQL
- SQL*Loader的使用方法SQL
- 使用sql loader導資料SQL
- Oracle SQL*Loader 使用指南OracleSQL
- SQL LOADER的使用方法SQL
- SQL*LOADER 的使用小結SQL
- 表上建立唯一性索引,SQL*Loader用或不用dirdect的區別索引SQL
- SQL表的建立SQL
- SQL*Loader的使用總結(四)SQL
- SQL*Loader的使用總結(三)SQL
- SQL*Loader的使用總結(二)SQL
- SQL*Loader的使用總結(一)SQL
- 學習oracle sql loader 的使用OracleSQL
- SQL LOADERSQL
- Redshift__在一個外部架構下建立外部表後,其他外部架構也自動生成了一樣的外部表架構
- 利用ORACLE_DATAPUMP為驅動建立外部表Oracle
- oracle外部表建立以及收集統計資訊以及臨時表Oracle
- 建立SQL資料表SQL
- SQL建立臨時表SQL
- sql語句建立表SQL
- Postgresql外部表使用 postgres_fdwSQL
- oracle外部表詳解以及使用Oracle
- 使用sqlloader控制檔案生成外部表建立語句的一個例子SQL