insert into table_clob select to_lob(long_col)... from table_long; 注意to_lob函数只能用在select语句中,所以你的设法构造成select语句。
执行存储过程的时候报错: ORA-00997: 非法使用 LONG 数据类型 ORA-06512: 在 "HN1W.PRO_INTOCONTENT", line 7 ORA-06512: 在 line 3 View program sources of error stack?存储过程如下: create or replace procedure Pro_intoContent is begin insert into tf_content (CONTENT_ID, CREATE_TIME, MOOD_ICON, TITLE, CONTENT --clob类型 ) SELECT hn_content.nextval, ISSUEDATE, DIRECTORY, MSGTITLE, TO_LOB(MSGCONTENT) --long类型 FROM CSMESSAGE@hnold; --dblink end Pro_intoContent;
insert into tf_content (CONTENT_ID, CREATE_TIME, MOOD_ICON, TITLE, CONTENT --clob类型 ) SELECT hn_content.nextval, ISSUEDATE, DIRECTORY, MSGTITLE, TO_LOB(MSGCONTENT) --long类型 FROM CSMESSAGE@hnold; --dblink 看一下这个语句是否能运行通过,如果可以写在存储过程也是OK的啦! ORA-00997 illegal use of LONG datatypeCause: A value of datatype LONG was used in a function or in a DISTINCT, WHERE, CONNECT BY, GROUP BY, or ORDER BY clause. A LONG value can only be used in a SELECT clause.Action: Remove the LONG value from the function or clause.
注意to_lob函数只能用在select语句中,所以你的设法构造成select语句。
ORA-00997: 非法使用 LONG 数据类型
ORA-06512: 在 "HN1W.PRO_INTOCONTENT", line 7
ORA-06512: 在 line 3 View program sources of error stack?存储过程如下:
create or replace procedure Pro_intoContent is begin insert into tf_content
(CONTENT_ID,
CREATE_TIME,
MOOD_ICON,
TITLE,
CONTENT --clob类型
)
SELECT hn_content.nextval,
ISSUEDATE,
DIRECTORY,
MSGTITLE,
TO_LOB(MSGCONTENT) --long类型
FROM CSMESSAGE@hnold; --dblink end Pro_intoContent;
(CONTENT_ID,
CREATE_TIME,
MOOD_ICON,
TITLE,
CONTENT --clob类型
)
SELECT hn_content.nextval,
ISSUEDATE,
DIRECTORY,
MSGTITLE,
TO_LOB(MSGCONTENT) --long类型
FROM CSMESSAGE@hnold; --dblink
看一下这个语句是否能运行通过,如果可以写在存储过程也是OK的啦!
ORA-00997 illegal use of LONG datatypeCause: A value of datatype LONG was used in a function or in a DISTINCT, WHERE, CONNECT BY, GROUP BY, or ORDER BY clause. A LONG value can only be used in a SELECT clause.Action: Remove the LONG value from the function or clause.
还是报同样的错误。
ORA-00997: 非法使用 LONG 数据类型
ORA-00997: 非法使用 LONG 数据类型
文章是提出质疑的,没有解决LZ的问题。
介于不能是用link,是否考虑导出,导入后,在使用to_lob。
(
t01 INT
,t02 nvarchar2(2000)
)然后
insert into tmp select id,to_lob(long字段) from 表接着在用临时表转过去
看看行不行?
在本机用to_lob是可以的,但是我是要在远程的数据库获取long中的数据。