3

当我执行以下操作时:

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

我收到一个错误

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

请注意,当我执行常规(而不是全部插入)时...插入在数据库链接上工作。(赠款是有效的)。

两个表上也没有触发器。

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

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

4

2 回答 2

5

此消息有点误导,但无论如何根据Oracle SQL 参考

您不能对远程表执行多表插入。

于 2012-01-18T21:38:55.477 回答
1

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

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

多表插入的限制

您只能对表执行多表插入,而不能对视图或物化视图执行。

您不能对远程表执行多表插入。

执行多表插入时不能指定表集合表达式。

在多表插入中,所有的 insert_into_clauses 不能组合来指定超过 999 个目标列。

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

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

多表插入语句的子查询不能使用序列。

资料来源:Oracle 9i 文档

于 2012-01-18T21:34:29.120 回答