| Pro*COBOL プログラマーズ・ガイド 10gリリース2(10.2) E05652-01 |
|
この章ではPro*COBOLのプリコンパイラ・オプションを説明します。この章の構成は、次のとおりです。
Pro*COBOLは、システムごとに異なった場所に格納されます。通常は、システム管理者かDBAが、環境変数または別名を定義するか、あるいはオペレーティング・システム固有のその他の方法を使用して、Pro*COBOLの実行可能ファイルをアクセス可能にします。
Oracle Pro*COBOLプリコンパイラを実行するには、次のコマンドを使用します。
procob [option_name=value] [option_name=value] ...
オプション名とオプション値の間には必ず等号(=)を置きます。等号の前後には空白を入れないでください。
たとえば、プリコンパイルするソース・ファイルの指定には、INAMEオプションを使用します。次のコマンドを実行するとします。
procob INAME=test
Pro*COBOLはファイル拡張子を.pcoとみなすため、カレント・ディレクトリ内のファイルtest.pcoがプリコンパイルされます。
このように、INAMEの指定でファイル拡張子を使用する必要はありません(ただし、ファイル拡張子が標準以外の場合には拡張子を指定する必要があります)。
入力ファイル名および出力ファイル名を、それぞれのオプション名INAMEおよびONAMEとともに指定する必要はありません。オプション名を指定しない場合、Pro*COBOLはコマンドラインに指定された最初のファイル名を入力ファイル名とみなし、2番目のファイル名を出力ファイル名とみなします。
たとえば、次のコマンドを実行するとします。
procob MODE=ANSI myfile myfile.cob
このコマンドは、次のコマンドに相当します。
procob MODE=ANSI INAME=myfile.pco ONAME=myfile.cob
一般に、コマンドライン・オプションの名前および値には、大文字と小文字のどちらも使用できます。ただし、大/小文字を区別するオペレーティング・システム(UNIXなど)を使用している場合は、Pro*COBOLの実行可能ファイルの名前も含めて、ファイル名は大文字と小文字を正しく組み合せて指定してください。
UNIX Cシェルなどの一部のオペレーティング・システムおよびユーザー・シェルでは、?の前にバックスラッシュ(\)などのエスケープ文字を指定する必要があります。たとえば、Pro*COBOLのオプション設定を示すには、procob?のかわりにprocob \?を使用する必要があります。
プラットフォーム固有のマニュアルを参照してください。
Pro*COBOLは、プリコンパイル中に、ホスト・プログラムに埋め込まれたSQL文に置き換わるCOBOLのコードを生成します。生成されたコードには、各ホスト変数のデータ型、長さ、アドレスなどデータ構造の他、Oracleランタイム・ライブラリSQLLIBが必要とするその他の情報が組み込まれています。またこのコードには、埋込みSQLの処理を実行するSQLLIBルーチンのコールも入っています。
Pro*COBOLは警告やエラー・メッセージを発行することがあります。これらのメッセージは、『Oracle Databaseエラー・メッセージ』で説明されています。
プリコンパイル時には数多くの便利なオプションを使用できます。それらを使用して、リソースの使用、エラーの報告、入出力の書式化およびカーソルの管理を制御できます。
オプションの値はリテラルであり、テキストまたは数値を表します。たとえば、次のオプションを指定するとします。
... INAME=my_test
この値はファイル名を指定する文字列リテラルです。
また、次のオプションを指定するとします。
... PREFETCH=100
この値は数値です。
オプションの中にはブール値をとるものもあります。ブール値には、文字列YESまたはNO、TRUEまたはFALSE、整数リテラル1または0を指定できます。たとえば、次のオプションを指定するとします。
... SELECT_ERROR=YES
このオプションは、次のオプションに相当します。
... SELECT_ERROR=TRUE
または
... SELECT_ERROR=1
等号(=)の前後に空白は入れません。空白によって個々のオプションが区切られるためです。たとえば、次のように、コマンドラインにオプションAUTO_CONNECTを指定できます。
... AUTO_CONNECT=YES
オプション名には略称を使用できますが、他と区別がつかなくなる略称は使用しないでください。たとえば、MAXの略称はMAXLITERALとMAXOPENCURSORSのどちらを表すのかわからないため、使用できません。
Pro*COBOLオプションの参考資料は、オンラインで簡単に見ることができます。オンライン表示するには、オペレーティング・システムのプロンプトから、引数を指定せずにPro*COBOLコマンドを入力します。
procob
オンライン画面には、各オプションの名前および、構文、デフォルト値および用途が表示されます。アスタリスク(*)が付いたオプションは、コマンドラインでもインラインでも指定できます。
オプションの値は、次の値によって決まります(下にいくほど優先順位が高くなります)。
たとえば、オプションMAXOPENCURSORSはキャッシュ内のオープン・ カーソルの最大数を指定します。Pro*COBOLに組み込まれているこのオプションのデフォルト値は10です。システム構成ファイルにMAXOPENCURSORS=32が指定されている場合は、値は32になります。ユーザー構成ファイルの設定値は変更できます。変更すると、システム構成値が上書きされます。
MAXOPENCURSORSオプションをコマンドラインで設定した場合には、新しいコマンドラインの値が優先されます。最終的には、インライン指定が前述のすべてのデフォルト値よりも優先されます。詳細は、「プリコンパイラ・オプションの入力」を参照してください。
オプションMODEはマクロ・オプションです。新しいオプションの中には、END_OF_FETCHのように、1つの機能のみを制御するものがあります。このようなオプションをマイクロ・オプションと呼びます。マクロ・オプションおよびマイクロ・オプションを設定する場合、マクロ・オプションがマイクロ・オプションに優先されるように注意する必要があります。マクロ・オプションの優先順位がマイクロ・オプションより高い場合にのみ、マクロ・オプションが優先されます。(詳細は、「オプション値の優先順位」を参照。)この点は、リリース8.0より前のPro*COBOLとは動作が異なります。
たとえば、MODEのデフォルトはORACLEです。また、END_OF_FETCHのデフォルトは1403です。ユーザー構成ファイルにMODE=ANSIを指定した場合は、Pro*COBOLからフェッチの最後に値100が戻され、END_OF_FETCHのデフォルト値1403が上書きされます。また、構成ファイルでEND_OF_FETCH=1403と指定し、コマンドラインでMODE=ANSIと指定した場合は、100が戻されます。
次の表に、マクロ・オプションの値によって設定されるマイクロ・オプションの値を示します。
| マクロ・オプション | マイクロ・オプション |
|---|---|
|
MODE=ANSI | ISO |
TYPE_CODE=ANSI |
|
MODE=ANSI14 | ANSI13 | ISO14 | ISO13 |
END_OF_FETCH=100 |
|
MODE=ORACLE |
TYPE_CODE=ORACLE |
コマンドラインで疑問符(?)を使用すると、複数のオプションのカレント値を対話形式で調べることができます。たとえば、次のコマンドを発行したとします。
procob ?
すべてのオプションの設定およびそのカレント値が端末に表示されます。この場合、表示される値はPro*COBOLに組み込まれている値ですが、システム構成ファイルに値が指定されている場合は構成ファイル内の値が表示されます。一方、次のコマンドを発行したとします。
procob CONFIG=my_config_file.cfg ?
カレント・ディレクトリにmy_config_file.cfgの名前のファイルがあると、my_config_file.cfgファイルに指定されているオプションが、その他のデフォルト値とともに表示されます。ユーザー構成ファイル内で指定された値はここでは表示されません。また、ユーザー構成ファイルに指定された値は、Pro*COBOLに組み込まれている値やシステム構成ファイルに指定されている値より優先されます。
次のようにオプション名の後に=?を指定して、シングル・オプションのカレント値を指定することもできます。
procob MAXOPENCURSORS=?
CONFIG以外のPro*COBOLのオプションはすべて、コマンドラインまたは構成ファイルから入力できます。また、インラインで入力できるオプションも多数あります。Pro*COBOLは実行時に、これら3つのソースのオプションをすべて受け入れます。
... [option_name=value] [option_name=value] ...を使用して、コマンドラインからプリコンパイラ・オプションを入力できます。
オプションとオプションの間は、1つ以上の空白で区切ります。たとえば、次のようにオプションを入力できます。
... ERRORS=no LTYPE=short
次の構文を使用してEXEC ORACLE OPTION文を記述すると、オプションをインライン入力できます。
EXEC ORACLE OPTION (option_name=value) END-EXEC.
たとえば、次のような文をコーディングできます。
EXEC ORACLE OPTION (RELEASE_CURSOR=YES) END-EXEC.
インラインでオプションを入力すると、コマンドラインから入力された同じオプションは無効になります。
EXEC ORACLE機能は、プリコンパイル中にオプション値を変更する場合に特に便利です。たとえば、文ごとにHOLD_CURSOR値およびRELEASE_CURSOR値を変更することがあります。この場合、付録C「パフォーマンス・チューニング」を参照してください。実行時のパフォーマンスを最適化するための、インライン・オプションの使用方法が記載されています。
インラインでのオプションの指定は、使用しているオペレーティング・システムでコマンドラインに入力できる文字数に制限がある場合にも便利です。また、インライン・オプションは構成ファイルに格納できます。これについては次の項で説明します。
EXEC ORACLE文は、同一オプションを指定した別のEXEC ORACLE文によってオプション指定値(テキスト)が変更されるまで有効です。次の例では、HOLD_CURSOR=NOはHOLD_CURSOR=YESが指定されるまで有効です。
EXEC SQL BEGIN DECLARE SECTION END-EXEC. 01 EMP-NAME PIC X(20) VARYING. 01 EMP-NUMBER PIC S9(4) COMP VALUE ZERO. 01 SALARY PIC S9(5)V99 COMP-3 VALUE ZERO. 01 DEPT-NUMBER PIC S9(4) COMP VALUE ZERO. EXEC SQL END DECLARE SECTION END-EXEC. ... EXEC SQL WHENEVER NOT FOUND GOTO NO-MORE END-EXEC. ... EXEC ORACLE OPTION (HOLD_CURSOR=NO)END-EXEC. ... EXEC SQL DECLARE emp_cursor CURSOR FOR SELECT EMPNO, DEPTNO FROM EMP END-EXEC. EXEC SQL OPEN emp_cursor END-EXEC. DISPLAY 'Employee Number Dept'. DISPLAY '--------------- ----'. PERFORM EXEC SQL FETCH emp_cursor INTO :EMP-NUMBER, :DEPT-NUMBER END-EXEC DISPLAY EMP-NUMBER, DEPT-NUMBER END-EXEC END-PERFORM. NO-MORE. EXEC SQL WHENEVER NOT FOUND CONTINUE END-EXEC. PERFORM DISPLAY 'Employee number? ' ACCEPT EMP-NUMBER IF EMP-NUMBER IS NOT = 0 EXEC ORACLE OPTION (HOLD_CURSOR=YES) END-EXEC EXEC SQL SELECT ENAME, SAL INTO :EMP-NAME, :SALARY FROM EMP WHERE EMPNO = :EMP-NUMBER DISPLAY 'Salary for ', EMP-NAME, ' is ', SALARY END-EXEC END-IF END-PERFORM. NEXT-PARA. ...
構成ファイルは、プリコンパイラ・オプションを格納するテキスト・ファイルです。ファイルのそれぞれのレコード(行)には、1つのオプションおよび対応付けられた値が入ります。たとえば、構成ファイルに次のような行が入っているとします。
FIPS=YES MODE=ANSI
これらの行によってFIPSオプションとMODEオプションの値が設定されています。
システムにはそれぞれ1つのシステム構成ファイルがあります。システム構成ファイルの名前は次のとおりです。
pcbcfg.cfg
システム構成ファイルの位置はオペレーティング・システムによって異なります。ほとんどのUNIXシステムでは、Pro*COBOL構成ファイルは通常、$ORACLE_HOME/precomp/adminディレクトリにあります($ORACLE_HOMEはデータベース・ソフトウェアの環境変数です)。
リリース8.0より前のPro*COBOLでは、構成ファイル名はpccob.cfgであることに注意してください。
Pro*COBOLのユーザーは1つ以上のユーザー構成ファイルを持つことができます。ユーザー構成ファイルの名前はCONFIGオプションを使用してコマンドラインで指定します。詳細は、「カレント値の決定」を参照してください。
プリコンパイル・ユニットは、COBOLコードおよび1つ以上の埋込みSQL文が入っている1つのファイルです。特定のプリコンパイル・ユニットに対して指定したオプションは、そのプリコンパイル・ユニットにのみ効力を持ちます。
たとえば、単位AにHOLD_CURSOR=YESおよびRELEASE_CURSOR=YESを指定し、単位Bには指定しなかった場合、単位AのSQL文は指定したHOLD_CURSORおよびRELEASE_CURSORの値で実行されますが、単位BのSQL文はデフォルト値で実行されます。ただし、Oracleに接続した時点で有効であったMAXOPENCURSORSの設定は、その接続を切り離すまで有効です。
インライン・オプションのスコープは論理的なものではなく、位置的なものです。つまり、インライン・オプションの影響を受けるのは、プログラム・ロジックの流れでそのインライン・オプションの後にくるSQL文ではなく、ソース・ファイル内でそのインライン・ オプションの後に記述されているSQL文です。オプションの設定は、そのオプションを再指定しないかぎり、ファイルの終わりまで有効です。
表14-2は、Pro*COBOLオプションのクイック・リファレンスを示しています。アスタリスクが付いているオプションは、インラインで入力できます。
また、オンラインでも簡単な参照ができます。オンライン画面でPro*COBOLオプションを表示するには、オペレーティング・システムのプロンプトに、オプションを指定せずにPro*COBOLコマンドを入力します。オンライン画面には、各オプションの名前および、構文、デフォルト値および用途が表示されます。
この項は、プリコンパイラ・オプションを簡単に参照できるように構成されています。Pro*COBOLプリコンパイラ・オプションをアルファベット順に示し、各オプションごとに用途、構文およびデフォルト値を記載してあります。さらに「使用上の注意」で、オプションについて説明します。使用上の注意に特に記載がない場合、そのオプションはコマンドライン、インラインまたは構成ファイルのどの方法でも入力できます。
リスト・ファイルがASA規則に従って、キャリッジ制御のために各行の最初の桁を使用するかどうかを指定します。
ASACC={YES | NO}
NO
インラインでは入力できません。
SQLCODEがプログラムで宣言されているかどうか、また、型が正しいかどうかに関係なく、SQLCODEが宣言されているとみなすようにPro*COBOLに指示します。
ASSUME_SQLCODE={YES | NO}
NO
インラインでは入力できません。
DECLARE_SECTION=YESの場合にASSUME_SQLCODE=YESと指定すると、SQLCODEを宣言部の外で宣言できます。
DECLARE_SECTION=YESの場合にASSUME_SQLCODE=NOと指定すると、次の基準のうち少なくとも1つが満たされた場合にのみ、SQLCODEは状態変数として認識されます。
ASSUME_SQLCODE=YESと指定した場合は、SQLSTATEまたはSQLCAあるいはその両方が状態変数として宣言されると、SQLCODEが宣言されているかどうか、また正しい型かどうかに関係なく、Pro*COBOLはSQLCODEが宣言されているものとみなします。
プログラムをデフォルトのユーザー・アカウントに自動的に接続するかどうかを指定します。
AUTO_CONNECT={YES | NO}
NO
インラインでは入力できません。
AUTO_CONNECT=YESと指定した場合、Pro*COBOLが実行SQL文を検出すると同時に、ユーザー・プログラムは自動的に次のユーザーIDでOracleにログインを試みます。
<prefix><username>
<prefix>にはOracle初期化パラメータOS_AUTHENT_PREFIXの値(デフォルト値はOPS$)を指定し、<username>には使用しているオペレーティング・システムのユーザー名またはタスク名を指定します。この場合、コマンドラインに別の値を指定しても、MAXOPENCURORS(10)のデフォルト値は変更できません。
AUTO_CONNECT=NO(デフォルト)の場合は、OracleにログインするにはCONNECT文を使用する必要があります。
SELECT、INSERTまたはUPDATE文で使用されるPIC X変数に使用するキャラクタ・セットの形式を指定します。
CHARSET_PICX={NCHAR_CHARSET | DB_CHARSET }
DB_CHARSET
コマンドラインまたは構成ファイルでは入力できますが、インラインでは入力できません。
CHARSET_PICX = NCHAR_CHARSETと指定した場合、PIC Xバインド・バッファまたは定義バッファは、サーバー側の各国語キャラクタ・セットに従って変換されます。ターゲット列がCHARの場合は、パフォーマンスに影響を及ぼす可能性があります。同様に、CHARSET_PICX = DB_CHARSETと指定した場合、PIC Xバインド・バッファまたは定義バッファは、サーバー側のデータベース・キャラクタ・セットに従って変換されます。ターゲット列がNCHARの場合は、一部のデータが失われる可能性があります。
SELECT、INSERTまたはUPDATE文で使用されるPIC N変数に使用するキャラクタ・セットの形式を指定します。
CHARSET_PICN={NCHAR_CHARSET | DB_CHARSET }
NCHAR_CHARSET
コマンドラインまたは構成ファイルでは入力できますが、インラインでは入力できません。
CHARSET_PICN = DB_CHARSETと指定した場合、PIC Nバインド・バッファまたは定義バッファは、サーバー側のデータベース・キャラクタ・セットに従って変換されます。ターゲット列がNCHARの場合は、一部のデータが失われる可能性があります。同様に、CHARSET_PICN = NCHAR_CHARSETと指定した場合、PIC Nバインド・バッファまたは定義バッファは、サーバー側の各国語キャラクタ・セットに従って変換されます。ターゲット列がCHARの場合は、パフォーマンスに影響を及ぼす可能性があります。
WITH HOLD句なしで宣言されたカーソルを、コミット時にすべてクローズするかどうかを指定します。
CLOSE_ON_COMMIT={YES | NO}
NO
コマンドラインまたは構成ファイルからのみ入力できます。
このオプションは、DECLARE CURSOR文でWITH HOLD句を使用せずに宣言されたカーソルがある場合にのみ有効です(WITH HOLD句が指定されていると、このオプションも、MODEオプションに対応するそれまでの動作も無効になります)。CLOSE_ON_COMMITより高いレベルでMODEが指定されていると、MODEが優先されます。たとえば、デフォルトはMODE=ORACLEおよびCLOSE_ON_COMMIT=NOです。コマンドラインでMODE=ANSIと指定した場合は、WITH HOLD句を使用せずに宣言されているカーソルはすべて、コミット時にクローズされます。
COMMITまたはROLLBACKを発行すると、明示カーソルがすべてクローズされます。(MODE=ORACLEの場合は、コミットまたはロールバックを発行するとCURRENT OF句で参照されているカーソルのみクローズされます。)
このオプションの優先順位の詳細は、「マクロ・オプションおよびマイクロ・オプション」を参照してください。
ユーザー構成ファイルの名前を指定します。
CONFIG=filename
なし
コマンドラインでのみ入力できます。
Pro*COBOLは、コマンドライン・オプションがあらかじめ設定されている構成ファイルを使用できます。ユーザー構成ファイルと呼ばれる代替ファイルも指定できます。詳細は、「プリコンパイラ・オプションの入力」を参照してください。
構成ファイルはネストできません。したがって、構成ファイルはオプションCONFIGを指定できません。
日付が戻される文字列フォーマットを指定します。
DATE_FORMAT={ISO | USA | EUR | JIS | LOCAL | 'fmt'(デフォルト LOCAL)}
LOCAL
コマンドラインまたは構成ファイルからのみ入力できます。指定できる日付文字列を次の表に示します。
| 書式名 | 略称 | 日付書式 |
|---|---|---|
|
国際標準化機構規格 |
ISO |
yyyy-mm-dd |
|
USA標準 |
USA |
mm/dd/yyyy |
|
ヨーロッパ標準 |
EUR |
dd.mm.yyyy |
|
日本工業規格 |
JIS |
yyyy-mm-dd |
|
インストール定義 |
LOCAL |
インストール時に定義した任意の書式 |
'fmt'は、「Month dd, yyyy」などの日付書式モデルです。日付書式モデル要素のリストは、『Oracle Database SQLリファレンス』を参照してください。
DATE_FORMATオプションの使用方法には、制限が1つあります。コンパイルした単位を後でリンクする場合、すべての単位が同じDATE_FORMAT値を使用している必要があります。コンパイル単位間でDATE_FORMATの値に不一致があると、エラーが発生します。
Oracleの意味上および構文上の規則を、Oracle7データベース、Oracle8i 、Oracle9i またはOracleのネイティブ・バージョン(アプリケーションが接続されているバージョン)のうちどの規則に合わせるかを指定します。
DBMS={V7 | V8 | NATIVE}
NATIVE
インラインでは入力できません。
DBMSオプションを使用して、Oracleのバージョン固有の動作を制御できます。DBMS=NATIVE(デフォルト)の場合、Oracleは、Oracleのネイティブ・バージョンの意味および構文上の規則に従います。
宣言部内の宣言のみホスト変数として使用するかどうかを指定します。
DECLARE_SECTION={YES | NO}
NO
コマンドラインまたは構成ファイルからのみ入力できます。
Pro*COBOLリリース8.0以降では、MODE=ORACLEであれば、BEGIN DECLARE SECTION文とEND DECLARE SECTION文は省略できます。DECLARE_SECTIONオプションは、旧リリースとの下位互換性のために用意されています。DECLARE_SECTIONはMODEのマイクロ・オプションです。
このオプションを使用すると、MODE=ORACLEとDECLARE_SECTION=YESを一緒に指定でき、旧リリースでMODE=ORACLEのみ指定した場合と同じ結果が得られます。(DECLARE文で宣言した変数のみ、ホスト変数として使用できます。)このオプションの優先順位の詳細は、「オプション値の優先順位」を参照してください。
条件付きプリコンパイル時にソース・コードの一部組込みまたは除外を行うために使用する、ユーザー定義の記号を指定します。詳細は、「条件付きプリコンパイル」を参照してください。
DEFINE=symbol
なし
DEFINEをインラインで入力する場合のEXEC ORACLE文の書式は次のとおりです。
EXEC ORACLE DEFINE symbol END-EXEC.
このMODEマイクロ・オプションは、動的SQL方法4の記述子の動作を指定します。
DYNAMIC={ORACLE | ANSI}
ORACLE
EXEC ORACLE OPTION文を使用してインラインで入力することはできません。
DYNAMICオプションの設定については、「ANSI動的SQLのプリコンパイラ・オプション」を参照してください。
このMODEマイクロ・オプションは、SQL文の実行後にEND-OF-FETCH条件が発生した場合に戻されるSQLCODE値を指定します。
END_OF_FETCH={100 | 1403}
1403
コマンドラインまたは構成ファイルからのみ入力できます。
END_OF_FETCHはMODEのマイクロ・オプションです。詳細は、「マクロ・オプションおよびマイクロ・オプション」を参照してください。
構成ファイルでMODE=ANSIと指定した場合、END_OF_FETCH条件が発生すると、Pro*COBOLはSQLCODE値100を戻し、END_OF_FETCHのデフォルト値である1403をオーバーライドします。
構成ファイルでMODE=ANSIとEND_OF_FETCH=1403の両方を指定した場合は、END_OF_FETCH条件が発生すると、Pro*COBOLはSQLCODE値1403を戻します。
構成ファイルでMODE=ANSIと指定し、構成ファイルよりも優先順位の高いコマンドラインでEND_OF_FETCH=1403と指定した場合も、END_OF_FETCH条件が発生するとPro*COBOLはSQLCODE値1403を戻します。
Pro*COBOLのエラー・メッセージを、端末およびリスト・ファイルの両方に送るか、リスト・ファイルにのみ送るかを指定します。
ERRORS={YES | NO}
YES
ERRORS=YESと指定すると、エラー・メッセージは端末とリスト・ファイルの両方に送られます。
ERRORS=NOのときは、エラー・メッセージはリスト・ファイルにのみ送られます。
ANSI/ISO SQLの拡張機能に(FIPSフラガーによって)フラグを付けるかどうかを指定します。拡張機能とは、ANSI/ISOの形式または構文規則(権限付与規則は除く)に従っていないSQL要素のことです。
FIPS={YES | NO}
NO
FIPS=YESの場合は、ANSI/ISOに組み込まれたSQL規格(SQL92)からのOracle拡張機能を使用したり、SQL92の機能を規格に準拠しない方法で使用すると、FIPSフラガーは警告メッセージを発行します(エラー・メッセージではありません)。
プリコンパイル時に、次に示すANSI/ISO SQLの拡張機能にフラグが付きます。
COBOL文の書式を指定します。
FORMAT={ANSI | TERMINAL}
ANSI
インラインでは入力できません。
入力行の書式はシステムによって異なります。システム固有のOracleのマニュアルまたはCOBOLコンパイラをチェックしてください。
FORMAT=ANSIと指定した場合、入力行の書式はCOBOLに関する現行のANSI規格にできるかぎり準拠しているものと解釈されます。FORMAT=TERMINALと指定した場合、入力行は列1から始まります。このマニュアルのサンプル・コードはTERMINAL書式内にあります。詳細は、「コーディング領域」を参照してください。
カーソル・キャッシュでのSQL文およびPL/SQLブロック用カーソルの取扱い方法を指定します。
HOLD_CURSOR={YES | NO}
NO
HOLD_CURSORを使用すると、プログラムのパフォーマンスを改善できます。詳細は、付録C「パフォーマンス・チューニング」を参照してください。
SQL DML文を実行すると、その文に対応付けられたカーソルがカーソル・キャッシュ内のエントリにリンクされます。続いてカーソル・キャッシュ・エントリはOracleプライベートSQL領域にリンクされます。この領域にはSQL文の実行に必要な情報が格納されます。HOLD_CURSORはカーソルとカーソル・キャッシュの間のリンクで発生する処理を制御します。
HOLD_CURSOR=NOと指定した場合、OracleがSQL文を実行してカーソルがクローズされた後、Pro*COBOLはそのリンクを再使用可能としてマークします。このリンクは、それが示すカーソル・キャッシュ・エントリが別のSQL文に必要になると、すぐに再利用されます。これにより、プライベートSQL領域に割り当てられたメモリーが解放され、解析ロックが解除されます。
HOLD_CURSOR=YESを指定した場合は、リンクは維持され、Pro*COBOLはリンクを再利用しません。これによって、以降の実行をスピードアップし、文を再解析したり、OracleプライベートSQL領域にメモリーを割り当てる必要がなくなるため、実行頻度の高いSQL文に使用すると便利です。
暗黙カーソルをインラインで使用する場合は、SQL文の実行前にHOLD_CURSORを設定してください。明示カーソルをインラインで使用する場合は、カーソルをオープンする前にHOLD_CURSORを設定してください。
HOLD_CURSORおよびRELEASE_CURSORオプションの相互動作に関する詳細は、付録C「パフォーマンス・チューニング」、表C-1「HOLD_CURSORおよびRELEASE _CURSORの相互関係」を参照してください。
使用するホスト言語を指定します。
HOST={COB74 | COBOL}
COBOL
インラインでは入力できません。
COB74は、ANSI承認COBOLの1974版を表します。COBOLは、1985版を表します。プラットフォームによっては、これ以外の値も使用できます。
入力ファイル名を指定します。
INAME=filename
なし
インラインでは入力できません。
プリコンパイル時は、すべての入力ファイル名を一意にする必要があります。
コマンドラインから入力ファイルの名前を指定する場合は、キーワードINAMEは省略できます。たとえば、Pro*COBOLでは、INAME=myprog.pcoと指定するかわりにmyprog.pcoと指定できます。
このように、INAMEの指定でファイル拡張子を使用する必要はありません(ただし、ファイル拡張子が標準以外の場合には拡張子を指定する必要があります)。UNIXプラットフォームでは、Pro*COBOLはデフォルトの入力ファイル拡張子pcoを使用します。
EXEC SQL INCLUDEファイルのディレクトリ・パスを指定します。このオプションは、ディレクトリを使用するオペレーティング・システム専用です。
INCLUDE=path
カレント・ディレクトリ
通常、INCLUDEはSQLCAファイルおよびORACAファイルのディレクトリ・パスを指定するために使用します。Pro*COBOLは、最初にカレント・ディレクトリを検索し、次にINCLUDEで指定されたディレクトリを検索して、最後に標準INCLUDEファイル用のディレクトリを検索します。このため、SQLCAやORACAなどの標準ファイルのディレクトリ・パスを指定する必要はありません。
しかし、標準以外のファイルについては、カレント・ディレクトリに格納されている場合を除いて、INCLUDEを使用してディレクトリ・パスを指定する必要があります。次に示すように、コマンドラインに複数のパスを指定できます。
... INCLUDE=path1 INCLUDE=path2 ...
Pro*COBOLは、最初にカレント・ディレクトリを検索し、次にpath1で指定されたディレクトリを検索し、続いてpath2で指定されたディレクトリを検索して、最後に標準INCLUDEファイル用のディレクトリを検索します。
ディレクトリ・パスを指定するための構文はシステムによって異なります。使用しているオペレーティング・システムの規則に従って指定してください。
入力ファイルのレコード長を指定します。
IRECLEN=integer
80
インラインでは入力できません。
IRECLENには、ORECLENの値より大きい値は指定できません。指定可能な最大値はシステムによって異なります。
LITDELIMオプションは、Pro*COBOLが生成するCOBOLコード内の文字列定数およびリテラルのデリミタを指定します。
LITDELIM={APOST | QUOTE}
QUOTE
LITDELIM=APOSTと指定すると、Pro*COBOLはCOBOLコードを生成するときに引用符を使用します。LITDELIM=QUOTEを指定すると、次に示すように二重引用符が使用されます。
CALL "SQLROL" USING SQL-TMP0.
SQL文では、次の例に示すように、特殊文字または小文字を含んでいる識別子は二重引用符で区切る必要があります。
EXEC SQL CREATE TABLE "Emp2" END-EXEC.
また、文字列定数を区切る場合は、次の例のように引用符を使用します。
EXEC SQL SELECT ENAME FROM EMP WHERE JOB = 'CLERK' END-EXEC.
Pro*COBOLは、Pro*COBOLソース・ファイルで使用されているデリミタに関係なく、LITDELIMの値で指定されたデリミタを使用します。
リスト・ファイルのデフォルト以外の名前を指定します。
LNAME=filename
入力します。
インラインでは入力できません。
デフォルトでは、リスト・ファイルはカレント・ディレクトリに作成されます。
リスト・ファイルのレコード長を指定します。
LRECLEN=integer
132
インラインでは入力できません。
LRECLENの値の範囲は、80〜132です。80未満の値を指定した場合は、80がセットされます。この範囲より大きい値を指定すると、エラーが発生します。行番号を挿入できるように、LRECLENの値がIRECLENより8以上大きくなるように指定してください。
リスト・ファイルの型を指定します。
LTYPE={LONG | SHORT | NONE}
LONG
インラインでは入力できません。
| リスト・ファイルの型 | 説明 |
|---|---|
|
LTYPE=LONG |
リスト・ファイルに入力行が表示されます。 |
|
LTYPE=SHORT |
リスト・ファイルに入力行は表示されません。 |
|
LTYPE=NONE |
リスト・ファイルが作成されません。 |
コンパイラの制限を超えないように、Pro*COBOLが生成する文字列リテラルの最大長を指定します。たとえば、コンパイラが132文字より長い文字列リテラルを処理できない場合は、コマンドラインにMAXLITERAL=132と指定します。
MAXLITERAL=integer
1024
MAXLITERALに指定可能な最大値は、コンパイラによって異なります。言語ごとに異なるデフォルト値が適用されますが、このデフォルト値より小さい値を指定する必要がある場合もあります。たとえば、COBOLコンパイラの中には132文字より長い文字列リテラルを処理できないものもあります。その場合は、MAXLITERAL=132と指定します。
MAXLITERALで指定した長さを超える文字列はプリコンパイル中に分割され、実行時に再び結合(連結)されます。
MAXLITERALはインラインで入力できますが、プログラムでMAXLITERALの値を設定できるのは1回のみです。また、そのEXEC ORACLE文は最初のEXEC SQL文より前に記述する必要があります。この条件に違反すると、Pro*COBOLは警告メッセージを発行し、余分なEXEC ORACLE文あるいは誤った位置にあるEXEC ORACLE文を無視して、処理を続行します。
Pro*COBOLがキャッシュに保存しておける、同時にオープンされるカーソル数を指定します。
MAXOPENCURSORS=integer
10
MAXOPENCURSORSを使用すると、プログラムのパフォーマンスを改善できます。詳細は、付録C「パフォーマンス・チューニング」を参照してください。
個別にプリコンパイルする場合は、「分割プリコンパイル」の説明に従ってMAXOPENCURSORSを指定してください。
MAXOPENCURSORSオプションには、SQLLIBカーソル・キャッシュの初期サイズを指定します。
HOLD_CURSOR=NOのときに、暗黙的な文が実行されるか明示カーソルがクローズされると、カーソル・エントリは再利用可能とマークされます。この文が再び発行された時にカーソル・エントリが別の文に使用されていなければ、カーソルは再利用されます。
割当て済のカーソル数がMAXOPENCURSORSに満たない場合に新しいカーソルが必要になると、キャッシュに格納された次のカーソルが割り当てられます。MAXOPENCURSORSが上限を超えると、Oracleはまず1つ前のエントリの再利用を試みます。空きエントリがない場合は、追加のキャッシュ・エントリが割り当てられます。Oracleはプログラムがメモリー不足になるか、データベース・パラメータOPEN_CURSORSが上限を超えるまで、この作業を続けます。
通常の処理では、HOLD_CURSORS=NOでRELEASE_CURSOR=NO(デフォルト)を使用するときには、データ・ディクショナリで使用されるカーソルが文を処理できるように、MAXOPENCURSORSの値をOPEN_CURSORSデータベース・パラメータの値より6以上小さい値に設定しないことをお薦めします。
プログラムが同時に必要とするオープン・カーソルの数が増えて、MAXOPENCURSORSを再指定する必要がある場合もあります。45〜50の値を指定することは珍しくありませんが、ユーザー・プロセスのメモリー領域にカーソル1つにつき、1つのプライベートSQL領域が必要なことに注意してください。デフォルト値の10は、大半のプログラムには適切な値です。
このマクロ・オプションは、プログラムがOracleの基準に従うか、現行のANSI SQL規格に準拠するかを指定します。
MODE={ANSI | ISO | ANSI14 | ISO14 | ANSI13 | ISO13 | ORACLE}
ORACLE
インラインでは入力できません。
MODE値のANSIとISO、ANSI14とISO14、ANSI13とISO13それぞれのペアの値は等価です。
MODE=ORACLE(デフォルト)のとき、埋込みSQLプログラムはOracleの動作規則に従います。
MODE={ANSI14|ANSI13}と指定した場合、プログラムはほぼ現行のANSI SQL規格に準拠します。
MODE=ANSIと指定した場合、プログラムは完全にANSI規格に準拠し、次のような変更が加えられます。
MODE={ANSI|ANSI14}と指定した場合、SQLCODEの4バイトの整変数またはSQLSTATEの5バイトの文字変数を宣言する必要があります。詳細は、「エラー処理の代替手段」を参照してください。
ネストしたプログラムのGLOBAL句が生成されたかどうかを示します。コンパイラがネストしたプログラムをサポートしている場合は、NESTED値としてYESを使用します。
NESTED={YES | NO}
YES
インラインでは入力できません。
NLS_LOCALオプションは、グローバリゼーション・サポート(旧称「NLS」)文字変換がPro*COBOLランタイム・ライブラリまたはOracleサーバーのどちらかによって実行されるかを指定します。
NLS_LOCAL={YES | NO}
NO
インラインでは入力できません。
このオプションは、サーバーとの間で各国語キャラクタ・セット変数を受け渡しするのに使用します。
NLS_LOCAL=YESと指定した場合、マルチバイト・グローバリゼーション・サポート・データ型を持つホスト変数の空白埋込みおよび空白削除はランタイム・ライブラリ(SQLLIB)によってローカルに実行されます。リリース8.0以前のリリース用に記述されたPro*COBOLアプリケーションの場合は、引き続きこの値を使用します。
NLS_LOCAL=YESの場合、動的SQL文はプリコンパイル時には処理されないので、このオプションは動的SQL文に対して効力を持ちません。
また、NLS_LOCAL=YESのときは、マルチバイト・グローバリゼーション・サポート・データを格納する列は、埋込みデータ定義言語(DDL)文で使用できません。この制限はプリコンパイル時には適用されないため、このような列型を埋込みDDL文で使用すると、プリコンパイル・エラーではなく実行エラーが発生します。
NLS_LOCAL=NOと指定した場合は、マルチバイト・グローバリゼーション・サポート・データ型を持つホスト変数の空白埋込みおよび空白削除の操作はOracleサーバーによって行われます。新しいOracle8.0以上のアプリケーションについては、すべてこの値を使用してください。
環境変数NLS_NCHARでは、各国語キャラクタ・セットのデータで使用するキャラクタ・セット(NCHAR、NVARCHAR2、NCLOB)を指定します。指定しない場合は、NLS_LANGで直接的または間接的に定義されたキャラクタ・セットが使用されます。詳細は、『Oracle Databaseグローバリゼーション・サポート・ガイド』のNLS_LANGの項を参照してください。
出力ファイル名を指定します。
ONAME=filename
システムによって異なります。
インラインでは入力できません。
このオプションは、出力ファイルの名前が入力ファイルの名前と異なる場合に、出力ファイルの名前を指定するために使用します。たとえば、次のコマンドを発行したとします。
procob INAME=my_test
デフォルト出力ファイル名は、my_test.cobです。出力ファイル名をmy_test_1.cobにする場合は、次のコマンドを発行します。
procob INAME=my_test ONAME=my_test_1.cob
ONAMEを使用して指定するファイルには、.cob拡張子を付けてください。ONAMEオプションにはデフォルトの拡張子はありません。
プログラムがOracle通信領域(ORACA)を使用できるかどうかを指定します。
ORACA={YES | NO}
NO
ORACA=YESと指定した場合は、プログラムにINCLUDE ORACA文を記述する必要があります。
出力ファイルのレコード長を指定します。
ORECLEN=integer
80
インラインでは入力できません。
ORECLENに指定する値は、IRECLENの値と同じか、それより大きい値にする必要があります。指定可能な最大値はシステムによって異なります。
リスト・ファイルの物理ページ当たりの行数を指定します。
PAGELEN=integer
66
インラインでは入力できません。指定可能な最大値はシステムによって異なります。
PIC X変数のデフォルトのデータ型を指定します。
PICX={CHARF | VARCHAR2}
CHARF
コマンドラインまたは構成ファイルからのみ入力できます。
Pro*COBOL 8.0からは、PIC X、NまたはG変数のデフォルトのデータ型がVARCHAR2からCHARFに変わりました。PICXは、下位互換性を維持するために用意されているオプションです。
新しいデフォルトの動作は、COBOLの標準の移動規則と整合がとれています。新しい方式により、PIC X変数を(MODE=ORACLEと指定して) VARCHAR2列に挿入した場合の動作が変わります。以前は後続ブランクは切り捨てられましたが、切り捨てられなくなります。また、新しいデフォルトにより、バインド変数の後続ブランクが比較の前に切り捨てられるので、WHERE句で後続ブランク付きで初期化したPIC Xバインド変数を使用すると、char列に格納された同数の後続ブランクを持つ値と一致しないという状態が少なくなります。
PICX=VARCHAR2と指定した場合、OracleはPL/SQLブロック内のローカルCHAR変数を可変長文字値のように扱います。PICX=CHARFと指定した場合は、OracleはCHAR変数をANSI準拠の固定長文字値のように扱います。詳細は、「PIC Xのデフォルト」を参照してください。
このオプションを使用して一定の行数をプリフェッチすると、問合せが高速化します。
PREFETCH=integer
1
構成ファイルまたはコマンドラインからのみ入力できます。整数値は、明示カーソルを使用する問合せの実行にすべて適用されます。このとき、優先順位のルールも適用されます。
インラインで使用するときは、明示カーソルを使用し、OPEN文の前に配置する必要があります。OPEN文が実行されたときにプリフェッチされる行数は、有効な最後のインラインPREFETCHオプションによって決まります。
PREFETCHのデフォルトは1です。プリフェッチをオフにするには、コマンドラインでPREFETCH=0を指定します。
LONG列およびLOB列へのアクセス中もプリフェッチはオフになります。PREFETCHを使用すると、単一行フェッチのパフォーマンスが向上します。配列フェッチを実行する場合、PREFETCHの値は割り当てた値に関係なく無効になります。
アプリケーションにおけるすべてのフェッチを支援できる完全なプリフェッチ番号はありません。
したがって、PREFETCHオプションを使用する場合は、様々な値をテストし、プログラム内の文全般にわたってパフォーマンスを向上させるものを選択してください。いくつかの文を個別にチューニングする必要がある場合は、EXEC ORACLE OPTIONを使用してPREFETCHオプションをインラインで指定します。この操作は、このコマンドの後のすべてのフェッチ文に影響を与えます。特定のFETCH文のパフォーマンスが向上するようにプリフェッチ番号を選択してください。この個別プリフェッチ・カウントを実現するには、(コマンドラインからではなく)インラインのプリフェッチ・オプションを指定します。
最大値は9999です。詳細は、「PREFETCHプリコンパイラ・オプション」を参照してください。
カーソル・キャッシュでのSQL文およびPL/SQLブロック用カーソルの取扱い方法を指定します。
RELEASE_CURSOR={YES | NO}
NO
RELEASE_CURSORを使用すると、プログラムのパフォーマンスを改善できます。
SQL DML文を実行すると、その文に対応付けられたカーソルがカーソル・キャッシュ内のエントリにリンクされます。続いてカーソル・キャッシュ・エントリはOracleプライベートSQL領域にリンクされます。この領域にはSQL文の実行に必要な情報が格納されます。RELEASE_CURSORはカーソル・キャッシュとプライベートSQL領域の間のリンクで発生する処理を制御します。
RELEASE_CURSOR=YESと指定した場合、OracleがSQL文を実行してカーソルがクローズされると、Pro*COBOLはただちにリンクを削除します。これにより、プライベートSQL領域に割り当てられたメモリーが解放され、解析ロックが解除されます。カーソルのCLOSE時に関連リソースが確実に解放されるようにするには、RELEASE_CURSOR=YESを指定する必要があります。
RELEASE_CURSOR=NOを指定すると、リンクは保持されます。オープンされているカーソルの数がMAXOPENCURSORSの値を超えないかぎり、Pro*COBOLはリンクを再利用しません。この設定によって後に続く処理の実行速度が向上するため、これは実行頻度の高いSQL文には便利です。文を解析しなおしたり、OracleプライベートSQL領域にメモリーを割り当てる必要がないためです。
暗黙カーソルをインラインで使用する場合は、SQL文の実行前にRELEASE_CURSORを設定してください。明示カーソルをインラインで使用する場合は、カーソルをオープンする前にRELEASE_CURSORを設定してください。
RELEASE_CURSOR=YESはHOLD_CURSOR=YESをオーバーライドすることに注意してください。これら2つのオプションの相互作用の詳細は、付録C「パフォーマンス・チューニング」、表C-1「HOLD_CURSORおよびRELEASE _CURSORの相互関係」を参照してください。
SELECT文で複数の行が戻されたり、ホスト配列に入りきらない数の行が戻された場合に、プログラムがエラーを発行するかどうかを指定します。
SELECT_ERROR={YES | NO}
YES
SELECT_ERROR=YESと指定すると、1行を戻す選択で複数行が戻された場合や、配列の選択でホスト配列に入りきらない数の行が戻された場合にはエラーが発生します。
SELECT_ERROR=NOと指定すると、1行を戻す選択で複数行が戻された場合や、配列の選択でホスト配列に入りきらない数の行が戻された場合でも、エラーは発生しません。
YESを指定してもNOを指定しても、行は表から無作為に選択されます。特定の順序で行を選択する場合は、SELECT文でORDER BY句を使用してください。SELECT_ERROR=NOと指定した場合、ORDER BY句を使用すると、Oracleは最初の行を戻します。また、配列の選択の場合は最初のn行を戻します。SELECT_ERROR=YESと指定した場合は、ORDER BY句を使用してもしなくても、戻された行が多すぎる場合にはエラーが発生します。
構文および意味チェックのタイプとレベルを指定します。
SQLCHECK={SEMANTICS | FULL | SYNTAX | LIMITED}
SYNTAX
値SEMANTICSとFULLは等価です。また、SYNTAXとLIMITEDも等価です。
Pro*COBOLは、埋込みSQL文およびPL/SQLブロックの構文と意味をチェックすると、プログラムのデバッグを支援します。検出されたエラーはプリコンパイル時にレポートされます。
チェックのレベルを制御するには、コマンドラインもしくはインライン、またはその両方でSQLCHECKオプションを入力します。ただし、インラインで指定するチェックのレベルを、コマンドラインで指定する(またはデフォルトによって受け入れる)レベルよりも高くすることはできません。
PL/SQLの予約語がSQL文で使用されていると、そのSQL文がPL/SQLでない場合でも、Pro*COBOLはエラーを発行します。PL/SQLの予約語を識別子として使用する必要がある場合は、二重引用符(")で囲んでください。
SQLCHECK=SEMANTICSと指定した場合、Pro*COBOLは次の項目を対象として構文および意味上のチェックを行います。
ただし、リモートDML文(AT db_name句を使用するDML文)については、構文上のチェックのみ行われます。
Pro*COBOLは、意味検査に必要な情報を、埋め込まれたDECLARE TABLE文から取得します。また、オプションUSERIDが指定されている場合は、Oracleに接続してデータ・ディクショナリに アクセスして取得します。DML文またはPL/SQLブロックで参照される表がすべてDECLARE TABLE文で定義されていれば、Oracleに接続する必要はありません。
Oracleに接続してデータ・ディクショナリにアクセスしても見つからない情報があった場合は、DECLARE TABLE文を使用して欠けている情報を提供する必要があります。プリコンパイル時にDECLARE TABLE文の定義とデータ・ディクショナリの定義の内容が矛盾する場合は、DECLARE TABLE文の定義が使用されます。
新しいプログラムをプリコンパイルするときは、SQLCHECK=SEMANTICSを指定してください。ホスト・プログラムにPL/SQLブロックを埋め込む場合は、SQLCHECK=SEMANTICSと指定し、オプションUSERIDを指定する必要があります。
SQLCHECK=SYNTAXと指定した場合、Pro*COBOLはDML文の構文チェックを行います。
意味上のチェックは行いません。DECLARE TABLE文は無視され、PL/SQLブロックは使用できません。DML文のチェックには、下位互換性のあるOracle9i 構文規則が使用されます。プリコンパイル済のプログラムを移行する場合は、SQLCHECK=SYNTAXを指定してください。
表14-5に、SQLCHECKで行われる検査をまとめてあります。構文検査および意味検査の詳細は、付録D「構文および意味検査」を参照してください。
| - | SQLCHECK=SEMANTICSの指定 | - | SQLCHECK=SYNTAXの指定 | - |
|---|---|---|---|---|
|
- |
構文 |
意味 |
構文 |
意味 |
|
DML |
可 |
可 |
可 |
- |
|
リモートDML |
可 |
- |
可 |
- |
|
PL/SQL |
可 |
可 |
- |
- |
THREADS=YESの場合は、プリコンパイラにマルチスレッド・アプリケーションを使用できます。
THREADS={YES | NO}
NO
インラインでは入力できません。
このプリコンパイラ・プログラムは、マルチスレッド・サポートを必要とするすべてのプログラムに必須です。
THREADS=YESに設定した場合、最初のコンテキストが参照され、実行SQL文が見つかる前にEXEC SQL CONTEXT USEディレクティブが検出されると、プリコンパイラはエラーを発行します。詳細は、第12章「マルチスレッド・アプリケーション」を参照してください。
このMODEマイクロ・オプションでは、ANSI動的SQL方法4でANSIまたはOracleデータ型コードのどちらを使用するかを決定します。この設定は、MODEオプションの設定と同じです。
TYPE_CODE={ORACLE | ANSI}
ORACLE
インラインでは入力できません。
設定できるオプションの詳細は、表10-3を参照してください。
UNSAFE_NULL=YESを指定すると、標識変数を使用せずにNULLをフェッチしてもORA-01405メッセージは生成されません。
UNSAFE_NULL={YES | NO}
NO
インラインでは入力できません。
MODE=ORACLEの場合のみ、UNSAFE_NULL=YESを設定できます。
埋込みPL/SQLブロックのホスト変数ではUNSAFE_NULLオプションは何の効果もありません。ORA-01405エラーの発生を避けるために、必ず標識変数を使用してください。
UNSAFE_NULL=YESと指定すると、SELECT文またはFETCH文でNULLが選択され、出力ホスト変数に対応する標識変数がない場合でも、エラーは戻されません。UNSAFE_NULL=NOと指定した場合、対応する標識変数のないホスト変数にNULLの列または式を選択またはフェッチすると、エラーが発生します(SQLSTATEは22002に、SQLCODEはORA-01405に設定されます)。
Oracleユーザー名およびパスワードを指定します。
USERID=username/password[@dbname]
なし
インラインでは入力できません。
SQLCHECK=SEMANTICSと指定した場合に、Oracleに接続してデータ・ディクショナリにアクセスすることによりPro*COBOLが必要な情報を得られるようにする場合は、USERIDも指定してください。データベース別名はオプションです。大カッコは、入力しないでください。
VARCHARオプションは、第5章「埋込みSQL」で説明したCOBOLのグループ項目をVARCHARデータ型として扱うようにPro*COBOLに指示します。
VARCHAR={YES | NO}
NO
インラインでは入力できません。
VARCHAR=YESと指定した場合、第5章「埋込みSQL」で説明した暗黙的なグループ項目を、長さフィールドおよび文字列フィールドを持つVARCHAR外部データ型として受け入れます。
VARCHAR=NOと指定した場合、Pro*COBOLは暗黙的なグループ項目をVARCHAR外部データ型として受け入れません。
リスト・ファイルに相互参照セクションを組み込むかどうかを指定します。
XREF={YES | NO}
YES
XREF=YESと指定すると、ホスト変数、カーソル名および文名にクロス・リファレンスが組み込まれます。クロス・リファレンスは、個々のオブジェクトがプログラム内のどこで定義され、どこで参照されているかを示します。
XREF=NOと指定した場合は、相互参照セクションは組み込まれません。
|
![]() Copyright © 2007 Oracle Corporation. All Rights Reserved. |
|