17 个解决方案
#1
insert into table_clob select to_lob(long_col)... from table_long;
注意to_lob函数只能用在select语句中,所以你的设法构造成select语句。
#2
执行存储过程的时候报错:
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;
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;
#3
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 datatype
Cause: 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.
(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 datatype
Cause: 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.
#4
也是不行
还是报同样的错误。
ORA-00997: 非法使用 LONG 数据类型
还是报同样的错误。
ORA-00997: 非法使用 LONG 数据类型
#5
dblink 不能使用to_lob
#6
dblink 不能使用to_lob -----这个问题怎么解决
还有没有其他办法。
还有没有其他办法。
#7
把表改为同义词,不用dblink?
#8
把表改为同义词----是什么意思
#9
改成同义词,还是不行。
ORA-00997: 非法使用 LONG 数据类型
ORA-00997: 非法使用 LONG 数据类型
#10
那先转到临时表,看看在插入行不行?
#11
http://www.cnblogs.com/songsh96/archive/2007/09/05/882587.html
文章是提出质疑的,没有解决LZ的问题。
介于不能是用link,是否考虑导出,导入后,在使用to_lob。
文章是提出质疑的,没有解决LZ的问题。
介于不能是用link,是否考虑导出,导入后,在使用to_lob。
#12
远程数据库我是没有权限进行操作的。
#13
在本机建一临时表
create table tmp
(
t01 INT
,t02 nvarchar2(2000)
)
然后
insert into tmp select id,to_lob(long字段) from 表
接着在用临时表转过去
看看行不行?
create table tmp
(
t01 INT
,t02 nvarchar2(2000)
)
然后
insert into tmp select id,to_lob(long字段) from 表
接着在用临时表转过去
看看行不行?
#14
在本机用to_lob是可以的,但是我是要在远程的数据库获取long中的数据。
#15
远程数据库你没有操作权限?
#16
远程数据库我只有只读权限,无法进行操作。。。
#17
远程表中的数据读过来插入自己的临时表,然后再转了。
#1
insert into table_clob select to_lob(long_col)... from table_long;
注意to_lob函数只能用在select语句中,所以你的设法构造成select语句。
#2
执行存储过程的时候报错:
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;
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;
#3
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 datatype
Cause: 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.
(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 datatype
Cause: 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.
#4
也是不行
还是报同样的错误。
ORA-00997: 非法使用 LONG 数据类型
还是报同样的错误。
ORA-00997: 非法使用 LONG 数据类型
#5
dblink 不能使用to_lob
#6
dblink 不能使用to_lob -----这个问题怎么解决
还有没有其他办法。
还有没有其他办法。
#7
把表改为同义词,不用dblink?
#8
把表改为同义词----是什么意思
#9
改成同义词,还是不行。
ORA-00997: 非法使用 LONG 数据类型
ORA-00997: 非法使用 LONG 数据类型
#10
那先转到临时表,看看在插入行不行?
#11
http://www.cnblogs.com/songsh96/archive/2007/09/05/882587.html
文章是提出质疑的,没有解决LZ的问题。
介于不能是用link,是否考虑导出,导入后,在使用to_lob。
文章是提出质疑的,没有解决LZ的问题。
介于不能是用link,是否考虑导出,导入后,在使用to_lob。
#12
远程数据库我是没有权限进行操作的。
#13
在本机建一临时表
create table tmp
(
t01 INT
,t02 nvarchar2(2000)
)
然后
insert into tmp select id,to_lob(long字段) from 表
接着在用临时表转过去
看看行不行?
create table tmp
(
t01 INT
,t02 nvarchar2(2000)
)
然后
insert into tmp select id,to_lob(long字段) from 表
接着在用临时表转过去
看看行不行?
#14
在本机用to_lob是可以的,但是我是要在远程的数据库获取long中的数据。
#15
远程数据库你没有操作权限?
#16
远程数据库我只有只读权限,无法进行操作。。。
#17
远程表中的数据读过来插入自己的临时表,然后再转了。