pddefrev定義系SQLの生成

機能

HiRDBシステム内に定義してある表,インデクス,ビュー表,別名表,ストアドプロシジャ,及びトリガの定義系SQLを生成します。

生成された定義系SQLは,データベース定義ユティリティの入力ファイルとして利用できます。pddefrevコマンドは,内部的にディクショナリ搬出入ユティリティ(pdexp)を起動して定義系SQLを生成します。

実行者

DBA権限を持つユーザ,又は表の所有者が実行できます。

形式

 pddefrev -f 制御文ファイル名

      -o 定義系SQL出力ファイル名

     〔-w ワークディレクトリ名〕

オプション

定義系SQLを生成したい表やストアドプロシジャを指定した制御文ファイルを指定します。制御文ファイルの内容については,「9. ディクショナリ搬出入ユティリティ(pdexp)」を参照してください。

生成した定義系SQLを出力するファイルの名称を,絶対パス名で指定します。指定したファイルが既にある場合は上書きし,ない場合は新規に作成します。

pddefrevコマンドの内部でディクショナリの搬出をするときに作成する搬出ファイルを,一時的に格納するディレクトリを絶対パス名で指定します。省略した場合は,次に示すディレクトリにファイルを作成します。

-wオプションの指定システム定義のpd_tmp_directoryオペランドの指定
ありなし
環境変数TMPDIRの指定
ありなし
あり-wオプションに指定したディレクトリ
なしpd_tmp_directoryに指定したディレクトリTMPDIRに指定したディレクトリ/tmpディレクトリ

なお,作成される搬出ファイルの名称は次のようになります。

pddefrev.exp.HHMMSS

HHMMSSには,ローカル時刻が設定されます。

規則

  1. pddefrevコマンドは,HiRDBが稼働中のときだけ実行できます。
  2. pddefrevコマンドは,シングルサーバ又はシステムマネジャがあるサーバマシンで実行してください。
  3. pddefrevコマンドを実行する場合,定義系SQL出力ファイルとワークディレクトリのアクセス権限を,HiRDB管理者に対して与えておく必要があります。

注意事項

  1. pddefrevコマンドの結果は,コマンド実行時のリターンコード,又はエラーメッセージの有無で確認できます。pddefrevコマンド実行時のリターンコードは,0の場合は正常終了,8又は12の場合は異常終了となります。
  2. pddefrevコマンドは,同時に複数実行できません。また,ディクショナリ搬出入ユティリティとは同時に実行できません。
  3. 生成される定義系SQLを次に示します。
    種別インデクス定義コメント定義生成される定義系SQL
    実表ありありCREATE TABLE
    CREATE INDEX
    COMMENT
    なしCREATE TABLE
    CREATE INDEX
    なしありCREATE TABLE
    COMMENT
    なしCREATE TABLE
    ビュー表ありCREATE VIEW
    COMMENT
    なしCREATE VIEW
    別名表CREATE ALIAS
    ストアドプロシジャCREATE PROCEDURE
    トリガCREATE TRIGGER

    (凡例)-:該当しません。

     


  4. 定義系SQLの生成順序は,制御文ファイルでの指定順になります。
  5. 生成された定義系SQLには,データベース定義ユティリティの入力ファイルとして利用できるように,行の最後にセミコロン(;)が付きます。ただし,CREATE PROCEDURE及びCREATE TRIGGERについては,end_proc;が付きます。
  6. 次に示す表,手続き,及び関数の定義系SQLは生成されません。
    • 抽象データ型を含む表定義(CREATE TABLE)
    • インデクス型を指定したインデクス定義(CREATE INDEX)
    • 関数定義(CREATE FUNCTION,及びシステム定義スカラ関数)
    • 手続きのパラメタのデータ型として抽象データ型を指定している手続き(CREATE PROCEDURE)
    • 手続き定義の中から手続きを呼び出している手続き(CREATE PROCEDURE)
    • 抽象データ型内で宣言されている手続き(CREATE TYPE)
    • 手続き定義の中から関数定義(CREATE FUNCTION,及びシステム定義スカラ関数)を呼び出している手続き(CREATE PROCEDURE)
  7. CREATE PROCEDUREを生成する場合,SQL最適化オプション及びSQL拡張最適化オプションの指定値は,10進数に変換された形式で生成されます。
  8. 生成される定義系SQLは,条件によって改行されます。改行条件については,「9.3(3)定義系SQLの生成についての規則」を参照してください。
  9. pdsetupコマンドで文字コードとしてutf-8を選択した場合,pddefrevの制御文ファイルには,BOMを持つファイルを使用できます。なお,pddefrevの制御文ファイルとしてBOMを持つファイルを使用しても,BOMは読み飛ばされます。また,pddefrevで出力されるファイルにはBOMは付きません。
  10. 列のデータ型がCHAR型,かつ文字集合UTF-16を指定した列を,キーレンジ分割,又はマトリクス分割(境界値指定のキーレンジ分割)の分割キー指定し,分割キーの長さが列の定義長を超える表は,表の定義系SQLは生成できません。