【发布时间】:2015-06-23 13:58:06
【问题描述】:
我正在尝试从长列插入 varchar2 列。这是下面的例子,TEXT.TEXT_COL = VARCHAR2(4000)
和NOTE.TEXT_NOTE = LONG。
INSERT INTO TEXT(ROW_ID, TEXT_COL)
SELECT 1, TEXT_NOTE FROM NOTE;
当我运行上面的 sql 时出现错误
SQL 错误:ORA-00997:非法使用 LONG 数据类型
我也使用了TO_LOB(),但仍然是同样的错误。
是否有任何函数可以简单地将long 转换为varchar2。让我知道你的想法。
【问题讨论】:
-
你不能只使用内置过程在单个语句中完成,请参阅this thread
-
您需要使用 PL/SQL 或带有 CLOB 列的中间表。当然,如果 LONG 列中的任何值超过 4000 字节,您可能仍然需要 CLOB;还是你很乐意截断那些?
-
我必须在 informatica 会话级别使用这个 sql。我尝试了 informatica 内置数据类型的映射级别,但它也不起作用。
-
我还有其他方法可以解决这个问题吗?
-
CAST(TEXT_NOTE AS VARCHAR) 是否向您抛出了错误?