導入實用程序使用SQL INSERT語句向表、類型表或視圖填充數(shù)據(jù)。如果接收導入數(shù)據(jù)的表或視圖已包含數(shù)據(jù),那么輸入數(shù)據(jù)可替換現(xiàn)有數(shù)據(jù),也可追加至現(xiàn)有數(shù)據(jù)。
目前成都創(chuàng)新互聯(lián)公司已為上千余家的企業(yè)提供了網(wǎng)站建設、域名、網(wǎng)絡空間、綿陽服務器托管、企業(yè)網(wǎng)站設計、慶元網(wǎng)站維護等服務,公司將堅持客戶導向、應用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長,共同發(fā)展。
IMPORT FROM filename OF { IXF | ASC | DEL | WSF }
[ LOBS FROM lob-path[{,lob-path}…] ]
[ XML FROM xml-path[{,xml-path}…] ]
[ MODIFIED BY filetype-mod … ]
[ METHOD{ L( col-start col-end[{,col-start col-end}…] )
[NULL INDICATORS ( col-position[{,col-position}…] )] |
N( col-name[{,col-name}…] ) |
P( col-position[{,col-position}…] )
}
]
[ XMLPARSE { STRIP | PRESERVE } WHITESPACE ]
[ XMLVALIDATE USING
{XDS [ DEFAULT schema-sqlid ]
[ IGNORE (schema-sqlid[{,schema-sqlid}…])]
[MAP
( (schema-sqlid,schema-sqlid)
[{(schema-sqlid,schema-sqlid)}…]
)
] |
SCHEMA schema-sqlid |
SCHEMALOCATION HINTS
}
]
[ allow { NO | WRITE } ACCESS ]
[ COMMITCOUNT {n | AUTOMATIC} ]
[ {RESTARTCOUNT | SKIPCOUNT} n ] [ ROWCOUNT n ] [ WARNINGCOUNT n ]
[ NOTIMEOUT ]
[ MESSAGES message-file ]
{ { INSERT | INSERT_UPDATE | REPLACE | REPLACE_CREATE }
INTO {table-name[(insert-column,…)] | hierarchy-description} |
CREATE INTO { table-name[(insert-column,…)] |
hierarchy-description
{ AS ROOT TABLE | UNDER sub-table-name }
[ IN tablespace-name [ INDEX IN tablespace-name ]
[ LONG IN tablespace-name ]
]
}
}
filetype-mod:
COMPOUND=x、INDEXSCHEMA=schema、FORCEIN、INDEXIXF、IMPLIEDDECIMAL、
NOCHECKLENGTHS、NOEOFCHAR、NULLINDCHAR=x、RECLEN=x、STRIPTBLANKS、
STRIPTNULLS、NO_TYPE_ID、NODOUBLEDEL、LOBSINFILE、USEDEFAULTS、
CHARDELx、COLDELx、DLDELx、DECPLUSBLANK、DECPTx、DATESISO、
DELPRIORITYCHAR、IDENTITYMISSING、IDENTITYIGNORE、
GENERATEDMISSING、GENERATEDIGNORE、DATEFORMAT=x、TIMEFORMAT=x、
TIMESTAMPFORMAT=x、KEEPBLANKS、CODEPAGE=x、NOROWWARNINGS、
NOCHARDEL、NODEFAULTS、USEGRAPHICCODEPAGE、FORCECREATE、XMLCHAR、
XMLGRAPHIC、SECLABELCHAR和 SECLABELNAME
hierarchy-description:
{ ALL TABLES | ( sub-table-name [(insert-column,…)],… ) } [IN]
HIERARCHY { STARTING sub-table-name | ( sub-table-name,… ) }
說明:
1、MODIFIED BY子句指定文件類型修飾符以更改數(shù)據(jù)格式,告訴IMPORT實用程序如何處理數(shù)據(jù)以改進性能。
2、缺省情況下,IMPORT實用程序直到導入成功才執(zhí)行落實,但某些ALLOW WRITE ACCESS導入例外。雖然這會改變導入速度,但考慮到并行性、可重新啟動性及活動日志空間注意事項,最好指定落實在導入期間進行。其中一種方法是將COMMITCOUNT參數(shù)設置為“automatic”,這會指示IMPORT在內部確定何時應執(zhí)行落實。或者將COMMITCOUNT設置為特定數(shù)字,指示IMPORT在達到指定的已導入記錄數(shù)時執(zhí)行一次落實。
3、因為IMPORT實用程序是嵌入式SQL應用程序并且以內部方式執(zhí)行SQL訪存,所以應用于SQL操作的優(yōu)化會同時應用于IMPORT。可使用compound文件類型修飾符以便一次插入指定數(shù)目的行,而不是按缺省方式逐行插入。如果預計導入期間會生成大量警告(并因此導致操作變慢),可指定norowwarnings文件類型修飾符以抑制有關被拒絕行的警告。
4、MESSAGES參數(shù)指定消息文件,在導入期間,會編寫標準ASCII文本消息文件以包含與該操作相關的錯誤消息、警告消息和參考消息??梢栽趯胝谶M行時訪問消息文件,以對導入進度進行監(jiān)視。如果導入操作失敗,那么可使用消息文件來確定重新啟動位置,原因是消息文件會指示成功導入的最后一行。注:如果針對遠程數(shù)據(jù)庫的導入操作生成的輸出消息量超過60KB,那么該實用程序會保留前30KB和后30KB。
一、IMPORT的五種方式:
導入可使用五種方式,它們用于確定導入數(shù)據(jù)的方法。前三種方式為INSERT、INSERT_UPDATE和REPLACE,在目標表已存在的情況下使用。這三種方式都支持IXF、WSF、ASC和DEL數(shù)據(jù)格式。但是,只有INSERT和INSERT_UPDATE可與昵稱配合使用。
INSERT |
將輸入數(shù)據(jù)插入到目標表中而不更改現(xiàn)有數(shù)據(jù) |
INSERT_UPDATE |
使用輸入行的值更新具有匹配主鍵值的行,如果沒有匹配行,那么會將已導入行插入到表中。 |
REPLACE |
刪除所有現(xiàn)有數(shù)據(jù)并插入已導入數(shù)據(jù),同時保留表和索引定義 |
另外兩種方式為REPLACE_CREATE和CREATE,在目標表不存在時使用。它們只能與PC/IXF格式的輸入文件配合使用,此格式包含要創(chuàng)建的表的結構描述。如果對象表具有自身以外的任何從屬,那么不能以這些方式執(zhí)行導入。建議不使用IMPORT的CREATE和REPLACE_CREATE方式,改用db2look實用程序。
REPLACE_CREATE |
刪除所有現(xiàn)有數(shù)據(jù)并插入已導入數(shù)據(jù),同時保留表和索引定義;如果目標表和索引不存在,那么創(chuàng)建目標表和索引 |
CREATE |
創(chuàng)建目標表和索引;可指定在其中創(chuàng)建新表的表空間名稱 |
二、IMPORT工作步驟:
1、鎖定表
根據(jù)是否允許對表進行并行訪問,IMPORT會獲取對現(xiàn)有目標表的獨占(X)或非獨占(IX)鎖定。
2、查找和檢索數(shù)據(jù)
IMPORT使用FROM子句來查找輸入數(shù)據(jù)。如果命令指示XML或LOB數(shù)據(jù)存在,那么IMPORT會查找此數(shù)據(jù)。
3、插入數(shù)據(jù)
IMPORT會替換現(xiàn)有數(shù)據(jù)或將新的數(shù)據(jù)行添加至表。
4、檢查約束和激發(fā)觸發(fā)器
寫入數(shù)據(jù)后,IMPORT會確保每個已插入行符合針對目標表定義的約束。有關被拒絕行的信息將寫至消息文件。IMPORT還會激發(fā)現(xiàn)有觸發(fā)器。
5、落實操作
IMPORT會保存所作更改并釋放針對目標表的鎖定。還可指定在導入期間定期落實。
三、IMPORT所需權限
憑借DATAACCESS權限可以執(zhí)行任何類型的導入操作。以下是執(zhí)行相應導入類型的其他權限:
INSERT |
CONTROL或INSERT和SELECT |
INSERT_UPDATE |
CONTROL或INSERT、SELECT、UPDATE、DELETE |
REPLACE |
CONTROL或INSERT、SELECT、DELETE |
REPLACE_CREATE |
目標表存在時:CONTROL或INSERT、SELECT、DELETE 目標表不存在時:CREATETAB(針對數(shù)據(jù)庫)、USE(針對表空間),以及模式不存在時:IMPLICIT_SCHEMA(針對數(shù)據(jù)庫)或模式存在時:CREATEIN(針對模式) |
CREATE |
CREATETAB(針對數(shù)據(jù)庫)和USE(針對表空間),以及模式不存在時:IMPLICIT_SCHEMA(針對數(shù)據(jù)庫)或模式存在時:CREATEIN(針對模式) |
示例:將sample數(shù)據(jù)庫中的staff表導入到test數(shù)據(jù)庫中。
D:\>db2 export to myfile.ixf of ixf messages msg.txt select * from staff --導出sample數(shù)據(jù)庫中staff表數(shù)據(jù)
導出的行數(shù):35
D:\>db2look -d sample -e -t staff -o staff.dml –-獲得DDL
-- USER是: *******
-- db2look實用程序將只考慮指定的表
--正在創(chuàng)建表的 DDL
--輸出被發(fā)送到文件: staff.dml
--正在自動綁定程序包 ...
--綁定成功
--正在自動綁定程序包 ...
--綁定成功
其中的DDL內容如下:
CREATE TABLE "******"."STAFF" (
"ID" SMALLINT NOT NULL ,
"NAME" VARCHAR(9) ,
"DEPT" SMALLINT ,
"JOB" CHAR(5) ,
"YEARS" SMALLINT ,
"SALARY" DECIMAL(7,2) ,
"COMM" DECIMAL(7,2) )
IN "USERSPACE1" ;
根據(jù)DDL,在test數(shù)據(jù)庫中創(chuàng)建staff表。
D:\>db2 import from myfile.ixf of ixf messages msg2.txt insert into staff --向test數(shù)據(jù)庫中的staff表導入數(shù)據(jù)
讀取行數(shù) = 35
跳過行數(shù) = 0
插入行數(shù) = 35
更新行數(shù) = 0
拒絕行數(shù) = 0
落實行數(shù) = 35
D:\>db2 select * from staff --驗證導入結果
id name dept job years salary comm
------ --------- ------ ----- ------ --------- ---------
10 Sanders 20 Mgr 7 98357.50 -
20 Pernal 20 Sales 8 78171.25 612.45
30 Marenghi 38 Mgr 5 77506.75 -
40 O'Brien 38 Sales 6 78006.00 846.55
50 Hanes 15 Mgr 10 80659.80 -
60 Quigley 38 Sales - 66808.30 650.25
70 Rothman 15 Sales 7 76502.83 1152.00
80 James 20 Clerk - 43504.60 128.20
90 Koonitz 42 Sales 6 38001.75 1386.70
100 Plotz 42 Mgr 7 78352.80 -
110 Ngan 15 Clerk 5 42508.20 206.60
120 Naughton 38 Clerk - 42954.75 180.00
130 Yamaguchi 42 Clerk 6 40505.90 75.60
140 Fraye 51 Mgr 6 91150.00 -
150 Williams 51 Sales 6 79456.50 637.65
160 Molinare 10 Mgr 7 82959.20 -
170 Kermisch 15 Clerk 4 42258.50 110.10
180 Abrahams 38 Clerk 3 37009.75 236.50
190 Sneider 20 Clerk 8 34252.75 126.50
200 Scoutten 42 Clerk - 41508.60 84.20
210 Lu 10 Mgr 10 90010.00 -
220 Smith 51 Sales 7 87654.50 992.80
230 Lundquist 51 Clerk 3 83369.80 189.65
240 Daniels 10 Mgr 5 79260.25 -
250 Wheeler 51 Clerk 6 74460.00 513.30
260 Jones 10 Mgr 12 81234.00 -
270 Lea 66 Mgr 9 88555.50 -
280 Wilson 66 Sales 9 78674.50 811.50
290 Quill 84 Mgr 10 89818.00 -
300 Davis 84 Sales 5 65454.50 806.10
310 Graham 66 Sales 13 71000.00 200.30
320 Gonzales 66 Sales 4 76858.20 844.00
330 Burke 66 Clerk 1 49988.00 55.50
340 Edwards 84 Sales 7 67844.00 1285.00
350 Gafney 84 Clerk 5 43030.50 188.00
35條記錄已選擇。