時(shí)間:2015/6/28來源:IT貓撲網(wǎng)作者:網(wǎng)管聯(lián)盟我要評論(0)
SQL*LOADER是大型數(shù)據(jù)
倉庫選擇使用的加載方法,因?yàn)樗峁┝俗羁焖俚耐緩剑―IRECT,PARALLEL),F(xiàn)在,我們拋開其理論不談,用實(shí)例來使
您快速掌握SQL*LOADER的使用方法。
首先,我們認(rèn)識一下SQL*LOADER。
在NT下,SQL*LOADER的命令為SQLLDR,在UNIX下一般為sqlldr/sqlload。
如執(zhí)行:d:\oracle>sqlldr
SQL*Loader: Release 8.1.6.0.0 - Production on 星期二 1月 8 11:06:42 2002
(c) Copyright 1999 Oracle Corporation. All rights reserved.
用法: SQLLOAD 關(guān)鍵字 = 值 [,keyword=value,...]
有效的關(guān)鍵字:
userid -- ORACLE username/password
control -- Control file name
log -- Log file name
bad -- Bad file name
data -- Data file name
discard -- Discard file name
discardmax -- Number of discards to allow (全部默認(rèn))
skip -- Number of logical records to skip (默認(rèn)0)
load -- Number of logical records to load (全部默認(rèn))
errors -- Number of errors to allow (默認(rèn)50)
rows -- Number of rows in conventional path bind array or between direct p
ath data saves
(默認(rèn): 常規(guī)路徑 64, 所有直接路徑)
bindsize -- Size of conventional path bind array in bytes(默認(rèn)65536)
silent -- Supdivss messages during run (header,feedback,errors,discards,part
itions)
direct -- use direct path (默認(rèn)FALSE)
parfile -- parameter file: name of file that contains parameter specification
s
parallel -- do parallel load (默認(rèn)FALSE)
file -- File to allocate extents from
skip_unusable_indexes -- disallow/allow unusable indexes or index partitions(默認(rèn)FALSE)
skip_index_maintenance -- do not maintain indexes, mark affected indexes as unusable(默認(rèn)FALSE)
commit_discontinued -- commit loaded rows when load is discontinued(默認(rèn)FALSE)
readsize -- Size of Read buffer (默認(rèn)1048576)
PLEASE NOTE: 命令行參數(shù)可以由位置或關(guān)鍵字指定。
前者的例子是 'sqlload scott/tiger foo';
后者的例子是 'sqlload control=foo userid=scott/tiger'.
位置指定參數(shù)的時(shí)間必須早于但不可遲于由關(guān)鍵字指定的參數(shù)。例如,
'SQLLOAD SCott/tiger control=foo logfile=log',
但'不允許 sqlload scott/tiger control=foo log',
即使允許參數(shù) 'log' 的位置正確。
d:\oracle>
我們可以從中看到一些基本的幫助信息,這里,我用到的是中文的WIN2000 ADV SERVER。
我們知道,SQL*LOADER只能導(dǎo)入純文本,所以我們現(xiàn)在開始以實(shí)例來講解其用法。
一、已存在數(shù)據(jù)源result.csv,欲倒入ORACLE中FANCY用戶下。
result.csv內(nèi)容:
1,默認(rèn) Web 站點(diǎn),192.168.2.254:80:,RUNNING
2,other,192.168.2.254:80:test.com,STOPPED
3,third,192.168.2.254:81:thirdabc.com,RUNNING
從中,我們看出4列,分別以逗號分隔,為變長字符串。
二、制定控制文件result.ctl
result.ctl內(nèi)容:
load data
infile 'result.csv'
into table resultxt
(resultid char terminated by ',',
website char terminated by ',',
ipport char terminated by ',',
status char terminated by whitespace)
說明:
infile 指數(shù)據(jù)源文件 這里我們省略了默認(rèn)的 discardfile result.dsc badfile result.bad
into table resultxt 默認(rèn)是INSERT,也可以into table resultxt APPEND為追加方式,或REPLACE
terminated by ',' 指用逗號分隔
terminated by whitespace 結(jié)尾以空白分隔
三、此時(shí)我們執(zhí)行加載:
D:\>sqlldr userid=fancy/testpass control=result.ctl log=resulthis.out
SQL*Loader: Release 8.1.6.0.0 - Production on 星期二 1月 8 10:25:42 2002
(c) Copyright 1999 Oracle Corporation. All rights reserved.
SQL*Loader-941: 在描述表RESULTXT時(shí)出現(xiàn)錯(cuò)誤
ORA-04043: 對象 RESULTXT 不存在
提示出錯(cuò),因?yàn)?a href="http://ygkjgt7.cn/key/shujuku/" target="_blank">數(shù)據(jù)庫沒有對應(yīng)的表。
四、在數(shù)據(jù)庫建立表
create table resultxt
(resultid varchar2(500),
website varchar2(500),
ipport varchar2(500),
status varchar2(500))
/
五、重新執(zhí)行加載
D:\>sqlldr userid=fancy/k1i7l6l8 control=result.ctl log=resulthis.out
SQL*Loader: Release 8.1.6.0.0 - Production on 星期二 1月 8 10:31:57 2002
(c) Copyright 1999 Oracle Corporation. All rights reserved.
達(dá)到提交點(diǎn),邏輯記錄計(jì)數(shù)2
達(dá)到提交點(diǎn),邏輯記錄計(jì)數(shù)3
已經(jīng)成功!我們可以通過日志文件來分析其過程:resulthis.out內(nèi)容如下:
SQL*Loader: Release 8.1.6.0.0 - Production on 星期二 1月 8 10:31:57 2002
(c) Copyright 1999 Oracle Corporation. All rights reserved.
控制文件: result.ctl
數(shù)據(jù)文件: result.csv
錯(cuò)誤文件: result.bad
廢棄文件: 未作指定
:
(可廢棄所有記錄)
裝載數(shù): ALL
跳過數(shù): 0
允許的錯(cuò)誤: 50
綁定數(shù)組: 64 行,最大 65536 字節(jié)
繼續(xù): 未作指定
所用路徑: 常規(guī)
表RESULTXT
已載入從每個(gè)邏輯記錄
插入選項(xiàng)對此表INSERT生效
列名 位置 長度 中止 包裝數(shù)據(jù)類型
------------------------------ ---------- ----- ---- ---- ---------------------
RESULTID FIRST * , CHARACTER
WEBSITE NEXT * , CHARACTER
IPPORT NEXT * , CHARACTER
STATUS NEXT * WHT CHARACTER
表RESULTXT:
3 行載入成功
由于數(shù)據(jù)錯(cuò)誤, 0 行沒有載入。
由于所有 WHEN 子句失敗, 0 行沒有載入。
由于所有字段都為空的, 0 行沒有載入。
為結(jié)合數(shù)組分配的空間: 65016字節(jié)(63行)
除綁定數(shù)組外的內(nèi)存空間分配: 0字節(jié)
跳過的邏輯記錄總數(shù): 0
讀取的邏輯記錄總數(shù): 3
拒絕的邏輯記錄總數(shù): 0
廢棄的邏輯記錄總數(shù): 0
從星期二 1月 08 10:31:57 2002開始運(yùn)行
在星期二 1月 08 10:32:00 2002處運(yùn)行結(jié)束
經(jīng)過時(shí)間為: 00: 00: 02.70
關(guān)鍵詞標(biāo)簽:Oracle,數(shù)據(jù)庫
相關(guān)閱讀
熱門文章 Oracle中使用alter table來增加,刪除,修改列oracle中使用SQL語句修改字段類型-oracle修使用低權(quán)限Oracle數(shù)據(jù)庫賬戶得到管理員權(quán)限Oracle對user的訪問控制
人氣排行 ORACLE SQL 判斷字符串是否為數(shù)字的語句Oracle中使用alter table來增加,刪除,修改列的語法ORACLE和SQL語法區(qū)別歸納(1)oracle grant 授權(quán)語句如何加速Oracle大批量數(shù)據(jù)處理Oracle刪除表的幾種方法ORACLE修改IP地址后如何能夠使用Oracle 10g創(chuàng)建表空間和用戶并指定權(quán)限