2.28.1 pddefrevの形式と規則
(1) 機能
HiRDBシステム内に定義してある表,インデクス,ビュー表,ストアドプロシジャ,及びトリガの定義系SQLを生成します。
生成された定義系SQLは,データベース定義ユティリティの入力ファイルとして利用できます。pddefrevコマンドは,内部的にディクショナリ搬出入ユティリティ(pdexp)を起動して定義系SQLを生成します。
(2) 実行者
DBA権限を持つユーザ,又は表の所有者が実行できます。
(3) 形式
pddefrev -f 制御文ファイル名 -o 定義系SQL出力ファイル名 〔-w ワークディレクトリ名〕 〔-W 実行監視時間〕
(4) オプション
(a) -f 制御文ファイル名 〜<パス名>((1023バイト以内))
定義系SQLを生成したい表やストアドプロシジャを指定した制御文ファイルを指定します。制御文ファイルの内容については,「ディクショナリ搬出入ユティリティ(pdexp)」を参照してください。
(b) -o 定義系SQL出力ファイル名 〜<パス名>((1023バイト以内))
生成した定義系SQLを出力するファイルの名称を,絶対パス名で指定します。指定したファイルが既にある場合は上書きし,ない場合は新規に作成します。
(c) -w ワークディレクトリ名 〜<パス名>
pddefrevコマンドの内部でディクショナリの搬出をするときに作成する搬出ファイルを,一時的に格納するディレクトリを絶対パス名で指定します。省略した場合は,次に示すディレクトリにファイルを作成します。
-wオプションの指定 |
システム定義のpd_tmp_directoryオペランドの指定 |
||
---|---|---|---|
あり |
なし |
||
環境変数TMPの指定 |
|||
あり |
なし |
||
あり |
-wオプションに指定したディレクトリ |
||
なし |
pd_tmp_directoryに指定したディレクトリ |
TMPに指定したディレクトリ |
%PDDIR%\tmpディレクトリ |
なお,作成される搬出ファイルの名称は次のようになります。
pddefrev.exp.HHMMSS
HHMMSSには,ローカル時刻が設定されます。
(d) -W 実行監視時間 〜<符号なし整数>((0〜3600))
pddefrevコマンドの実行時間を監視する場合に,その監視時間を分単位で指定します。このオプションに指定する値の目安や動作については,マニュアル「HiRDB Version 9 システム定義」のシステム共通定義pd_cmd_exec_timeオペランドの説明を参照してください。
なお,このオプションに0を指定した場合は,監視を行いません。
また,このオプションを省略した場合は,システム共通定義のpd_cmd_exec_timeオペランドの指定値に従います。
(5) 規則
-
pddefrevコマンドは,HiRDBが稼働中のときだけ実行できます。
-
pddefrevコマンドは,シングルサーバ又はシステムマネジャがあるサーバマシンで実行してください。
-
pddefrevコマンドを実行する場合,定義系SQL出力ファイルとワークディレクトリのアクセス権限を,HiRDB管理者に対して与えておく必要があります。
(6) 注意事項
-
pddefrevコマンドの結果は,コマンド実行時のリターンコード,又はエラーメッセージの有無で確認できます。pddefrevコマンド実行時のリターンコードは,0の場合は正常終了,8又は12の場合は異常終了となります。
-
pddefrevコマンドは,同時に複数実行できません。また,ディクショナリ搬出入ユティリティとは同時に実行できません。
-
生成される定義系SQLを次に示します。
種別
インデクス定義
コメント定義
生成される定義系SQL
実表
あり
あり
CREATE TABLE
CREATE INDEX
COMMENT
なし
CREATE TABLE
CREATE INDEX
なし
あり
CREATE TABLE
COMMENT
なし
CREATE TABLE
ビュー表
−
あり
CREATE VIEW
COMMENT
なし
CREATE VIEW
ストアドプロシジャ
−
−
CREATE PROCEDURE
トリガ
−
−
CREATE TRIGGER
-
定義系SQLの生成順序は,制御文ファイルでの指定順になります。
-
生成された定義系SQLには,データベース定義ユティリティの入力ファイルとして利用できるように,行の最後にセミコロン(;)が付きます。ただし,CREATE PROCEDURE及びCREATE TRIGGERについては,end_proc;が付きます。
-
次に示す表,手続き,及び関数の定義系SQLは生成されません。
-
抽象データ型を含む表定義(CREATE TABLE)
-
インデクス型を指定したインデクス定義(CREATE INDEX)
-
関数定義(CREATE FUNCTION,及びシステム定義スカラ関数)
-
手続きのパラメタのデータ型として抽象データ型を指定している手続き(CREATE PROCEDURE)
-
手続き定義の中から手続きを呼び出している手続き(CREATE PROCEDURE)
-
抽象データ型内で宣言されている手続き(CREATE TYPE)
-
手続き定義の中から関数定義(CREATE FUNCTION,及びシステム定義スカラ関数)を呼び出している手続き(CREATE PROCEDURE)
-
-
CREATE PROCEDUREを生成する場合,SQL最適化オプション及びSQL拡張最適化オプションの指定値は,10進数に変換された形式で生成されます。
-
生成される定義系SQLは,条件によって改行されます。改行条件については,「定義系SQLの生成についての規則」を参照してください。
-
pdntenvコマンドで文字コードとしてutf-8,又はutf-8_ivsを選択した場合,pddefrevの制御文ファイルには,BOMを持つファイルを使用できます。なお,pddefrevの制御文ファイルとしてBOMを持つファイルを使用しても,BOMは読み飛ばされます。また,pddefrevで出力されるファイルにはBOMは付きません。
-
文字集合UTF-16を指定したCHAR型の列を,キーレンジ分割又はマトリクス分割(境界値指定のキーレンジ分割)の分割キーとして指定した表の場合,分割キーの長さが列の定義長を超えるときは,その表の定義系SQLは生成できません。