すべての関数、プロシージャ、パッケージ、ビュー、およびテーブルからコード (スクリプト) を抽出する必要があります。これにより、本番環境に移行したときにスクリプトを実行してすべてのオブジェクトを作成できるようになります。
開発中、私はすべてのデータベース オブジェクトのスクリプト バックアップを取りませんでした。
コードまたはスクリプトを抽出する最良の方法は何ですか? 提案やヘルプは非常に高く評価されます。
ありがとう
すべての関数、プロシージャ、パッケージ、ビュー、およびテーブルからコード (スクリプト) を抽出する必要があります。これにより、本番環境に移行したときにスクリプトを実行してすべてのオブジェクトを作成できるようになります。
開発中、私はすべてのデータベース オブジェクトのスクリプト バックアップを取りませんでした。
コードまたはスクリプトを抽出する最良の方法は何ですか? 提案やヘルプは非常に高く評価されます。
ありがとう
バージョン管理システムを使用していませんか? してください。
システム関数を使用できない場合dbms_metadata.get_ddl
、オブジェクトの作成に使用された DDL の clob が返されます。これは個々のオブジェクトごとに行う必要があるため、ループする価値があるかもしれませんuser_objects
。
view
または、オブジェクトを右クリックしてオプションを使用し、オブジェクトの作成に使用された SQL を右下隅に表示して、PL/SQL Developer の定義を確認することもできます。
export "tool"もありますが、SQL Developer バリアントほど使用方法の説明がありません。
もちろん、正解はバージョン管理システムを入手して使用することです。
データベース自体についてはわかりませんが、SQLDeveloperが行います。TOADや他のそのようなツールもそうなると私はかなり確信しています。
申し訳ありませんが、1 人の開発者を超えて拡張できない最適化されていない開発プラクティスがあります。
SQL GUI クライアントの機能を使用してデータベース内のデータベース オブジェクトを直接編集しないでください。(故意に人為的な問題を作成したい場合を除きます。)
代わりに、すべての SQL および PL/SQL DDL および DML は、バージョン管理システム(VCS) に保存されたテキスト ファイルに配置する必要があります (例: subversion、git、mercurial )。お気に入りのエディターを使用してファイルを編集します。
VCS に保存されたテキスト ファイルをコマンド ライン ツール (Oracle ではsqlplus
) で実行して、データベースを変更します。これは、開発、QA、本番のすべてのデータベース インスタンスに適用されます。
大規模な開発プロジェクトでは、スキーマ移行ツール ( Flyway、Roundhouseなど) の使用を検討してください。
何年にもわたって、単純なルールを適用することで、大量の開発および生産の問題を排除することができました。
コードが VCS にない場合、存在しません。
(2015 年になってもまだ VCS を使用していない開発チームが多いのは驚くべきことです。)