我有一个 Pro*C 代码,它连接到 Oracle 数据库并根据需要运行 SQL 查询。一个简单的 SQL 查询,如下所示:
SELECT A, B FROM TBL1 WHERE A = 'a'
面临错误 ORA-01405: fetched column value is NULL
注意在 TBL1 中,A 定义为 VARCHAR2(30),B 定义为 NUMBER(4,2)。我的 Pro*c 版本是 Pro*C/C++: Release 11.2.0.3.0
并且我正在使用 GNU gcc 系列的编译器 g++ 版本 2.95.3。Oracle 文档 ( http://docs.oracle.com/cd/A57673_01/DOC/api/doc/PC_22/ch03a.htm ) 指出
if you SELECT or FETCH a null into a host variable that has no indicator, Oracle issues the following error message:
ORA-01405: fetched column value is NULL
一种建议的补救措施是:我们可以指定 UNSAFE_NULL=YES 以在运行 Pro*c 时禁用 ORA-01405 消息,但是当我尝试使用 proc 命令添加该标志时,它说,如果 MODE=ORACLE 和 DBMS=V7 或V8
还有其他建议吗?