ヘッダーをスキップ

Oracle Rdb SQLリファレンス・マニュアル リリース7.2 E06178-01 |
| 目次 | 索引

戻る | 次へ |

# 4.3 SQLプリコンパイラのコマンドライン

記号を定義することにより、SQLプリコンパイラを起動しやすくなります。

    $ SQLPRE == "$SQL$PRE"

SQLプリコンパイラには言語修飾子が必要であるため、コマンドを1行で起動できるよう特定の言語を定義できます。

    $ SADA == "$SQL$PRE/ADA"
    $ SADA SQL_DYNAMIC

記号を定義することにより、ホスト言語プログラム・ファイルのファイル仕様の有無にかかわらずSQLプリコンパイラを起動できるようになります。

- ホスト言語プログラム・ファイルの入力ファイル仕様なしでSQLプリコンパイラを起動する場合、入力ファイル仕様の入力を求められます。次に例を示します。

      $ SQLPRE
      INPUT FILE> pre-host-file-spec

- ホスト言語プログラム・ファイルをDCLコマンドラインの一部として使用してSQLプリコンパイラを起動する場合、[Enter]キーを押した直後にファイルの処理が開始されます。次に例を示します。

      $ SADA pre-host-file-spec pre-qualifiers

プリコンパイラを起動するためにどのような方法を選択する場合でも、SQLプリコンパイラによるモジュール・ファイルの処理方法を制御するための様々な修飾子を指定できます。構文図は、ホスト言語プログラム・ファイルの仕様とともに使用できる修飾子の形式を示しています。

## 形式

## 引数

> ### ANSI_FORMAT

> ### NOANSI_FORMAT

> SQLプリコンパイラで終端形式のCOBOLまたはANSI形式のCOBOLのいずれを使用するかを指定します。

> デフォルトは終端形式のCOBOL NOANSI_FORMAT修飾子です。

> ### c-string-options

> SQLでCホスト言語文字列を処理する方法を制御します。

> C_STRINGキーワードとともに[NO]BLANK_FILLオプションと[NO]FIXED_CDD_STRINGSオプションのいずれかまたは両方を使用して、C文字列の特性を制御します。

> ### SQLOPTIONS= (C_STRING = [NO]BLANK_FILL)

> ### SQLOPTIONS= (C_STRING = [NO]FIXED_CDD_STRINGS)

> ### SQLOPTIONS= (C_STRING = ([NO]BLANK_FILL, [NO]FIXED_CDD_STRINGS))

> Cホスト言語文字列を処理する方法を指定します。

> - [NO]BLANK_FILL（デフォルト: BLANK_FILL）
>   SQL89およびANSI/ISO SQL規格によって要求されるように空白でC文字列を埋めるかどうか、またはソース文字列の最後のデータ・バイトの後ろにヌル終端文字を配置するかどうかを制御します。

> - [NO]FIXED_CDD_STRINGS (デフォルト: NOFIXED_CDD_STRINGS)
>   CDD/リポジトリ・レコード定義のC文字列を固定長文字列またはCヌル終端文字列として処理するかどうかを制御します。

> ### SQLOPTIONS= (CONNECT)

> ### SQLOPTIONS= (NOCONNECT)

> 複数のユーザー接続を許可し、複数のモジュールにわたるグローバル・データベースにアクセスできるようにするかどうかを制御します。アプリケーション内のすべてのSQLモジュールは、接続が有効または無効の状態でコンパイルする必要があります。

> デフォルトはSQLOPTIONS=NOCONNECT修飾子です。

> ### SQLOPTIONS= (CONSTRAINT_MODE=IMMEDIATE)

> ### SQLOPTIONS= (CONSTRAINT_MODE=DEFERRED)

> 必要に応じて、SQLプリコンパイラ・コマンドラインにSQLOPTIONS=(CONSTRAINT_MODE=IMMEDIATE)またはSQLOPTIONS=(CONSTRAINT_MODE=DEFERRED)修飾子を指定して、コミット時の制約に対するデフォルトの制約評価モードを設定できます。（この修飾子は、動詞実行時の制約の評価には影響しません。）デフォルトはDEFERREDです。つまり、コミット時の制約はコミット時に評価されます。

> 制約にIMMEDIATEを設定すると、SET ALL CONSTRAINTS DEFERRED文が発行されるまで、またはトランザクションがコミット操作またはロールバック操作で完了するまでは、影響を受ける各制約はすぐに、および各文の終わりに評価されます。

> SET ALL CONSTRAINTS文により、SQLOPTIONS修飾子に指定した制約評価モードはオーバーライドされます。デフォルトの制約モードの詳細は、「SET文」を参照してください。

> ANSI規格のSQLとの互換性が必要な場合は、制約をIMMEDIATEとして設定する必要があります。ただし、ほとんどの場合は、デフォルト設定（CONSTRAINT_MODE=DEFERRED）で十分です。

> ### SQLOPTIONS= (CONSTRAINT_MODE=ON)

> ### SQLOPTIONS= (CONSTRAINT_MODE=OFF)

> CONSTRAINT_MODE=ON修飾子とCONSTRAINT_MODE=OFF修飾子はそれぞれ、CONSTRAINT_MODE=IMMEDIATE修飾子とCONSTRAINT_MODE=DEFERRED修飾子の動作を重複します。

> ### context-file-name

> プログラムのコンパイルおよび実行時に適用するDECLARE文が含まれるSQLコマンド・プロシージャです。context-file-nameの詳細は、第2.11節を参照してください。

> ### database-options

> 指定したデータベース型にアクセスするためのプログラムがSQLプリコンパイラによって正しく処理されるよう指定します。データベース・オプションの詳細は、第2.10節を参照してください。

> プリコンパイラのデータベース・オプションは、実行時にデータベースにアタッチしてオーバーライドすることもできます。DECLARE文では、指定データベースのデータベース・オプションが設定されます。

> デフォルトでは、プログラムをコンパイルするために使用されたデータベースから有効なデータベースが判断されます。プログラムをコンパイルするために使用されたデータベースがない場合は、最新バージョンのOracle Rdbを使用して作成されたデータベースのプログラムがプリコンパイラにより処理されます。

> ### SQLOPTIONS= (DECLARE_MESSAGE_VECTOR)

> ### SQLOPTIONS= (NODECLARE_MESSAGE_VECTOR)

> RDB$MESSAGE_VECTOR構造体がSQLPREの処理時にSQLCAの一部としてホスト言語で宣言されるよう指定します。このスイッチは、$特殊文字をサポートする言語コンパイラとともに使用できます。

> デフォルトはSQLOPTIONS=(DECLARE_MESSAGE_VECTOR)修飾子です。

> ### EXTEND_SOURCE

> ### NOEXTEND_SOURCE

> SQLプリコンパイラがデフォルトの72列ではなく132列のFORTRANソースを参照できるようにします。

> ### SQLOPTIONS= (EXTERNAL_GLOBALS)

> ### SQLOPTIONS= (NOEXTERNAL_GLOBALS)

> 別名参照を強制的に別名定義として処理するかどうかを指定します。別名定義は、DECLARE ALIAS文でGLOBALキーワード（デフォルト）を使用して宣言された別名です。別名参照は、DECLARE ALIAS文でEXTERNALキーワードを使用して宣言された別名です。

> EXTERNAL_GLOBALS修飾子により、別名参照は別名定義として処理されます。この修飾子は、V7.0より前のバージョンとの互換性を提供します。

> NOEXTERNAL_GLOBALS修飾子により、別名参照は別名参照として処理されます。アプリケーションによって複数の共有可能なイメージ間で別名が共有される場合、OpenVMSではNOEXTERNAL_GLOBALS修飾子が便利です。

> OpenVMSではデフォルトはSQLOPTIONS=(EXTERNAL_GLOBALS)修飾子です。

> 別名定義と別名参照の詳細は、「DECLARE ALIAS文」を参照してください。別名と共有可能イメージの使用方法の詳細は、『Oracle Rdb7 Guide to SQL Programming』を参照してください。

> ### SQLOPTIONS= (FLAG_NONSTANDARD)

> ### SQLOPTIONS= (FLAG_NONSTANDARD =SQL92_ENTRY)

> ### SQLOPTIONS= (FLAG_NONSTANDARD =SQL89)

> ### SQLOPTIONS= (FLAG_NONSTANDARD =MIA)

> ### SQLOPTIONS= (NOFLAG_NONSTANDARD)

> SQLで非標準構文が識別されるかどうかを指定します。非標準構文は拡張機能と呼ばれ、ANSI/ISO SQL規格またはマルチベンダー・インテグレーション・アーキテクチャ（MIA）規格の一部ではない構文を示します。次のオプションを指定できます。

> - (FLAG_NONSTANDARD)
>   構文がANSI/ISO SQL規格の拡張機能であることを通知します。

> - (FLAG_NONSTANDARD=SQL92_ENTRY)
>   構文がANSI/ISO SQL規格の拡張機能であることを通知します。この修飾子には、(FLAG_NONSTANDARD)修飾子と同じフラグ付けの効果があります。

> - (FLAG_NONSTANDARD=SQL89)
>   構文がANSI/ISO 1989規格の拡張機能であることを通知します。

> - (FLAG_NONSTANDARD=MIA)
>   構文がMIA規格の拡張機能であることを通知します。

> - (NOFLAG_NONSTANDARD)
>   拡張子の通知を防止します。

> デフォルトはSQLOPTIONS=(NOFLAG_NONSTANDARD)修飾子です。

> ### FLOAT=D_FLOAT

> ### FLOAT=G_FLOAT

> ### FLOAT=IEEE_FLOAT

> SQLプリコンパイラで仮パラメータ・リストの浮動小数点データ型に使用される浮動小数点表現を指定するとともに、言語コンパイラに渡される浮動小数点修飾子を指定します。

> SQLプリコンパイラにより、埋込みSQLはホスト言語宣言およびプロシージャ・コールに変換されます。また、プロシージャ・コールの背後のプロシージャも生成されます。SQL$PREの/FLOAT修飾子により、SQL$PREでホスト言語変数について前提となる浮動小数点形式が決まります。これにより、生成されたSQLプロシージャに対して内部で行われる変換が決まります。SQL$PREにより、プリコンパイルされたプログラムを処理するためにホスト言語コンパイラがコールされるときに、ホスト言語でサポートされている/FLOAT修飾子に同等の修飾子が渡されます。つまり、ホスト言語変数の浮動小数点形式が/FLOAT修飾子で決まるかぎり、SQL$PREによって生成されるプロシージャ・コールのパラメータとホスト言語変数の浮動小数点形式には互換性があることが保証されます。個別変数の浮動小数点形式を明示的に宣言する型がホスト言語によって提供される場合、SQL$PREでは、この情報を使用して、/FLOAT修飾子とは関係なく、必要な変換が決定されます。

> 単精度浮動小数点型または倍精度浮動小数点型に関するSQLプリコンパイラのデフォルトの浮動小数点形式はそれぞれ、F浮動小数点形式とG浮動小数点形式です。これは、SQL$PREコマンドで/FLOAT=G_FLOAT修飾子を使用することと同じです。

> ホスト言語変数がレコードまたは構造体（シングルトンSELECT文のINTO句の修飾パラメータなど）である場合、浮動小数点型であるレコードまたは構造体のフィールドは、前述の説明と同じルールに従います。

> まれに、SQL$PREによって識別されない浮動小数点形式を指定するメカニズムがホスト言語に採用されている場合があります。このような場合、開発者には、SQL$PREで想定される形式を使用する責任があります。これらのケースの詳細は、第4.4節のホスト言語固有の項を参照してください。

> 注意 共通データ・ディクショナリは、浮動小数点型をサポートしています。ただし、/FLOAT修飾子によってIEEE_FLOATが指定される場合、これらの型は使用できない場合があります。

> ### G_FLOAT

> ### NOG_FLOAT

> /G_FLOAT修飾子と/NOG_FLOAT修飾子は、下位互換性を確保するためのものです。これらの修飾子はそれぞれ、/FLOAT=G_FLOATと/FLOAT=D_FLOATに相当します。/FLOAT修飾子と/[NO]G_FLOAT修飾子の両方は指定しないでください。

> ### SQLOPTIONS= (INITIALIZE_HANDLES)

> ### SQLOPTIONS= (NOINITIALIZE_HANDLES)

> 別名定義を強制的に別名参照として処理するかどうかを指定します。NOINITIALIZE_HANDLES修飾子を使用すると、すべての別名宣言が別名参照として処理されます。

> 別名定義は、DECLARE ALIAS文でGLOBALキーワード（デフォルト）を使用して宣言された別名です。別名参照は、DECLARE ALIAS文でEXTERNALキーワードを使用して宣言された別名です。

> NOINITIALIZE_HANDLES修飾子は、OpenVMSにおいて既存のソース・コードで別名定義を強制的に別名参照として処理するときに便利です。OpenVMSでは通常、定義と参照は区別されないため、別名参照が必要なときにアプリケーションで別名定義を宣言できます。別名を共有する複数のイメージにアプリケーションを再編成する場合、別名定義と別名参照を区別する必要があります。この場合、NOINITIALIZE_HANDLES修飾子を使用して、ソース・コードを変更せずに定義を強制的に参照として処理します。

> アプリケーションでEXTERNALキーワードを使用して別名参照が正しく宣言された場合、[NO]INITIALIZE_HANDLESのかわりにNOEXTERNAL_GLOBALS修飾子を使用して、OpenVMSでデフォルトをオーバーライドし、別名参照が参照として正しく処理されるようにします。

> デフォルトはSQLOPTIONS=INITIALIZE_HANDLES修飾子です。この修飾子により、[NO]EXTERNAL_GLOBALS修飾子はオーバーライドされます。

> SQLOPTIONS=[NO]INITIALIZE_HANDLES修飾子は、Oracle Rdbの以前のバージョンとの互換性を確保するために保持されます。V7.0以上の場合、[NO]EXTERNAL_GLOBALS修飾子を使用します。これにより、別名定義がより正確に制御されます。

> 別名定義と別名参照の詳細は、「DECLARE ALIAS文」を参照してください。別名と共有可能イメージの使用方法の詳細は、『Oracle Rdb7 Guide to SQL Programming』を参照してください。

> ### LIST

> ### NOLIST

> Oracle Rdb for OpenVMS Alphaにおいて、SQLのコンパイルとホスト言語のコンパイルに関する情報が含まれるリスト・ファイル（デフォルトのファイル拡張子.lis）を生成するかどうかを決定します。また、論理名SQL$KEEP_PREP_FILESが定義されている場合、SQLのコンパイルのみに関する情報が含まれる中間モジュール・リスト・ファイル（ファイル拡張子.mli）が保持されます。LIST修飾子を指定するときにファイル仕様を含めない場合、SQLプリコンパイラによりファイル拡張子.lisを使用してソース・ファイルと同じ名前でリスト・ファイルが作成されます。

> デフォルトはNOLIST修飾子です。

> ### MACHINE_CODE

> ### NOMACHINE_CODE

> Oracle Rdb for OpenVMS Alphaにおいて、リスト・ファイルにマシン・コードを含めるかどうかを指定します。ただし、マシン・コードが含まれるリスト・ファイルを生成するには、LIST修飾子も指定する必要があります。

> デフォルトはNOMACHINE_CODE修飾子です。

> ### OBJECT

> ### NOOBJECT

> ソース・ファイルのコンパイルによって致命的エラーが発生しないときにオブジェクト・ファイルを作成するかどうかを指定します。また、オブジェクト・ファイルを作成する場合、ファイルの名前も指定します。OBJECT修飾子を指定するときにファイル仕様を含めない場合、ファイル拡張子.objを使用してソース・ファイルと同じ名前でオブジェクト・ファイルが作成されます。OBJECT修飾子は、Adaを除く任意の言語で指定できます。

> デフォルトはOBJECT修飾子です。

> ### OPTIMIZATION_LEVEL=optimization_options

> SQLモジュール言語プログラム内のすべての問合せを処理するために使用されるオプティマイザ計画を指定します。選択可能なオプションは、次のとおりです。

> - AGGRESSIVE_SELECTIVITYオプション: 選択する行数が少ないと想定される場合。

> - DEFAULTオプション: Oracle RdbのデフォルトであるFAST_FIRSTおよびDEFAULT SELECTIVITYを受け入れる場合。

> - FAST_FIRSTオプション: これにより全体のスループットが低下しても、できるかぎり速やかにデータをユーザーに返す場合。

> - SAMPLED_SELECTIVITYオプション: 問合せでリテラルを使用して索引に関する予備評価を実行する場合。

> - TOTAL_TIMEオプション: プログラムを最高速度で実行し、すべてのデータをできるかぎり速やかに返す場合。アプリケーションがバッチで実行され、問合せ内のすべてのレコードがアクセスされ、レポートの更新または書込みが行われる場合、TOTAL_TIMEを指定する必要があります。

> TOTAL_TIMEオプションまたはFAST_FIRSTオプションは、AGGRESSIVE_SELECTIVITYオプションまたはSAMPLED_SELECTIVITYオプションとともに選択できます。キーワードを区切るにはカンマを使用し、リストは丸カッコで囲みます。

> 次の例は、OPTIMIZATION_LEVEL修飾子の使用方法を示しています。

>     $ SQL$PRE/SQLOPTIONS=OPTIMIZATION_LEVEL=(TOTAL_TIME,SAMPLED_SELECTIVITY) APPCODE.SC

> OPTIMIZE WITH句またはOPTIMIZE_FOR句が明示的に含まれる問合せは、OPTIMIZATION_LEVEL修飾子を使用して確立された設定の影響は受けません。

> 最適化レベル修飾子は、静的SQL問合せのオプティマイザ計画を変更するために使用します。ただし、OPTIMIZATION_LEVELオプションによって設定されたデフォルトのオプティマイザ計画は、最上レベルのSELECT文に設定されたデフォルトのオプティマイザ計画によってオーバーライドできます。

> 一方、SET OPTIMIZATION LEVEL文の場合は、動的SQL問合せのコンパイルのみに関する問合せ最適化レベルを指定します。この文は、SQLのコンパイル時の環境や静的問合せの実行時環境には影響しません。

> ### optimization-options

> SQLプリコンパイラ・プログラム内のすべての問合せを処理するために使用されるオプティマイザ計画を指定します。

> ### SQLOPTIONS= (PASSWORD_DEFAULT=password)

> コンパイル時のユーザーのパスワードを指定します。

> DECLARE ALIAS文のUSING DEFAULT句を使用する場合、この修飾子を使用して、コンパイル時のユーザーのパスワードをプログラムに渡します。

> ### pre-host-file-spec

> 埋込みSQL文が含まれるホスト言語ソース・ファイルのファイル仕様です。ソース・ファイルのデフォルトのファイル拡張子は、言語修飾子に指定されているホスト言語で決まります。

> 言語 | 省略時の設定ファイル拡張子
> --- | ---
> Ada | .sqlada
> C | .sc
> COBOL | .sco
> FORTRAN | .sfo
> Pascal | .spa
> PL/I | .spl

> ホスト言語がAdaまたはCOBOLである場合、ファイル名（ファイル拡張子なし）を27文字より長くすることはできません。

> プリコンパイラ・コマンドラインでは、この引数でホスト言語ソース・ファイルのリストを使用できますが、最初に出現するファイル仕様のみが処理されます。ファイルのリストを指定すると、次のようになります。

> - 行に含まれる最初のファイルのみがプリコンパイルされることを示す警告メッセージが表示されます。

> - 他のファイル仕様は無視され、プリコンパイラ・コマンドラインに出現するのと同じ順序でホスト言語コンパイラに渡されます。

> たとえば、次のコマンドラインは有効ですが、MY_FILEホスト言語ファイルのみがプリコンパイルされます。

>     $ SQLPRE/PLI/LIS/DEB MY_FILE+MY_TLB_1/LIB+MY_TLB_2/LIB
>     $ SQLPRE/PASCAL MY_FILE,MY_OTHER_FILE
>     $ SQLPRE/COB/DEB MY_FILE,MY_NODB_FILE
>     $ SQLPRE/CC MY_FILE+REST_OF_APPL+APPL_TLB/LIB

> このコマンドラインの場合、後続の対応するコマンドラインはホスト言語コンパイラに渡されます。

>     $ PLI/LIS/DEB MY_FILE.PLI;n+MY_TLB_1/LIB+MY_TLB_2/LIB/NOG_FLOAT
>     $ PAS MY_FILE.PAS;n,MY_OTHER_FILE
>     $ COB/DEB MY_FILE.COB;n,MY_NODB_FILE
>     $ CC MY_FILE.C;n+REST_OF_APPL+APPL_TLB/LIB/NOG_FLOAT

> ;n表記は、SQLプリコンパイラによって生成されたホスト言語ファイルのバージョン番号を示しています。

> ### pre-lang-qualifiers

> 埋込みSQLプロシージャが含まれるプログラムが書き込まれるホスト言語を示します。言語修飾子を指定する必要があります。ホスト言語修飾子値は、ADA、CC、CC=VAXC、CC=DECC、COBOL、FORTRAN、PASCALおよびPLIです。

> CC SQLプリコンパイラ・スイッチについては、次の点に注意します。

> - CC=VAXCスイッチを使用すると、ソースはVAXCソースとしてコンパイルされます。VAXCコンパイラがインストールされていない場合、DECCコンパイラは/STANDARD=VAXCホスト言語コンパイラ・スイッチとともに使用されます。

> - CC=DECCスイッチを使用すると、ソースはDECCソースとしてコンパイルされます。DECCコンパイラがインストールされていない場合、DCLエラーが発生します。

> - デフォルトのキーワードであるVAXCまたはDECCは、システム構成に基づいています。システムにVAXCコンパイラがインストールされている場合、デフォルトのキーワードはVAXCです。DECCコンパイラがインストールされている場合、デフォルトのキーワードはDECCです。両コンパイラともインストールされている場合、デフォルトはシステム・マネージャで指定されているCコンパイラに基づいて決まります。

> ### pre-qualifiers

> SQLプリコンパイラのコマンドラインで許可されるオプションの修飾子を示します。

> ### SQLOPTIONS= (QUERY_CPU_TIME_LIMIT=total-seconds)

> 問合せの実行を最適化するために必要なCPUタイムの合計を制限します。問合せが最適化されておらず、CPUタイムの制限に達するまでに実行の準備が整わない場合、エラー・メッセージが返されます。

> デフォルトでは、問合せのコンパイル時間に制限はありません。動的SQLオプションは、コンパイル修飾子から継承されます。

> ### SQLOPTIONS= (QUERY_ESTIMATES)

> ### SQLOPTIONS= (NOQUERY_ESTIMATES)

> SQLCA構造体の推定行数および推定ディスクI/O操作数を返すかどうかを指定します。QUERY_ESTIMATESキーワードを指定すると、SQLCA.SQLERRD[2]フィールドに推定行数が返され、SQLCA.SQLERRD[3]フィールドに推定ディスクI/O操作数が返されます。通常、SQLCA.SQLERRD[2]およびSQLCA.SQLERRD[3]の値は、表に対してOPEN文を実行した後は0です。

> デフォルトはSQLOPTIONS=QUERY_ESTIMATES修飾子です。

> ### SQLOPTIONS= (QUERY_MAX_ROWS=total-rows)

> 問合せ処理時に返されるレコード数を制限します。この場合、問合せで返される行数がカウントされ、問合せが指定した合計行数を超えるとエラー・メッセージが表示されます。

> デフォルトでは、フェッチされるレコード数は制限されません。動的SQLオプションは、コンパイル修飾子から継承されます。

> ### SQLOPTIONS= (QUERY_TIME_LIMIT=total-seconds)

> 問合せ処理時に返されるレコード数を制限します。この場合、問合せの処理に要する秒数がカウントされ、問合せが指定した合計秒数を超えるとエラー・メッセージが表示されます。

> デフォルトでは、問合せのコンパイル時間に制限はありません。動的SQLオプションは、コンパイル修飾子から継承されます。

> ### QUIET COMMIT ON

> ### QUIET COMMIT OFF

> QUIET COMMIT ON句を使用すると、アクティブなトランザクションがないときにCOMMIT文とROLLBACK文のいずれかが実行された場合、これらの文のエラー・レポートが無効になります。

> デフォルトでは、アクティブなトランザクションがないときにCOMMIT文またはROLLBACK文が実行されると、エラーが発生します。このデフォルト設定は、この状況を検出する必要があるアプリケーションの下位互換性のために保持されています。QUIET COMMITをONに設定すると、アクティブなトランザクションがなくてもCOMMITまたはROLLBACKは正常に実行されます。

> 注意 複合文内においてアクティブなトランザクションがない場合、COMMIT文とROLLBACK文は常に無視されます。

> ### SQLOPTIONS= (ROLLBACK_ON_EXIT)

> プログラムでSQLが終了するときに未処理のトランザクションをロールバックします。

> OpenVMSのデフォルトでは、プログラムでSQLが終了するときに未処理のトランザクションはコミットされます。このため、変更をロールバックする必要がある場合は、この修飾子をコマンドラインに指定します。

> ### SQLOPTIONS= (TRANSACTION_DEFAULT = IMPLICIT)

> ### SQLOPTIONS= (TRANSACTION_DEFAULT = DISTRIBUTED)

> ### SQLOPTIONS= (NOTRANSACTION_DEFAULT)

> トランザクションを開始するタイミングとデフォルトの分散トランザクションの処理方法を指定します。次のオプションを指定できます。

> - SQLOPTIONS = (TRANSACTION_DEFAULT = IMPLICIT)
>   SET TRANSACTION文か、セッション内の最初の実行SQL文を発行したときにトランザクションが開始されます。

> - SQLOPTIONS = (TRANSACTION_DEFAULT = DISTRIBUTED)
>   DECdtmシステム・サービスSYS$START_TRANSによって確立されたデフォルトの分散トランザクションに分散トランザクション識別子（TID）が使用されます。このオプションを使用すると、プリコンパイルされたSQLプログラムでコンテキスト構造体を宣言する必要や、埋込みSQL文でUSING CONTEXT句を使用する必要がなくなります。また、すべてのカーソルがクローズされるため、SQL_CLOSE_CURSORSルーチンをコールする必要もなくなります。
>   このオプションを使用する場合、DECdtmシステム・サービスを明示的にコールする必要があります。
>   このオプションは、マルチベンダー・インテグレーション・アーキテクチャ（MIA）規格の構造化トランザクション定義言語（STDL）をサポートしています。
>   埋込みSQL文にUSING CONTEXT句を指定する場合、コンテキスト構造体を宣言する必要があります。

> - SQLOPTIONS=(NOTRANSACTION_DEFAULT)
>   SET TRANSACTION文を実行するまでトランザクションが開始されないようにします。この修飾子を使用する場合、最初にSET TRANSACTION文を発行せずに実行可能文を発行すると、エラーが返されます。

> デフォルトはSQLOPTIONS = (TRANSACTION_DEFAULT = IMPLICIT)です。

> ### SQLOPTIONS= (USER_DEFAULT=username)

> コンパイル時のユーザー名を指定します。

> 規格DECLARE ALIAS文のUSER DEFAULT句を使用する場合、この修飾子を使用して、コンパイル時のユーザー名をプログラムに渡します。

> ### SQLOPTIONS= WARN

> ### SQLOPTIONS= NOWARN

> 事前に処理されたホスト言語ソース・ファイルとSYS$ERRORおよびSYS$OUTPUT（SYS$ERRORとは異なる場合）に情報メッセージと警告メッセージをSQLプリコンパイラによって書き込むかどうかを指定します。WARN修飾子には、次のオプションを使用できます。

> - [NO]WARNING
>   端末、リスト・ファイル、またはこれら両方に情報メッセージと警告メッセージをSQLプリコンパイラによって書き込むかどうかを指定します。

> - [NO]DEPRECATE
>   廃止予定の機能に関する診断メッセージをSQLプリコンパイラによって書き込むかどうかを指定します。
>   廃止予定の機能とは、現在は使用可能ですがSQLの将来のバージョンでは使用できなくなる機能、つまり、旧式の機能です。たとえば、廃止予定の機能の1つに、VERB TIMEではなくVERB_TIMEなどの旧式のキーワードを使用する機能があります。廃止予定の機能の完全なリストは、対話型SQLのヘルプ・ユーティリティによってオンラインで表示されます。