如何将行从远程数据库中的表插入表中?
我们目前有一个使用数据库链接执行此操作的存储过程。但是,我们必须删除该链接,因为我们的公司政策不允许使用它们。
begin
...
execute immediate 'insert into '|| table_name
|| ' (select * from schema_name.'|| table_name ||'@link)';
...
end;
我无法使用COPY
命令,因为它似乎无法识别。
COPY FROM username/pwd@SID
insert into table_name using (select *
from table_name);
Error report:
SQL Error: ORA-00926: missing VALUES keyword
00926. 00000 - "missing VALUES keyword"
*Cause:
*Action:
根据this SQL Plus页面,COPY
命令现已过时。
答案 0 :(得分:4)
您的查询语法略有错误,您只需指定INSERT/REPLACE/CREATE
..而INTO
NOT 需要。
COPY不会过时,但会以某些编码issues结束。 你可以使用行继续符来解决这个问题。
COPY
FROM username/pwd@SID
TO username/pass@SID2
insert
table_name
using
select * from schema_name.table_name;
您也可以将表格数据下载到文本文件中,然后使用SQL*Loader
将数据加载到另一个数据库中。
我更喜欢SQL * Loader选项!由于维护很容易!
下载,
- 您可以使用带有分隔符选项的SPOOL,如Here所述
- 编写Pro C / PLSQL将数据输出到文件中(Pro C中为Method 4,或者从dba_columns
中选择列名))