在尝试将long数据类型转换为clob时,Oracle 11g给出了以下错误。
我试试:select to_lob(long_col_name) from table1.
我明白了:
[Error] Execution (1: 39): ORA-00932: inconsistent datatypes: expected - got LONG
我在这里做错了什么?
答案 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