jixuju 发表于 2011-01-19 16:39

db2求救--SQL0438N(SQLCODE-501)错误

过程跑数,遇到SQL0438N(SQLCODE-501)错误,不知如何解决?求大侠相助!
经常遇到SQL0438N(SQLCODE-803)错误,是违反主键约束。但501不知道是为何?

jixuju 发表于 2011-01-20 09:42

自己顶!

jixuju 发表于 2011-01-20 16:06

问题已解决!
sqlcode-501:fetch或close一个未打开的cursor因为在游标循环里面用到db2load函数,而该函数报错了,导致rollback,然后就释放游标了,所以报501错误。

大梦 发表于 2011-01-23 15:53

本帖最后由 大梦 于 2011-01-23 15:54 编辑

有可能是你前面的错误没处理好,后来还在fetch或close游标
db2 ? sql501
SQL0501NFETCH 语句或 CLOSE 语句中指定的游标尚未打开,或者游标
      标量函数引用中的游标变量尚未打开。

说明:

程序试图执行下列其中一项操作:

*当指定的游标未打开时,试图使用该游标进行访存(FETCH)。
*当指定的游标未打开时,试图关闭(CLOSE)该游标。
*在 OPEN 语句中引用游标变量,但该游标变量尚未打开。
*引用游标标量函数(例如 CURSOR_ROWCOUNT 函数),但该游标变量尚未打开。

无法处理该语句。

用户响应:

检查先前的消息 (SQLCODE),它可能关闭了游标。注意,在关闭游标后,任何访
存或关闭游标语句都接收到 SQLCODE -501。

如果未发出任何先前的 SQLCODE,那么更正应用程序,确保游标在执行 FETCH 或
CLOSE 语句时是打开的。

如果在游标标量函数中引用游标变量,那么请验证该游标是否不为空、已定义并
且已打开,否则将该游标变量替换为处于该状态的游标变量。

sqlcode:-501
页: [1]
查看完整版本: db2求救--SQL0438N(SQLCODE-501)错误