3

impdm と expdp を使用してデータベースをエクスポート/インポートするのに問題があります。

次のようなステートメントを使用して作成されたいくつかの作業ビューを持つ有効なスキーマがあります。

CREATE OR REPLACE FORCE VIEW someView (column1, column2, etc) AS SELECT column1, column2, etc FROM someTable;

ビューを問題なくクエリでき、有効な結果が得られます。

SELECT * FROM someView;

ただし、expdp を使用してビューの DDL をエクスポートしようとしたり、単純な dbms_metadata.get_ddl クエリを実行したりすると、. すなわち:

SELECT dbms_metadata.get_ddl('VIEW','someView','someSchema') FROM DUAL

...その後、一部のビュー ddl に SELECT キーワードがありません。したがって、最初にビューを作成するために使用された元の DDL を取得する代わりに、次のような結果が得られます。

CREATE OR REPLACE FORCE VIEW someView (column1, column3, etc) AS column1, column2, etcfrom someTable;

これは、インポートステップで物事が爆発するため、画像のエクスポート/インポートを行うことを妨げています:

ORA-39083: オブジェクト型VIEWはエラーで作成できませんでした: ORA-00928: SELECTキーワードがありません

提案?

WindowsでOracle 11.2を使用しています。

4

1 に答える 1

3

ビュー スクリプトをエクスポートする場合 (select ステートメントのみ)、システム テーブルからビュー コードにアクセスできますUSER_VIEWS(アクセスできると仮定します)。ビューのスクリプトは列の下にあります。TEXTここにサンプルクエリがあります

Select view_name,text
From user_views

selectステートメントを取得したら、簡単な文字列操作を行い、CREATE OR REPLACE ...構文を追加します

これらのシステム テーブルは非常に便利だと思います

于 2013-07-17T16:54:22.470 に答える