面对问题后:
ORA-32108:未指定最大列或参数大小
我研究了一下,我发现了这两个问题:Why does Oracle 9i treat an empty string as NULL?和Oracle not distinguishing between nulls and empty strings?。
这些问题解释了我得到的错误。但这引出了我的下一个问题 - 如何在Oracle的ResultSet中将空字符串作为字段值返回?
到目前为止我所拥有的是:
oracle::occi::OCCICURSOR
execute
声明GetCursor
以使用返回的结果集由于上述错误,execute
失败了。
那么,我怎样才能在结果集中返回这样的字段,该字段的值为空字符串(''
)?
换句话说,我不知道如何应用指定HERE的操作 - 它是服务器端的东西吗?或者我应该在我的代码中添加一些东西?或者在存储过程中,返回此结果集?
我使用OCCI(Oracle C ++调用接口)。我目前的解决方法是返回一个包含单个空格(' '
)的字符串,但我不喜欢它。
答案 0 :(得分:2)
如果要返回完全为NULL的列,可以使用CAST()
,将一种数据类型转换为另一种数据类型。
例如,以下内容将生成一个完全为空的列。
select a.*, cast(null as varchar2(1)) as null_column
from my_table a
但是,数据库现在知道这应该是VARCHAR2(1)的列,而如果你使用null as null_column
则没有指定最大长度。