Oracle 11g 在尝试将 long 数据类型转换为 clob 时出现以下错误。我尝试:select to_lob(long_col_name) from table1.
我得到:
[Error] Execution (1: 39): ORA-00932: inconsistent datatypes: expected - got LONG
我在这里做错了什么?
Oracle 11g 在尝试将 long 数据类型转换为 clob 时出现以下错误。我尝试:select to_lob(long_col_name) from table1.
我得到:
[Error] Execution (1: 39): ORA-00932: inconsistent datatypes: expected - got LONG
我在这里做错了什么?
在同事的帮助下在这里找到了答案:http: //docs.oracle.com/cd/B19306_01/server.102/b14200/functions185.htm 但不知道为什么会有这个限制
您只能将此函数应用于 LONG 或 LONG RAW 列,并且只能应用于 INSERT 语句中子查询的选择列表中。
我建议这样的解决方法,希望这对某人有所帮助。
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
您不能直接将 LONG 提取到 LOB。您可能想先将其转换为 VARCHAR2