我有一组表,应该从一个用户复制到另一个用户。我写了一个程序,当我运行它时复制所有表。其中一个表有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**"
答案 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定位器"是我的 错误。
完全改变图片。错误信息反映了这一点,并非按照设计进行。
。已经提出了一些解决方法:
CREATE MATERIALIZED VIEW ... AS SELECT * FROM <TABLE>@dbLink
。资料来源:user500315 Feb 8, 2007 9:28 AM response to "ORA-22992: cannot use LOB locators selected from remote tables"。CREATE GLOBAL TEMPORARY TABLE
。 INSERT ... SELECT
将此临时表中的CLOB
列放在远程数据库中。然后从那里开始。来源:"How to select table from remote database having clob field" @ Ask Tom。如果需要调整/进一步详细说明,请发表评论。