WEB开发网
开发学院数据库DB2 DB2中的数据移动-装入 阅读

DB2中的数据移动-装入

 2008-05-15 14:58:45 来源:WEB开发网   
核心提示:例十五:限制装入行数用ROWCOUNT选项可以指定从文件开始处装入的记录数LOAD FROM D:STAFF.TXT OF DEL ROWCOUNT 3 INSERT INTO STAFF1例十六:出现警告信息时强令装入操作失败在某些情况下,文件中的数据必须全部成功输入到目标表中才算成功,DB2中的数据移动-装入(4)

例十五:限制装入行数

用ROWCOUNT选项可以指定从文件开始处装入的记录数

LOAD FROM D:STAFF.TXT OF DEL ROWCOUNT 3 INSERT INTO STAFF1

例十六:出现警告信息时强令装入操作失败

在某些情况下,文件中的数据必须全部成功输入到目标表中才算成功,即使有一条记录出错也不行。在这种情况下,可以使用WARNINGCOUNT选项。

到D盘上打开STAFF.TXT文件,把第一列等于320的行替换为:"abcf","aaa","sdfg"

LOAD FROM D:STAFF.TXT OF DEL WARNINGCOUNT 1 INSERT INTO STAFF1

运行结果包含下面的警告:

SQL3118W 在行 "32" 列 "1" 中的字段值不能转换为 SMALLINT值,但是目标列不可为空。未装入该行。

SQL3185W 当处理输入文件的第 "32" 行中的数据时发生先前的错误。

SQL3502N 实用程序遇到了 "1" 个警告,它超过了允许的最大警告数。

此时无法对表STAFF1进行操作,例如

SELECT * FROM STAFF1

会返回:

ID   NAME   DEPT  JOB  YEARS SALARY  COMM

------ --------- ------ ----- ------ --------- ---------

SQL0668N 由于表 "USER.STAFF1" 上的原因代码 "3",所以不允许操作。

SQLSTATE=57016

原因是:表处于“装入挂起”状态。对此表的先前的 LOAD 尝试失败。在重新启动或终止 LOAD 操作之前不允许对表进行存取。

解决方法为:通过分别发出带有 RESTART 或 TERMINATER 选项的 LOAD 来重新启动或终止先前失败的对此表的 LOAD 操作。

包含TERMINATER的LOAD命令可以终止装入进程,使目标表恢复正常可用状态:

LOAD FROM D:STAFF.TXT OF DEL TERMINATE INTO STAFF1

包含RESTART的LOAD命令可以在源文件修改正确的时候使用,使装入进程重新开始:

LOAD FROM D:STAFF.TXT OF DEL RESTART INTO STAFF1

例十七:防止产生警告信息

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

到D盘上打开STAFF.TXT文件,把第一列等于320的行替换为:"abcf","aaa","sdfg"

LOAD FROM D:STAFF.TXT OF DEL MODIFIED BY NOROWWARNINGS INSERT INTO STAFF1

运行完的结果中,第32行出错,该行无法装入,但是不产生警告信息。

上一页  1 2 3 4 5 6  下一页

Tags:DB 数据 移动

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接