3

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

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

我在这里做错了什么?

4

4 回答 4

4

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

于 2012-08-17T18:22:08.300 回答
3

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

于 2013-10-16T09:22:30.267 回答
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
于 2014-02-26T14:04:33.647 回答
0

您不能直接将 LONG 提取到 LOB。您可能想先将其转换为 VARCHAR2

于 2012-08-17T20:30:18.003 回答