数据迁移是一项常见的工作, DB2提供Load实用程序来高效导入大量的数据
Load命令的基本格式如下
LOAD FROM "/home/db2inst1/pro.del" OF DEL METHOD P ( 1, 2, 4 ) INSERT INTO DB2INST1.PRODUCT ( ID, BRAND, PRODUCT )
该命令的额功能是将 pro.del文件的第1, 2, 4列数据导入到DB2INST1 schema下的PRODUCT表中
然后在导入之后发现PRODUCT表无法访问, 对PRODUCT表进行SELECT操作的时候返回如下信息
SQL0668N Operation not allowed for reason code "1" on table
"DB2INST1.LOC_PROD". SQLSTATE=57016
Solution:
经查询SQL 668, reason code "1" 表示"该表处于“设置完整性暂挂无访问”状态。未强制表的完整性并且表的内容可能是无效的。如果从属表处于“设置完整性暂挂无访问”状态,那么对于未处于“设置完整性暂挂无访问”状态的父表或基础表执行的操作也可能会接收到此错误。"
按照DB2 infomation center给出的建议:对表 表名 执行带有 IMMEDIATE CHECKED 选项的 SET INTEGRITY 语句,以使表脱离“设置完整性暂挂无访问”状态。对于用户维护的具体化查询表,执行带有 IMMEDIATE UNCHECKED 选项的语句,而不是带 IMMEDIATE CHECKED 选项。
执行如下语句:
SET INTEGRITY FOR product IMMEDIATE CHECKED
之后再对PRODUCT表进行SELECT, OK了!