遇到问题后:
ORA-32108: max column or parameter size not specified
我稍微研究了一下,发现了这两个问题:Why does Oracle 9i treat an empty string as NULL?和 Oracle not distinguishing between nulls and empty strings? .
这些问题解释了我得到的错误。但这让我想到了下一个问题 - 如何在 Oracle 的 ResultSet 中将空字符串作为字段值返回?
我目前拥有的是:
- 创建声明
- 将输出参数注册为
oracle::occi::OCCICURSOR
执行
语句- 我调用
GetCursor
来使用返回的结果集
由于上述错误,执行
失败。
那么,我怎样才能在结果集中返回这样一个值为空字符串 (''
) 的字段?
换句话说,我不知道如何应用指定的操作 HERE - 它是服务器端的东西吗?或者我应该在我的代码中添加一些东西?或者在存储过程中,返回此结果集?
我使用 OCCI(Oracle C++ 调用接口(interface))。我目前的解决方法是返回一个字符串,其中包含一个空格 (' '
),但我不喜欢它。
最佳答案
如果您想要返回一个完全为 NULL 的列,您可以使用 CAST()
, 它将一种数据类型转换为另一种数据类型。
例如,以下将生成一个完全空的列。
select a.*, cast(null as varchar2(1)) as null_column
from my_table a
但是,数据库现在知道这应该是 VARCHAR2(1) 的列,而如果您使用 null as null_column
,则没有指定最大长度。
关于c++ - 如何在 ORACLE DB 的结果集中返回空字符串(使用 sys_refcursor),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13912719/