Hitachi

Hitachi Advanced Data Binder システム構築・運用ガイド


7.2.5 SQL文に関するオペランド(set形式)

[32] adb_sql_prep_delrsvd_words = 削除する予約語〔,削除する予約語〕…

〜〈文字列〉((1〜100バイト))

HADBの予約語から削除する語を指定します。削除する予約語は999個まで指定できます。

削除する予約語は,\"(バックスラッシュと二重引用符)で囲んだ英大文字で指定してください。または,\"(バックスラッシュと二重引用符)で囲まない英大文字,英小文字で指定してください。指定した予約語が正しく削除される指定例を次に示します。

(例)予約語「ABS」を削除する場合の指定例
  • adb_sql_prep_delrsvd_words = \"ABS\"

  • adb_sql_prep_delrsvd_words = ABS

  • adb_sql_prep_delrsvd_words = abs

メモ

文字列を\"(バックスラッシュと二重引用符)で囲むと,英大文字と英小文字が区別されます。したがって,「\"abs\"」のように英小文字を\"(バックスラッシュと二重引用符)で囲んで指定すると,文字列が英小文字として扱われます。しかし,HADBには英小文字の予約語はないため,英小文字を\"(バックスラッシュと二重引用符)で囲んで指定しても予約語は削除されません。

なお,adb_sql_prep_delrsvd_wordsオペランドで削除できる予約語はあらかじめ決まっています。指定した単語が予約語ではない,または削除できない予約語の場合,警告メッセージ(KFAA51111-Wメッセージ)が出力されます。

削除できない予約語については,マニュアルHADB SQLリファレンス予約語の一覧を参照してください。

[マルチノード機能]

マルチノード機能を使用する場合は,全ノードのHADBサーバでこのオペランドの指定値を同じにしてください。その際,予約語の指定順序も同じにしてください。

[33] adb_sys_trn_iso_lv = READ_COMMITTED|REPEATABLE_READ}

適用するトランザクション隔離性水準を指定します。トランザクション隔離性水準については,「2.9.2 HADBがサポートしているトランザクション隔離性水準」を参照してください。

  • READ_COMMITTED

    トランザクション隔離性水準にREAD COMMITTEDを適用します。

  • REPEATABLE_READ

    トランザクション隔離性水準にREPEATABLE READを適用します。

[マルチノード機能]

マルチノード機能を使用する場合は,全ノードのHADBサーバでこのオペランドの指定値を同じにしてください。

[34] adb_sql_text_out = {Y|N

HADBサーバが受け付けたすべてのSQL文をサーバメッセージログファイルに出力するかどうかを指定します。

Yを指定した場合,各SQL文の先頭から2,048バイト分まで出力されます。

  • Y

    SQL文をサーバメッセージログファイルに出力します。

  • N

    SQL文をサーバメッセージログファイルに出力しません。

このオペランドにNを指定した場合,またはこのオペランドを省略した場合でも,クライアント定義のadb_clt_sql_text_outオペランドにYを指定したときは,SQL文をサーバメッセージログファイルに出力します。

adb_clt_sql_text_outオペランドについては,マニュアルHADB AP開発ガイドSQLに関するオペランドを参照してください。

[35] adb_sql_trc_out = Y|N}

SQL文を実行したときに,SQLトレース情報を出力するかどうかを指定します。

  • Y

    SQLトレース情報をSQLトレースファイルに出力します。

  • N

    SQLトレース情報をSQLトレースファイルに出力しません。

なお,このオペランドにNを指定した場合,次に示すオペランドの指定値に関係なく,SQLトレース情報は出力されません。

  • サーバ定義adb_sql_trc_paramオペランド

  • サーバ定義adb_sql_trc_accesspathオペランド

  • サーバ定義adb_sql_trc_levelオペランド

  • サーバ定義adb_sql_trc_txtfile_sizeオペランド

[36] adb_sql_trc_param = Y|N}

SQLトレース情報に?パラメタの情報を出力するかどうかを指定します。

  • Y

    SQLトレース情報に?パラメタの情報を出力します。

  • N

    SQLトレース情報に?パラメタの情報を出力しません。

なお,このオペランドにYを指定しても,サーバ定義adb_sql_trc_outオペランドにNを指定した場合,?パラメタの情報は出力されません。

[37] adb_sql_trc_accesspath = Y|N}

SQLトレース情報にアクセスパス情報およびアクセスパスの統計情報を出力するかどうかを指定します。

  • Y

    SQLトレース情報にアクセスパス情報およびアクセスパスの統計情報を出力します。

  • N

    SQLトレース情報にアクセスパス情報およびアクセスパスの統計情報を出力しません。

なお,このオペランドにYを指定しても,サーバ定義adb_sql_trc_outオペランドにNを指定した場合,アクセスパス情報およびアクセスパスの統計情報は出力されません。

[38] adb_sql_trc_level = SQL|CALL}

SQLトレース情報を出力する単位を指定します。

  • SQL

    SQLトレース情報をSQL文単位で出力します。

  • CALL

    SQLトレース情報をコール単位で出力します。

[39] adb_sql_trc_txtfile_size = SQLトレースファイルの最大容量

〜〈整数〉((32〜1,024))《256》(単位:メガバイト)

SQLトレースファイル1つ当たりの最大容量をメガバイト単位で指定します。SQLトレースファイルは8つ作成されます。

通常は,このオペランドの指定は不要です。SQLトレースファイルの最大容量を変更したい場合に,このオペランドを指定してください。

なお,このオペランドで指定したSQLトレースファイルの最大容量は,HADBサーバを起動したときに有効となります。ただし,このオペランドの指定値を小さくした場合,HADBサーバを起動した直後には,このオペランドの指定値よりも容量が大きいSQLトレースファイルが存在することがあります。この場合は,SQLトレースファイルの切り替えが発生して,対象のSQLトレースファイルにSQLトレース情報が出力されるときに,このオペランドで指定したSQLトレースファイルの最大容量が有効となります。

[40] adb_sql_order_mode = BYTE|ISO}

ORDER BY句を指定したSELECT文の検索結果を並び替える際の,文字データの並び替え順序を指定します。このオペランドを省略した場合は,BYTEが仮定されます。

  • BYTE

    文字データをバイトコード順に並び替えます。

  • ISO

    文字データをソートコード順(ISO/IEC14651:2011準拠)に並び替えます。

    ただし,環境変数ADBLANGSJISを指定している場合は,このオペランドにISOを指定できません。

[マルチノード機能]

マルチノード機能を使用する場合は,全ノードのHADBサーバでこのオペランドの指定値を同じにしてください。

なお,文字データの並び替え順序は,クライアント定義adb_clt_sql_order_modeオペランド,およびコネクション属性でも指定できます。それぞれ指定した場合は,次の表に示す優先順位に従って指定が決まります(優先順位の番号が小さいほど,優先順位が高くなります)。

表7‒5 文字データの並び替え順序の優先順位

優先順位

文字データの並び替え順序の指定個所

1

コネクション属性

2

クライアント定義adb_clt_sql_order_modeオペランド

3

サーバ定義adb_sql_order_modeオペランド

[説明]

例えば,サーバ定義adb_sql_order_modeオペランドにISOを指定し,クライアント定義adb_clt_sql_order_modeオペランドにBYTEを指定した場合,APから実行するSELECT文(ORDER BY句を指定)には,BYTEが適用されます。

なお,上記の表中のすべての個所で指定を省略した場合は,BYTEが仮定されます。

[41] adb_sql_prep_dec_div_rs_prior = INTEGRAL_PART|FRACTIONAL_PART}

SQL文中に指定した除算(四則演算)の結果のデータ型がDECIMAL型の場合,除算結果の位取りの最小値を指定します。

INTEGRAL_PART

除算結果の位取りの最小値を0とします。INTEGRAL_PARTを指定した場合,整数部の桁数が優先されます。そのため,除算結果が大きな数値となる可能性があるSQL文を実行する際に,オーバフローエラーの発生を極力回避したい場合は,INTEGRAL_PARTを指定してください。

FRACTIONAL_PART

除算の第1演算項(被除数)の位取りを,除算結果の位取りの最小値とします。FRACTIONAL_PARTを指定した場合,第1演算項の小数部の桁数が,除算結果の小数部の桁数の最小値になります。

第1演算項をDECIMAL(p1,s1),第2演算項をDECIMAL(p2,s2)とした場合,除算結果はDECIMAL(38,s)となります。

  • INTEGRAL_PARTを指定した場合

    s=MAX{0,38−(p1s1s2)}

  • FRACTIONAL_PARTを指定した場合

    s=MAX{s1,38−(p1s1s2)}

このオペランドの指定値による除算結果の違いの例を次に示します。

(例)

[図データ]

次のSELECT文を実行したとします。

SELECT "C1"/"C2" AS "除算結果" FROM "T1"
  • INTEGRAL_PARTを指定した場合の除算結果

    584.

  • FRACTIONAL_PARTを指定した場合の除算結果

    584.4457

ビュー表を検索したときの除算結果の位取りの例については,マニュアルHADB SQLリファレンス除算結果のデータ型がDECIMAL型の場合の留意事項を参照してください。

[マルチノード機能]

マルチノード機能を使用する場合は,全ノードのHADBサーバでこのオペランドの指定値を同じにしてください。

[42] adb_sql_default_dbarea_shared = 表またはインデクスを格納するデフォルトのデータ用DBエリア名

~〈文字列〉((1~30バイト))

データ用DBエリア名を指定します。ここで指定したデータ用DBエリアは,次のSQL文で,表またはインデクスを格納するDBエリアの指定を省略したときに,表またはインデクスを格納するデフォルトのDBエリアになります。

  • CREATE TABLE

  • CREATE INDEX

  • ALTER TABLE

DBエリア名を指定する際の名称規則については,マニュアルHADB SQLリファレンス名前の指定を参照してください。

なお,次のどちらかに該当する場合,HADBサーバの開始時に警告メッセージが出力されます。警告の内容を対処すると,このオペランドの指定値が有効になります。

  • このオペランドにデータ用DBエリアではないDBエリアを指定した場合

  • このオペランドに存在しないDBエリアを指定した場合

[マルチノード機能]

マルチノード機能を使用する場合は,プライマリノードおよびセカンダリノードのHADBサーバでこのオペランドの指定値を同じにしてください。

ワーカーノードのHADBサーバには,このオペランドを指定する必要はありません。