データベース コードを展開するために使用される大規模な (2000 以上の) スクリプト セットがあります。正しい依存関係の順序に準拠する単一の展開スクリプトを作成するために使用できるツールがあるかどうかを知っている人はいますか?
Redgate の SQL Compare を使用してこれを実行できることは理解していますが、SQL Server を使用している場合はこれで十分です。Schema Compare for Oracle ツールに関する限られた情報から、この機能はないようです。
私は次の順序で行きます(大まかにオブジェクトがEXPDPで抽出される順序に基づいています):
スクリプトの実装方法に応じて、スクリプトを適切な順序で開始するスクリプトを作成します。
force
、生成順序の問題または「コード」タイプまたは他のビューとタイプへの依存関係がある場合に作成されるオプションを使用)無効なオブジェクトの再コンパイルが完了したら、rdbms / admin/utlrpをキックオフして無効なオブジェクトを再コンパイルします。
問題を完全に理解しているかどうかはわかりませんが、次のことをお試しください。
以下は、さまざまな種類のデータベース オブジェクトに対してインストール スクリプトを実行する順序の一般的なガイドラインです。
Package specifications
Tables (with constraints and indexes) in proper order
Sequences (because they are most often used by triggers)
Triggers
Synonyms
Views (because they may reference functions, procedures, or synonyms)
Package bodies
Data (optionally disabling all constraints before loading the data and re-enabling them afterwards)
パッケージ仕様は常に有効であり、他のオブジェクトがそれらを参照する可能性があるため、最初に一覧表示されます。パッケージ本体は、他のオブジェクト タイプを参照する可能性があるため、最後に作成する必要があります。依存関係の問題のため、関数とプロシージャをパッケージに入れることをお勧めします。