問題タブ [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.

0 投票する
2 に答える
9604 参照

oracle - dbms_metadata.get_ddl をより見やすく便利にする方法

スキーマ内のオブジェクトの DDL を生成するパッケージを作成しているため (オブジェクト名を解析し、clobDDL を返す)、ファイルを生成して直接 SVN に入れることができます。

私は を使用してdbms_metadata.get_ddlいますが、テーブル/マテリアライズド ビューを除くすべてのオブジェクトでうまく機能します。

次のようにテーブルを作成した場合:

そして、以下を使用して DDL を生成します。

それは私たちに与えます:

関連するすべてのインデックスを取得するには、次を使用できます。

持つため:

create table、constraints、indexs、grants (必要なすべての定義を含む 1 つのファイルを作成するため) を含むファイルを作成したいのですが、dbms_metadataそれを使用するのは不可能に思えます。

出力に関する私の問題は次のとおりです。

  1. 名前の二重引用符

  2. DDL 内のスキーマ名により、多くのスキーマで同じ DDL をコンパイルすることが困難になります。これを修正するには、正規表現の for を作成するか、次のようなものを追加する必要があります。

    ただし、さらに8行ほど追加する必要があります。

    /li>
  3. 制約 (インデックスを使用するもの) とインデックスを同時に抽出する方法はありません。の定義が繰り返されているため、出力を連結できませんui_test。はい、制約を削除するオプションがありますが、get_ddl制約/チェックが失われています。

  4. 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);「かわいい」とは奇妙な定義です。

0 投票する
1 に答える
541 参照

oracle - PlSqlで正確なテーブル定義を取得する方法

ESU_1 はソース テーブルです。

ESU_1 を使用してテーブル ESU_2 を作成しました

以下のクエリを使用してテーブル定義を取得したとき

私はこのo / pを手に入れました

しかし、正確なテーブル定義が必要です

どうすればこれを入手できますか?