如何在Oracle中将具有CLOB列的表从一个用户复制到另一个用户

时间:2015-08-08 18:38:28

标签: sql oracle sql-insert

我有一组表,应该从一个用户复制到另一个用户。我写了一个程序,当我运行它时复制所有表。其中一个表有CLOB列,它在运行程序时显示错误。

我试过

insert into destination_table_name values(select colume_name from source_table_name);

但该表有20列,因此不能使用。请帮我修复错误。

实际的错误消息是:

"**ORA-22992: cannot use LOB locators selected from remote tables**"

2 个答案:

答案 0 :(得分:2)

如果您使用select作为insert的源,则不能指定values子句,即clearly documented in the manual您还应始终指定要插入的列影响:

insert into destination_table_name (column_1, column_2, column3_)
select colume_1, column_2_column_3 
from source_table_name;

答案 1 :(得分:1)

如果你想复制整个表格(数据),最简单的方法似乎是:

CREATE TABLE OtherSchema.TableCopy AS
  SELECT * FROM OriginalSchema.OriginalTable
;

更新

您的评论

  

" ORA-22992:不能使用从远程表中选择的LOB定位器"是我的   错误。

完全改变图片。错误信息反映了这一点,并非按照设计进行。

已经提出了一些解决方法:

如果需要调整/进一步详细说明,请发表评论。