問題タブ [dbms-metadata]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
oracle - dbms_metadata.get_ddl をより見やすく便利にする方法
スキーマ内のオブジェクトの DDL を生成するパッケージを作成しているため (オブジェクト名を解析し、clob
DDL を返す)、ファイルを生成して直接 SVN に入れることができます。
私は を使用してdbms_metadata.get_ddl
いますが、テーブル/マテリアライズド ビューを除くすべてのオブジェクトでうまく機能します。
次のようにテーブルを作成した場合:
そして、以下を使用して DDL を生成します。
それは私たちに与えます:
関連するすべてのインデックスを取得するには、次を使用できます。
持つため:
create table、constraints、indexs、grants (必要なすべての定義を含む 1 つのファイルを作成するため) を含むファイルを作成したいのですが、dbms_metadata
それを使用するのは不可能に思えます。
出力に関する私の問題は次のとおりです。
名前の二重引用符
DDL 内のスキーマ名により、多くのスキーマで同じ DDL をコンパイルすることが困難になります。これを修正するには、正規表現の for を作成するか、次のようなものを追加する必要があります。
ただし、さらに8行ほど追加する必要があります。
/li>制約 (インデックスを使用するもの) とインデックスを同時に抽出する方法はありません。の定義が繰り返されているため、出力を連結できません
ui_test
。はい、制約を削除するオプションがありますが、get_ddl
制約/チェックが失われています。PL/SQL Developerが出力を作成する方法
/li>
PL/SQL Developerに似た出力を作成する方法を知っている人はいますか? 彼らは ) の XML パーサーを作成して、よりきれいなバージョンを作成したと思いますdbms_metadata.get_xml
(インデント、順序、すべてが適切な場所にあり、どこでもコンパイルできる状態)。
もちろん、正規表現で遊ぶこともできますuser_indexes
が、それは重要ではありません。
ps。DBMS_METADATA.SET_TRANSFORM_PARAM(DBMS_METADATA.SESSION_TRANSFORM,'PRETTY',true);
「かわいい」とは奇妙な定義です。
oracle - PlSqlで正確なテーブル定義を取得する方法
ESU_1 はソース テーブルです。
ESU_1 を使用してテーブル ESU_2 を作成しました
以下のクエリを使用してテーブル定義を取得したとき
私はこのo / pを手に入れました
しかし、正確なテーブル定義が必要です
どうすればこれを入手できますか?