SQL0668N 原因码为 1 所以不允许操作 SQLSTATE 57016 ORACLE一次失败的导入到DB2

本文详细记录了解决DB2数据库中因检查约束违反导致的表操作失败问题,以及如何处理由备份暂挂引起的表空间异常。通过设置完整性、调整表空间状态和执行备份,最终恢复正常数据访问。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.youkuaiyun.com/jiangjunshow

也欢迎大家转载本篇文章。分享知识,造福人民,实现我们中华民族伟大复兴!

               
SQL0668N 原因码为 "1",所以不允许操作 SQLSTATE=57016 ORACLE一次失败的导入到DB2
SQL0668N 原因码为 "1" SQLSTATE=57016 ORACLE导入到DB2
日月明王的BLOG  http://sunmoonking.spaces.live.com
           利用MTK工具没有成功导入数据,于是用(ORACLE MTK工具导入到DB2
http://sunmoonking.spaces.live.com/blog/cns!E3BD9CBED01777CA!751.entry )最后所写的方法手工批量导入。一切顺利。做完后抽样检查,发现有些表出现如下问题。
db2 => select * from TABLE_NAME
USER_FUNCTION_ID     USER_ID              DEALER_ID FUNCTION_ID          CREATE_
BY            CREATE_DATE                UPDATE_BY            UPDATE_DATE
-------------------- -------------------- --------- -------------------- -------
SQL0668N  由于表 "ADMINISTRATOR. TABLE_NAME " 上的原因码为
"1",所以不允许操作。  SQLSTATE=57016
            查了下问题原因是原因是装入时有数据违反了检查约束,造成表处于检查挂起状态。网上说可以用set integrity for table_name check immediate unchecked解除表的检查挂起状态, 但是运行完后还是无法访问此表
db2 => set integrity for table_name check immediate unchecked
DB20000I  SQL命令成功完成。
db2 => select * from TABLE_NAME
USER_FUNCTION_ID     USER_ID              DEALER_ID FUNCTION_ID          CREATE_
BY            CREATE_DATE                UPDATE_BY            UPDATE_DATE
-------------------- -------------------- --------- -------------------- -------
SQL0668N  由于表 "ADMINISTRATOR. TABLE_NAME " 上的原因码为
"1",所以不允许操作。  SQLSTATE=57016
            问题依旧。又试图用再次LOAD的方法使其状态正常,通过分别发出带有 RESTART TERMINATER 选项的 LOAD 来重新启动或终止先前失败的对此表的 LOAD 操作。但是问题依旧。
db2 => LOAD  FROM C:/MTK/projects/Unknown7/DataOutScripts/FILENAME_TABLE_NAME.out of DEL restart  INTO TABLE_NAME
SQL27902N  LOAD RESTART/TERMINATE 在未处于 LOAD PENDING 状态的表上不允许。
            再试
C:/Documents and Settings/Administrator>db2 set integrity for TABLE_NAME immediate checked
            不成功。
            怀疑现在的问题不仅仅是表的问题,于是察看TABLESPACE
db2 =>list tablespaces show detail
表空间标识                        = 2
名称                       = USERSPACE1
类型                                       = 数据库管理空间
内容                                = 所有持久数据。大型表空间。
状态                   = 0x0020
  详细解释:
    备份暂挂
总计页数                            = 40960
可用页数                            = 40928
已用页数                            = 40448
可用页数                            = 480
高水位标记(页)                    = 40448
页大小(以字节计)                  = 16384
扩展数据块大小(页)                = 32
预取大小(页)                      = 32
容器数                                  = 1
最小恢复时间                            = 2007-02-13-02.29.51.000000
            想通过以下命令使其正常
db2 => alter tablespace  USERSPACE1 switch online
DB20000I  SQL命令成功完成。
            状态一样
            于是通过BACKUP来除去备份暂挂状态, 手工备份后恢复正常. 0x0000
db2 backup db DB_NAME tablespace (userspace1)
            再解除表的检查挂起状态
db2 => set integrity for tt_user_function immediate checked
DB20000I  SQL命令成功完成。
db2 => select count(*) from tt_user_function;
SQL0104N  "rom tt_user_function" 后面找到异常标记
";"。预期标记可能包括:"END-OF-STATEMENT"  SQLSTATE=42601
db2 => select count(*) from tt_user_function
 
1
-----------
       1534
            访问正常.
 
           

给我老师的人工智能教程打call!http://blog.youkuaiyun.com/jiangjunshow
这里写图片描述
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值