Oracle无法从LONG数据类型转换为CLOB数据类型(不一致的数据类型错误)

时间:2012-08-17 18:01:39

标签: oracle11g long-integer clob

在尝试将long数据类型转换为clob时,Oracle 11g给出了以下错误。 我试试:select to_lob(long_col_name) from table1. 我明白了:

[Error] Execution (1: 39): ORA-00932: inconsistent datatypes: expected - got LONG

我在这里做错了什么?

4 个答案:

答案 0 :(得分:2)

在同事的帮助下找到答案: http://docs.oracle.com/cd/B19306_01/server.102/b14200/functions185.htm 但不知道为什么会有这种限制

答案 1 :(得分:2)

您只能将此函数应用于LONG或LONG RAW列,并且只能应用于INSERT语句中子查询的选择列表中。

答案 2 :(得分:1)

我建议像这样的解决方法,希望这对某人有帮助。

 SELECT substr(Y.longtoclob,
          43 + length('ALIASLONG'),
          DBMS_LOB.GETLENGTH(Y.longtoclob) -
          2 * (32 + length('ALIASLONG'))) longtoclob
  from dual,
   (select (dbms_xmlgen.getxml('SELECT t.column_long ALIASLONG 
  FROM TABLE_LONG_CLOB t WHERE t.id = 2')) longtoclob
      from dual) Y where DBMS_LOB.GETLENGTH(Y.longtoclob) > 0

答案 3 :(得分:0)

您无法直接获取LONG到LOB。您可能希望先将其转换为VARCHAR2