在Oracle中,如何将一张表中的long字段的数据插入到另一张表中的clob的字段中

linoxu 2008-09-08 11:09:00
在Oracle中,如何将一张表中的long字段的数据插入到另一张表中的clob的字段中
...全文
607 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
richard_2010 2008-09-19
  • 打赏
  • 举报
回复
[Quote=引用 14 楼 linoxu 的回复:]
引用 13 楼 cosio 的回复:

在本机建一临时表

create table tmp
(
      t01  INT
      ,t02  nvarchar2(2000)
)

然后
insert into tmp select id,to_lob(long字段) from 表

接着在用临时表转过去
看看行不行?


在本机用to_lob是可以的,但是我是要在远程的数据库获取long中的数据。
[/Quote]
远程表中的数据读过来插入自己的临时表,然后再转了。
linoxu 2008-09-19
  • 打赏
  • 举报
回复
远程数据库我只有只读权限,无法进行操作。。。
cosio 2008-09-17
  • 打赏
  • 举报
回复
远程数据库你没有操作权限?
linoxu 2008-09-17
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 cosio 的回复:]
在本机建一临时表

create table tmp
(
t01 INT
,t02 nvarchar2(2000)
)

然后
insert into tmp select id,to_lob(long字段) from 表

接着在用临时表转过去
看看行不行?
[/Quote]

在本机用to_lob是可以的,但是我是要在远程的数据库获取long中的数据。
cosio 2008-09-17
  • 打赏
  • 举报
回复
在本机建一临时表

create table tmp
(
t01 INT
,t02 nvarchar2(2000)
)

然后
insert into tmp select id,to_lob(long字段) from 表

接着在用临时表转过去
看看行不行?
linoxu 2008-09-17
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 cosio 的回复:]
那先转到临时表,看看在插入行不行?
[/Quote]

远程数据库我是没有权限进行操作的。
jdsnhan 2008-09-16
  • 打赏
  • 举报
回复
http://www.cnblogs.com/songsh96/archive/2007/09/05/882587.html
文章是提出质疑的,没有解决LZ的问题。
介于不能是用link,是否考虑导出,导入后,在使用to_lob。
cosio 2008-09-16
  • 打赏
  • 举报
回复
那先转到临时表,看看在插入行不行?
linoxu 2008-09-16
  • 打赏
  • 举报
回复
改成同义词,还是不行。
ORA-00997: 非法使用 LONG 数据类型
linoxu 2008-09-08
  • 打赏
  • 举报
回复
把表改为同义词----是什么意思
cosio 2008-09-08
  • 打赏
  • 举报
回复
把表改为同义词,不用dblink?
linoxu 2008-09-08
  • 打赏
  • 举报
回复
dblink 不能使用to_lob -----这个问题怎么解决

还有没有其他办法。

oracledbalgtu 2008-09-08
  • 打赏
  • 举报
回复
dblink 不能使用to_lob

[Quote=引用 2 楼 linoxu 的回复:]
执行存储过程的时候报错:
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类型
)
SELEC…
[/Quote]
linoxu 2008-09-08
  • 打赏
  • 举报
回复
也是不行
还是报同样的错误。


ORA-00997: 非法使用 LONG 数据类型
cosio 2008-09-08
  • 打赏
  • 举报
回复
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.
linoxu 2008-09-08
  • 打赏
  • 举报
回复
执行存储过程的时候报错:
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;
oracledbalgtu 2008-09-08
  • 打赏
  • 举报
回复


insert into table_clob select to_lob(long_col)... from table_long;
注意to_lob函数只能用在select语句中,所以你的设法构造成select语句。


[Quote=引用楼主 linoxu 的帖子:]
在Oracle中,如何将一张表中的long字段的数据插入到另一张表中的clob的字段中
[/Quote]

3,491

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 高级技术相关讨论专区
社区管理员
  • 高级技术社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧