【发布时间】:2014-08-29 09:03:20
【问题描述】:
我有一个 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
一个建议的补救措施是:我们可以在运行 Pro*c 时指定 UNSAFE_NULL=YES 以禁用 ORA-01405 消息,但是当我尝试使用 proc 命令添加该标志时,它说,如果 MODE=ORACLE 和 DBMS 则允许 UNSAFE_NULL=YES =V7 或 V8
还有其他建议吗?
【问题讨论】:
-
使用指标变量......
标签: c++ c oracle oracle11g oracle-pro-c