最近,我对程序中的一个错误感到困惑,正如我的另一个问题所说:多次声明同一个光标时出现奇怪的光标行为
在使用了很多printf
等之后,我发现:
EXEC SQL Declare abc Cursor for select..
不更改/返回sqlca.sqlcode
EXEC SQL Open abc;..
返回sqlca.sqlcode
EXEC SQL Fetch abc into .. ; ..
返回sqlca.sqlcode
EXEC SQL Close abc; ..
返回sqlca.sqlcode
EXEC SQL Commit; ..
返回sqlca.sqlcode
我想了解为什么声明没有返回任何代码,因为我们使用的是EXEC SQL
声明&我以为EXEC SQL
总是返回sqlca.sqlcode
。
此外,是否有任何Oracle Pro*C文档可以解释这一切?
提前谢谢。
根据Oracle关于DEF_SQLCODE的文档,所描述的行为似乎是一个错误;如果您在代码中设置了#include <sqlqca.h>
或EXEC SQL INCLUDE SQLCA;
并设置了DEF_SQLCODE=YES
,那么它应该返回一个代码。
他们关于处理运行时错误的文档可能很有用。