【发布时间】:2015-09-20 22:19:04
【问题描述】:
在我的项目中,我们在物化视图中使用了一个带有 CLOB 列的表,方法是使用 TO_CHAR 对其进行转换,因此结果列是一个大小为 4000 个字符的 VARCHAR2。
MAX(CASE WHEN BONG_NARR_TY = 'ADTX' AND TO_CHAR(BONG_NARR_TX) IS NOT NULL THEN BONG_NARR_TX END ) AS ADTX_OP_NARR,
视图中是否可以有超过 4000 个字符,因为当我跳过时
TO_CHAR
MAX(CASE WHEN BONG_NARR_TY = 'ADTX' AND BONG_NARR_TX IS NOT NULL THEN BONG_NARR_TX END ) AS ADTX_OP_NARR,
我收到以下错误。
SQL Error: ORA-00932: inconsistent datatypes: expected - got CLOB
00932. 00000 - "inconsistent datatypes: expected %s got %s"
CLOB 的大小是 8Gb,但由于 View 我被限制为 4Kb :)
【问题讨论】:
-
如果 CLOB 对于 VARCHAR2 来说太大,我认为你不能 TO_CHAR() 一个 clob。
-
在这里尝试一些类型转换。此外,您正在检查 CLOB 是否为空,没有转换,但您也有一个 CASE 将其与“ADTX”进行比较给出整个语句,我可以更好地解释。
-
你想用这个查询来完成什么?您为什么要尝试将
MAX与CLOB列一起使用(正如 Jon-Tofte Hansen 在他们的回答中指出的那样)是不可能的)?
标签: oracle oracle11g clob materialized-views varchar2