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 操作は許可されていませんか?

残念ながら違います。このリストの 2 番目の項目に注意してください。

マルチテーブル挿入の制限

マルチテーブル挿入は、ビューやマテリアライズド ビューではなく、テーブルに対してのみ実行できます。

リモート テーブルへの複数テーブルの挿入は実行できません。

複数テーブルの挿入を実行する場合、テーブル コレクション式を指定することはできません。

マルチテーブル挿入では、すべての insert_into_clauses を組み合わせて 999 を超えるターゲット列を指定することはできません。

マルチテーブルの挿入は、Real Application Clusters 環境では並列化されません。ターゲット テーブルがインデックス構成されている場合、またはターゲット テーブルにビットマップ インデックスが定義されている場合は、並列化されません。

マルチテーブル挿入ステートメントでは、プランの安定性はサポートされていません。

multitable insert 文のサブクエリはシーケンスを使用できません。

出典: Oracle 9i のドキュメント

于 2012-01-18T21:34:29.120 に答える