DB2中的数据移动-装入
2008-05-15 14:58:45 来源:WEB开发网例十五:限制装入行数
用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行出错,该行无法装入,但是不产生警告信息。
更多精彩
赞助商链接