【DB2报错】SQLCODE:-668 SQLSTATE:57016 code “3“

今天测试存储过程的时候碰到这个报错:

SQL0668N  Operation not allowed for reason code "3" on table "CALSS_STUDENT".  SQLSTATE=57016.

原因出处:

报错解释:

处理方式:


原因出处:

存储过程执行到这一步的时候就报错了。

CALL SYSPROC.ADMIN_CMD('LOAD FROM (SELECT TODAY'
 ||',STUDENT'
 ||',CALSS_NO'
 ||',TEACHER' 
||'FROM CALSS_STUDENT_TEMP'
||') OF CURSOR REPLACE INTO CALSS_STUDENT_SUM (' 
||'DAT'
||',STUDENT_NAME'
||',CALSS_NO'
||',TEACHER_NAME' 
||')NONRECOVERABLE');

ps:这段SQL只是对表进行一个LOAD操作,通过select 表将查询结果插入到另外一张表中,用的是REPLACE INTO 跟hive 中的insert overwrite 类似。 


报错解释:

SQLCODE:-668   错误状态码,不允许对标 “表名” 执行操作,限制对表 “表名” 的访问。

code "3"原因码3,表处于“装入暂挂”状态,先前尝试装入(LOAD)此表失败。在重新启动或终止 LOAD 操作之前不允许对表访问。

SQLSTATE:57016   错误类代码,含义因为表不活动,所以不能对其进行访问。

code "3"用户响应:通过分别发出带有 RESTART 或 TERMINATER选项的 LOAD 来重新启动或终止先前失败的对此表的LOAD操作。


处理方式:

按照提示的话我在这句SQL 执行前将表进行一个 置空 处理,代码如下:

CALL SYSPROC.ADMIN_CMD('load from /dev/null of del replace into CALSS_STUDENT_SUM NONRECOVERABLE')

ps:/dev/null 代表空设备文件,/dev/null 是 Unix/Linux 里的【无底洞】,任何的 output 送去了【无底洞】就再也没了。包括LOAD喇,LOAD一个【无底洞】LOAD了个寂寞。


其他SQLCODE:-668 的原因码以及其他报错的错误状态码可以在下面 IBM 的链接查看。

👇👇👇👇👇👇👇​​​​​​​👇​​​​​​​👇​​​​​​​👇​​​​​​​👇​​​​​​​
SQL0500 - SQL0749 - IBM Documentationicon-default.png?t=N7T8https://www.ibm.com/docs/en/db2/11.1?topic=messages-sql0500-sql0749#sql0668n有需要文档的同学也可以私信我~

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值