gpt4 book ai didi

c++ - 如何在 ORACLE DB 的结果集中返回空字符串(使用 sys_refcursor)

转载 作者:行者123 更新时间:2023-11-30 04:22:18 27 4
gpt4 key购买 nike

遇到问题后:

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/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com