C++ 如何在ORACLE DB的resultset中返回空字符串(使用sys_refcursor)
面对问题后: ORA-32108:未指定最大列或参数大小 我研究了一下,发现了两个问题:和C++ 如何在ORACLE DB的resultset中返回空字符串(使用sys_refcursor),c++,oracle,occi,C++,Oracle,Occi,面对问题后: ORA-32108:未指定最大列或参数大小 我研究了一下,发现了两个问题:和 这些问题解释了我所犯的错误。但这就引出了下一个问题——如何在Oracle的ResultSet中返回空字符串作为字段值 到目前为止,我得到的是: 创建语句 将输出参数注册为oracle::occi::OCCICURSOR 执行语句 我调用GetCursor来使用返回的结果集 由于上述错误,执行失败 那么,如何在resultset中返回这样的字段,它的值为空字符串(') 换句话说,我不知道如何应用指定
这些问题解释了我所犯的错误。但这就引出了下一个问题——如何在Oracle的ResultSet中返回空字符串作为字段值
到目前为止,我得到的是:
- 创建语句
- 将输出参数注册为oracle::occi::OCCICURSOR
语句执行
- 我调用
来使用返回的结果集GetCursor
执行
失败
那么,如何在resultset中返回这样的字段,它的值为空字符串('
)
换句话说,我不知道如何应用指定的操作-它是服务器端的吗?或者我应该在代码中添加一些东西?或者在存储过程中,返回此结果集
使用OCI(Oracle C++调用接口)。我目前的解决方法是返回一个字符串,其中包含一个空格(
'
),但我不喜欢它。如果希望返回一个完全为空的列,可以使用它将一种数据类型转换为另一种数据类型
例如,下面将生成一个完全为空的列
select a.*, cast(null as varchar2(1)) as null_column
from my_table a
但是,数据库现在知道这应该是VARCHAR2(1)的一列,而如果使用
null作为null\u column
则没有指定最大长度。这意味着您希望返回一个完全为null的列?你可以看看这个cast是否有效,cast(null为varchar2(1))
。啊,这个cast就像一个符咒!谢谢你能补充一下吗?我很高兴!我把它作为一个答案加上去了。