最近,我对另一个问题中所述的程序错误感到困惑:Strange Cursor behavior while declaring same cursor multiple times
在大量使用 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 关闭 abc; ..
返回 sqlca.sqlcode
执行 SQL 提交; ..
返回 sqlca.sqlcode
我想了解为什么 declare 没有返回任何代码,因为我们正在使用 EXEC SQL
declare & 我认为 EXEC SQL
总是返回 sqlca。代码代码
。
此外,Oracle Pro*C 是否有解释所有这些的文档?
提前致谢。
最佳答案
根据 Oracle's documentation on DEF_SQLCODE ,所描述的行为似乎是一个错误;如果你设置了 #include <sqlqca.h>
或 EXEC SQL INCLUDE SQLCA;
并设置 DEF_SQLCODE=YES
在你的代码中,那么它应该返回一个代码。
关于c - 为什么在 Oracle Pro*C 中 Declare Cursor 不返回 sqlca.sqlcode?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47100259/