遇到问题后:
ORA-32108:未指定的最大列或参数大小
我研究了一下,发现了以下两个问题:为什么Oracle9i将空字符串视为NULL?Oracle没有区分null和空字符串。
这些问题解释了我得到的错误。但这让我想到了下一个问题——如何在Oracle中的ResultSet中返回空字符串作为字段值?
到目前为止,我拥有的是:
- 创建语句
- 将输出参数注册为
oracle::occi::OCCICURSOR
execute
语句- 我调用
GetCursor
以使用返回的结果集
execute
由于上述错误而失败。
那么,如何在结果集中返回这样的字段,该字段的值为空字符串(''
)?
换句话说,我不知道如何应用这里指定的操作——它是服务器端的吗?或者我应该在代码中添加一些内容?或者在存储过程中,返回这个结果集?
我使用OCCI(Oracle C++调用接口)。我目前的解决方法是返回一个字符串,其中包含一个空格(' '
),但我不喜欢它
如果想要返回一个完全为NULL的列,可以使用CAST()
,它可以将一种数据类型转换为另一种。
例如,下面将生成一个完全为null的列。
select a.*, cast(null as varchar2(1)) as null_column
from my_table a
但是,数据库现在知道这应该是VARCHAR2(1)的一列,而如果使用null as null_column
,则没有指定最大长度。