c - 为什么在 Oracle Pro*C 中 Declare Cursor 不返回 sqlca.sqlcode?

标签 c oracle cursor oracle-pro-c

最近,我对另一个问题中所述的程序错误感到困惑: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在你的代码中,那么它应该返回一个代码。

他们的 documentation on handling runtime errors可能有用。

关于c - 为什么在 Oracle Pro*C 中 Declare Cursor 不返回 sqlca.sqlcode?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47100259/

相关文章:

sql - 引用光标在 XMLType.createxml 中丢失

c - 使用 strlen 和完整数组不打印的数组长度不同?

c - Microsoft Crypto API 禁止使用 RSAES-OAEP key 传输算法

android - Android 中带有游标的表联合

sql - 表 SQL 中列值的超集

sql - 删除表是否也会删除约束?

MySQL 过程 : error in fetch

c++ - openCV 错误 : undefined reference to `cvLoadImage' Ubuntu

c - 递归的大O

java - 如何使用jpa中的选择查询来检索所有数据?