通过dblink将所有内容插入表中。是否可能?

时间:2012-01-18 21:25:53

标签: oracle dblink

执行以下操作时:

INSERT ALL INTO table@database_link(columnName) VALUES (columnValue)
SELECT columnValue FROM localTable;

我收到错误

  

SQL错误:ORA-02021:远程上不允许DDL操作   数据库   02021. 00000 - “远程数据库不允许DDL操作”   *原因:尝试在远程数据库上使用DDL操作。              例如,“CREATE TABLE tablename @ remotedbname ...”。   *操作:要更改远程数据库结构,必须连接到              具有适当权限的远程数据库。

请注意,当我执行常规(不是插入ALL)时...插入在数据库链接上工作。 (补助金有效)。

两个表都没有触发器。

我明确需要INSERT ALL INTO,以便能够插入多个表。

INSERT ALL INTO操作是否不允许进入数据库链接表?

2 个答案:

答案 0 :(得分:5)

根据the Oracle SQL Reference

,此消息有点误导,但无论如何
  

您无法在远程表格中执行多表插入。

答案 1 :(得分:1)

  

INSERT ALL INTO操作是否不允许进入数据库链接表?

不幸的是没有。请注意此列表中的第二项:

  

多种插入内容的限制

     

您只能在表上执行多表插入,而不能在视图上执行   物化观点。

     

您无法在远程表中执行多表插入。

     

执行a时,无法指定表集合表达式   多重插入。

     

在多表插入中,所有insert_into_clauses都无法组合   指定超过999个目标列。

     

多重插入不在Real Application Clusters中并行化   环境,或者任何目标表是否由索引组织,或者是否有   目标表上定义了位图索引。

     

多表插入语句不支持计划稳定性。

     

multitable insert语句的子查询不能使用序列。

来源:Oracle 9i documentation