DB2数据移动总结3-import

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/attack_breast/article/details/79867952

IMPORT命令详解

参考链接

https://www.ibm.com/support/knowledgecenter/SSEPGG_9.7.0/com.ibm.db2.luw.admin.cmd.doc/doc/r0008304.html

语法

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 ]]

}

}

参数详解

filename

不做解释,参考export。

{IXF|ASC|DEL|WSF}

不做解释,参考export。

[ LOBS FROM lob-path[{,lob-path}…]]

不做解释,参考export。

[ XML FROM xml-path[{,xml-path}…]]

不做解释,参考export。

[ MODIFIED BY filetype-mod…](待完善)

COMPOUND=x

每x条记录而不是每1条记录插入后等待返回的SQL执行结果,通俗来讲就是每x条记录插入一次。

INDEXSCHEMA=schema

使用索引创建期间指定的用于索引的模式。

FORCEIN

INDEXIXF

IMPLIEDDECIMAL

NOCHECKLENGTHS

NOEOFCHAR

NULLINDCHAR=x

对于ixf格式的文件,导入空值非常方便,因为里面已经记录了空值的信息。但是,对于ASC格式文件就有一定的难度了,因为DB2会直接插入空格,而不是空值。为此,DB2提供了一个子句进行控制:NULL INDICATORS

import from  c:\org2.txt of asc MODIFIED BY nullindchar=# method l(1 5,6 19,20 25,26 37,38 50) NULL INDICATORS(0,0,0,0,38 ) replace into org

在这个例子中,NULL INDICATORS子句后面是一个列表,表示前面四个字段都不会存在空值,而第五个字段从38列开始,可能存在空值,而 MODIFIED BY nullindchar=# 子句表示在文件中第五个字段如果遇到 # 号,则表示为空值。

RECLEN=x

STRIPTBLANKS

将数据装载到可变长度字段时,截去结尾空白。

STRIPTNULLS

NO_TYPE_ID

NODOUBLEDEL

LOBSINFILE

参考export命令。

USEDEFAULTS

CHARDELx

参考export命令。

COLDELx

参考export命令。

DLDELx

DECPLUSBLANK

参考export命令。

DECPTx

参考export命令。

DATESISO

参考export命令。

DELPRIORITYCHAR

IDENTITYMISSING

IDENTITYIGNORE

GENERATEDMISSING

GENERATEDIGNORE

DATEFORMAT=x

参考export命令。

TIMEFORMAT=x

参考export命令。

TIMESTAMPFORMAT=x

参考export命令。

KEEPBLANKS

保留char,varchar,long varchar,clob类型的每个字段的首尾空格。如不设置则会删掉定界符之间的首尾空格,如果被导入字段为空白,则会在对应列中插入NULL。

CODEPAGE=x

参考export。

NOROWWARNINGS

使用NOROWWARNINGS文件类型修饰符可以禁止产生警告信息,当装入过程可能出现大量警告信息,而用户对此又不感兴趣的时候,可以使用该选项,这样可以大大提高装入的效率。

NOCHARDEL

NODEFAULTS

USEGRAPHICCODEPAGE

FORCECREATE

XMLCHAR

XMLGRAPHIC

SECLABELCHAR

SECLABELNAME

[ 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}…])}]

在导入的时候可以选择只导入部分字段的数据,这需要使用METHOD选项。METHOD选项有三种:METHOD L、METHOD N、METHOD P。下表是三种方式的区别:

名称

适用的文件格式

参数

METHOD L

ASC文件

起始位置和终止位置

METHOD N

IXF文件

字段名称

METHOD P

DEL和IXF文件

字段位置,从1开始

IMPORT from /data/test.asc of ASC METHOD L(1 5,10 12,20 30) messages msg.out insert into mytab1(c1,c2,c4)

 load from /data/test.ixf of ixf method N(C2,C1,C3) insert into mytab1(c1,c2,c4)

[ ALLOW{NO|WRITE}ACCESS]

排它锁。默认情况下,在插入任何行之前,导入实用程序将获得目标表上的一个排它锁。一旦导入完成,这个排它锁将被释放。这是 ALLOW NO ACCESS 选项的行为。为了允许并发应用程序访问表数据,可以使用 ALLOW WRITE ACCESS 选项。注意,该选项与 REPLACE、CREATE 或 REPLACE_CREATE 导入选项不兼容。

[ COMMITCOUNT{n|AUTOMATIC}]

COMMITCOUNT n:在导入n条记录后强制执行提交。

COMMITCOUNT AUTOMATIC :允许DB2在内部决定何时需要执行提交。该DB2将考虑发出一个提交命令,以避免日志写满或者避免锁升级。也就是说由DB2动态决定多少条记录提交一次。

[ {RESTARTCOUNT|SKIPCOUNT}n]

RESTARTCOUNT n:将从第n条记录开始。

SKIPCOUNT n:其行为与 RESTARTCOUNT 是相同的。

[ ROWCOUNT n]

指定将要导入的物理记录的条数,例如:

IMPORT FROM myfile.ixf OF IXF COMMITCOUNT 500 RESTARTCOUNT 30000 ROWCOUNT 100000 MESSAGES msg.out INSERT INTO newtable

其行为就是:导入实用程序将忽略前 30,000 条记录,并且将剩下的 100,000 条记录导入到表中。

[ WARNINGCOUNT n]

指定装入操作过程中允许的警告次数,超过n次数后装入操作失败。如果不设置或者设置为0那么无论有多少条记录告警,装入操作都将继续。

[ NOTIMEOUT]

指定导入实用程序在等待锁定时不会超时。该选项取代locktimeout数据库配置参数。

[ MESSAGES message-file]

参考export命令。

{{INSERT|INSERT_UPDATE|REPLACE|REPLACE_CREATE}

INSERT 方式——在表中现有数据的基础之上追加新的数据。

INSERT_UPDATE 方式——这种方式只能用于有主键的表,如果插入的数据与原有数据主键不冲突,则直接插入,如果主键冲突,则用新的数据代替原有数据。

REPLACE 方式——先把表中现有的数据都删除,然后向空表中插入数据。

REPLACE_CREATE 方式——表示如果表存在,则先把表中的数据都删除,然后向空表中插入数据;如果表不存在,则先根据文件中的字段创建表,然后再向表中插入数据。这种方式只能把IXF格式的文件中的数据插入到表中。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

猜你喜欢

转载自blog.csdn.net/attack_breast/article/details/79867952