Hitachi

ノンストップデータベース HiRDB Version 9 コマンドリファレンス(Windows(R)用)


9.3.3 定義系SQLの生成についての規則

  1. 搬出時(-eオプション)に,定義系SQLの生成(-oオプション)を指定した場合,定義系SQLの生成はしません。

  2. 定義系SQLを生成する場合,SQL文の生成順序は搬出順となります。

  3. 次に示す表,手続き,及び関数の定義系SQLは生成されません。

    • 抽象データ型を含む表定義(CREATE TABLE)

    • 手続きのパラメタのデータ型として抽象データ型を指定している手続き(CREATE PROCEDURE)

    • 手続き定義中の手続き(CREATE PROCEDURE)

    • 抽象データ型内で宣言されている手続き及び関数(CREATE TYPE)

    • インデクス型を指定したインデクス定義(CREATE INDEX)

    • 関数定義(CREATE FUNCTION)

  4. 生成された定義系SQLには,データベース定義ユティリティの入力ファイルとして利用できるように,行の最後にセミコロン(;)が付きます。ただし,CREATE PROCEDURE,及びCREATE TRIGGERの場合はend_proc;が付きます。

  5. CREATE PROCEDURE,及びCREATE TRIGGERを生成する場合,SQL最適化オプション,及びSQL拡張最適化オプションの指定値は,数値に変換された形になります。

  6. 表の定義系SQLを生成する場合,その表に外部キー,又は検査制約が定義されているときは,表の定義系SQLと同時に,外部キー,及び検査制約の定義系SQLも生成します。この外部キー,及び検査制約の定義系SQLを生成する場合,外部キー,及び検査制約の制約名の定義位置は,クライアント環境定義のPDCNSTRNTNAMEとシステム定義のpd_constraint_nameオペランドの指定値によって決まります。PDCNSTRNTNAMEについてはマニュアル「HiRDB Version 9 UAP開発ガイド」を,pd_constraint_nameオペランドについてはマニュアル「HiRDB Version 9 システム定義」を参照してください。

  7. 生成された定義系SQLの改行条件を次に示します。

    生成された定義系SQL

    改行条件

    CREATE TABLE

    • CREATEから表識別子まで

    • 列定義ごと

    • 表格納用RDエリアごと

    • 表オプションごと

    • 外部キーごと

    • 検査制約定義ごと

    • WITH PROGRAM

    • 1行が80バイトを超える場合は,80バイトごと

    CREATE INDEX

    • CREATEからインデクス識別子まで

    • ONから表識別子まで

    • 列定義ごと

    • インデクス格納用RDエリアごと

    • インデクスオプションごと

    • 1行が80バイトを超える場合は,80バイトごと

    COMMENT

    1行が80バイトを超える場合は,80バイトごと

    CREATE VIEW

    • CREATEからASまで

    • 1行が80バイトを超える場合は,80バイトごと

    CREATE PROCEDURE

    • CREATEからパラメタモード指定まで

    • 定義ソース文中にある改行記号

    • SQLコンパイルオプション

    • SQL手続き文

    • 1行が80バイトを超える場合は,80バイトごと

    CREATE TRIGGER

    • CREATEからトリガ動作

    • 定義ソース文中にある改行記号

    • SQLコンパイルオプション

    • WITH PROGRAM

    • 1行が80バイトを超える場合は,80バイトごと

    注※

    システム共通定義pdsysのpd_sql_simple_comment_useオペランドの値による動作を次の表に示します。

    項番

    システム共通定義pdsysの pd_sql_simple_comment_useオペランドの値

    動作

    1

    N

    改行する

    2

    Y

    改行しない

    単純注釈を使用するには,pd_sql_simple_comment_useオペランドをYにする必要があります。搬出したSQL文中の単純注釈の有無と,pd_sql_simple_comment_useオペランドに対する指定が合っていない場合,搬入時にSQL構文エラーとなります。

    これらの組み合わせについて次に示します。

    項番

    搬出したSQL文中の単純注釈有無

    搬入時のpd_sql_simple_comment_useの値

    Y

    N

    1

    なし

    2

    あり

    ×

    (凡例)

    ○:SQL構文エラーにはなりません。

    ×:SQL構文エラー(KFPA11105-E)となります。

  8. 文字集合UTF-16を指定したCHAR型の列を,キーレンジ分割又はマトリクス分割(境界値指定のキーレンジ分割)の分割キーとして指定した表の場合,分割キーの長さが列の定義長を超えるときは,その表の定義系SQLは生成できません。