【发布时间】:2013-06-13 23:29:24
【问题描述】:
我有一个 Oracle 过程将在一个参数中接受多个值。该过程的一部分将运行一个 select 语句,将参数的结果放在 where 子句中,并将连接的 CLOB 放入一个变量中。我目前在程序中使用下面的查询,但是当我运行它时,我得到了下面的错误。
If CLOB_ID is not null then
SELECT cast((collect(CLOB_TEXT) )as CLOB )
into v_MessageBody
FROM MESSAGE_CLOB_TABLE
WHERE MESSAGE_ID in CLOB_ID;
End If;
错误:ORA-00932:不一致的数据类型:预期 - 得到 CLOB
我也尝试使用 LISTAGG 函数编写此代码,但 LISTAGG 不适用于 MESSAGE_CLOB_TABLE 中的 CLOB 值
任何帮助将不胜感激!我正在使用 Oracle 11g。
【问题讨论】:
-
示例查询中 CLOB_ID 的类型和 CLOB_TEXT 字段的类型是什么?
-
顺便说一下(这不是答案,但是...)您可能需要在查询中添加
order by子句,因为在当前变体中,不能保证从@987654323 中获取行@以任何合理的顺序。