機械翻訳について

C UTL_PGインタフェース

Oracle Database Gateway for APPCでは、Oracle Netに変更を加えずにPL/SQLとの間でデータを転送するために RAWデータ型を使用する必要があります。 これは、PL/SQLアプリケーションのみが、リモート・トランザクション・プログラムとの間で送受信されるデータの形式に関する情報を持つため、必要です。 Oracle Netには、PL/SQLアプリケーションとゲートウェイ・サーバーが実行されているシステムに関する情報しかありません。 Oracle NetがPL/SQLとゲートウェイの間を流れるデータに対して変換を実行できる場合、データは間違った形式になることがあります。

トピック:

注意:

IBM VS COBOL IIコンパイラはサポート対象外です。 ただし、文字列IBMVSCOBOLIIは、使用する任意のCOBOLコンパイラを表すコンパイラ名パラメータ値として引き続き使用されます。 IBMVSCOBOLIIは引き続き使用され、コンパイラの特定バージョンに依存しません。

UTL_PG関数

UTL_PGパッケージは、PL/SQLの拡張機能であり、COBOL数値書式をOracle番号とOracle番号をCOBOL数値書式に変換するための全機能を提供します。

UTL_PG変換フォーマットこのリリースでは、RAWは移植性がありません。 さらに、あるシステムで変換フォーマットRAWを生成し、別のシステムに転送することはサポートされていません。

このセクションにリストされている関数は、標準のPL/SQLの方法で呼び出されます:

package_name.function_name(arguments)

具体的には、UTL_PGルーチンの場合は次のようになります:

UTL_PG.function_name(arguments)

以下にリストされている各関数には、関数名、引数とそのデータ型、戻り値のデータ型が用意されています。 特記のない限り、パラメータはOUTではなく、INです。

共通パラメータ

次のUTL_PG関数は、それらの間でいくつかの同様のパラメータを共有します:

  • RAW_TO_NUMBER

  • MAKE_NUMBER_TO_RAW_FORMAT

  • MAKE_RAW_TO_NUMBER_FORMAT

  • NUMBER_TO_RAW

これらの同様のパラメータは、「表C-1」で詳細に説明されており、この付録の各UTL_PG関数のパラメータをリストした後続の表では名前でのみ参照されています。

共通入力パラメータ

「表C-1」は、すべてのUTL_PG関数に共通の入力パラメータを記述します:

表C-1 UTL_PG関数に共通の入力パラメータ

パラメータ 説明

mask

コンパイラのデータ型マスクです。 これは変換されるデータ型で、指定されたコンパイラのソース言語(compname)で指定されます。 これは、コンパイラおよびホスト・プラットフォームに従ってエンコードされたデータの内部フォーマットを意味します。

maskopts

コンパイラのデータ型マスク・オプションまたはNULLです。 これらは、マスクに関連付けられた追加オプションです(compnameのソース言語で指定されています)。 これらは、必要に応じて変換のタイプをさらに限定することができます。

envrnmnt

コンパイラ環境句またはNULLです。 これらは、リモート・データが常駐する環境に関連する追加オプションです( compnameのソース言語で指定されています)。 このパラメータは、通常、小数点や通貨記号(該当する場合)など、顧客の基準によって示されるデータ変換の側面を提供します。

compname

コンパイラ名です。 サポートされている値はIBMVSCOBOLIIのみです。

compopts

コンパイラ・オプションまたはNULLです。

nlslang

「グローバリゼーション・サポート」形式、language_territory.charsetで指定されたゾーニングされた10進コードページです。 デフォルトはAMERICAN_AMERICA.WE8EBCDIC37Cです。

wind

警告インジケータです。 変換警告メッセージをwmsgblk OUTパラメータに戻すかどうかを制御するブール・インジケータ。

wmsgbsiz

警告メッセージ・ブロックのバイト単位の宣言サイズです。 これは、wmsgblkのバイト長に設定されたBINARY_INTEGERです。 警告メッセージ・ブロックは、512以上8192バイト以下でなければなりません。 wmsgblkを宣言するときは、リクエストされた変換の性質に応じて、返される警告ごとに約512バイトを計画します。

共通出力パラメータ

「表C-2」は、UTL_PG関数に共通の出力パラメータを記述します:

表C-2 UTL_PG関数に共通の出力パラメータ

パラメータ 説明

wmsgblk

警告メッセージ・ブロックです。 これは、windTRUEの場合は、フル・メッセージと置換パラメータの両方の形式で複数の警告を含むことができるRAW値です。 このパラメータは、警告が出されたかどうかをテストするためにWMSGCNT関数に渡され、存在する警告を抽出するためにWMSGに渡されます。

windTRUEであり、警告が発行されない場合、またはwindFALSEの場合、wmsgblkの長さは0です。 このパラメータは、使用する度にリセットする必要はありません。 警告メッセージは、Oracle Databaseエラー・メッセージマニュアルに記載されています。 このパラメータは、windの指定方法に関係なく、すべての場合にパラメータとして割り当てて渡す必要があります。

RAW_TO_NUMBER

RAW_TO_NUMBERは、RAWバイト文字列rを、mask, maskopts, envrnmnt, compname, compopts,およびnlslangで指定されたリモート・ホスト内部形式からOracle番号に変換します。

有効な場合は、指定された変換がデータに含まれる変換と競合した場合、または競合するフォーマット仕様が提供された場合に警告が発行されます。

mask, maskopts, envrnmnt, compnameおよびcompopts引数の詳細については、「"NUMBER_TO_RAWおよびRAW_TO_NUMBERの引数値"」を参照してください。

構文

function RAW_TO_NUMBER (r IN RAW,
 mask IN VARCHAR2,
 maskopts IN VARCHAR2,  
 envrnmnt IN VARCHAR2,
 compname IN VARCHAR2, 
 compopts IN VARCHAR2,
 nlslang IN VARCHAR2,
 wind IN BOOLEAN,
 wmsgbsiz IN BINARY_INTEGER,
 wmsgblk OUT RAW) RETURN NUMBER;

「表C-3」がこの関数のパラメータを記述する場所:

表C-3 RAW_TO_NUMBERファンクションのパラメータ

パラメータ 説明

r

変換されるリモート・ホスト・データです。

mask

コンパイラのデータ型マスクです。

maskopts

コンパイラのデータ型マスク・オプションまたはNULLです。

envrnmnt

コンパイラ環境句またはNULLです。

compname

コンパイラ名です。

compopts

コンパイラ・オプションまたはNULLです。

nlslang

「グローバリゼーション・サポート」形式の区切り10進コードページです。

wind

警告インジケータです。

wmsgbsiz

警告メッセージのブロック・サイズ(バイト)です。

wmsgblk

警告メッセージ・ブロックです。 これはOUTパラメータです。

デフォルトとオプション・パラメータ

「表C-4」は、RAW_TO_NUMBER関数のデフォルトおよびオプションのパラメータを記述します:

表C-4 RAW_TO_NUMBER関数のオプション・パラメータとデフォルト・パラメータ

パラメータ 説明

maskopts

nullが許可され、デフォルト値はありません

envrnmnt

nullが許可され、デフォルト値はありません

compopts

nullが許可され、デフォルト値はありません

戻り値

値がrに対応するOracle番号。

エラーと警告メッセージ

ORA-xxxxエラーまたは警告メッセージが表示された場合は、その説明および処理方法についてはOracle Databaseエラー・メッセージを参照してください。

NUMBER_TO_RAW

NUMBER_TO_RAWは、宣言された精度とスケールのOracle番号nを、maskmaskopts, envrnmnt, compname, compopts、およびnlslangで指定されたリモート・ホスト内部形式のRAWバイト文字列に変換します。

有効な場合は、指定された変換がデータに含まれる変換と競合した場合、または競合するフォーマット仕様が提供された場合に警告が発行されます。

mask, maskopts, envrnmnt, compname,およびcompopts引数の詳細については、「"NUMBER_TO_RAWおよびRAW_TO_NUMBERの引数値"」を参照してください。

構文

function NUMBER_TO_RAW (n IN NUMBER,
 mask IN VARCHAR2,
 maskopts IN VARCHAR2, 
 envrnmnt IN VARCHAR2,
 compname IN VARCHAR2, 
 compopts IN VARCHAR2,
 nlslang IN VARCHAR2,
 wind IN BOOLEAN,
 wmsgbsiz IN BINARY_INTEGER,
 wmsgblk OUT RAW) RETURN RAW;

「表C-5」がこの関数のパラメータを記述する場所:

表C-5 NUMBER_TO_RAWファンクションのパラメータ

パラメータ 説明

n

変換されるOracle番号です。

mask

コンパイラのデータ型マスクです。

maskopts

コンパイラのデータ型マスク・オプションまたはNULLです。

envrnmnt

コンパイラ環境句またはNULLです。

compname

コンパイラ名です。

compopts

コンパイラ・オプションまたはNULLです。

nlslang

「グローバリゼーション・サポート」形式の区切り10進コードページです。

wind

警告インジケータです。.

wmsgbsiz

警告メッセージのブロック・サイズ(バイト)です。

wmsgblk

警告メッセージ・ブロックです。 これはOUTパラメータです。

デフォルトとオプション・パラメータ

「表C-6」は、NUMBER_TO_RAW関数のデフォルトとオプションのパラメータを記述します:

表C-6 NUMBER_TO_RAW関数のデフォルトおよびオプションのパラメータ

パラメータ 説明

maskopts

nullが許可され、デフォルト値はありません

envrnmnt

nullが許可され、デフォルト値はありません

compopts

nullが許可され、デフォルト値はありません

戻り値

値がnに対応するRAW値。

エラーと警告メッセージ

ORA-xxxxエラーまたは警告メッセージが表示された場合は、その説明および処理方法についてはOracle Databaseエラー・メッセージを参照してください。

MAKE_RAW_TO_NUMBER_FORMAT

MAKE_RAW_TO_NUMBER_FORMATは、mask, maskopts, envrnmnt, compname, compopts,nlslangで指定されたリモート・ホスト内部フォーマットからRAWバイト・ストリングを同等の精度とスケールのOracle番号に変換するために使用されるRAW_TO_NUMBERフォーマット変換仕様を作成します。

有効な場合は、指定された変換がデータに含まれる変換と競合した場合、または競合するフォーマット仕様が提供された場合に警告が発行されます。

この関数は、UTL_PG.RAW_TO_NUMBER_FORMATに渡すことができる変換フォーマットを含むRAW値を返します。

mask, maskoptsenvrnmntcompname、およびcompopts引数の詳細については、「"NUMBER_TO_RAWおよびRAW_TO_NUMBERの引数値"」を参照してください。

構文

function MAKE_RAW_TO_NUMBER_FORMAT (mask IN VARCHAR2,
 maskopts IN VARCHAR2, 
 envrnmnt IN VARCHAR2,
 compname IN VARCHAR2, 
 compopts IN VARCHAR2,
 nlslang IN VARCHAR2,
 wind IN BOOLEAN,
 wmsgbsiz IN BINARY_INTEGER,
 wmsgblk OUT RAW) RETURN RAW;

「表C-7」がこの関数のパラメータを記述する場所:

表C-7 MAKE_RAW_TO_NUMBER_FORMATファンクションのパラメータ

パラメータ 説明

mask

コンパイラのデータ型マスクです。

maskopts

コンパイラのデータ型マスク・オプションまたはNULLです。

envrnmnt

コンパイラ環境句またはNULLです。

compname

コンパイラ名です。

compopts

コンパイラ・オプションまたはNULLです。

nlslang

「グローバリゼーション・サポート」形式の区切り10進コードページです。

wind

警告インジケータです。

wmsgbsiz

警告メッセージのブロック・サイズ(バイト)です。

wmsgblk

警告メッセージ・ブロックです。 これはOUTパラメータです。

デフォルトとオプション・パラメータ

「表C-8」は、MAKE_RAW_TO_NUMBER_FORMAT関数のデフォルトとオプションのパラメータを記述します:

表C-8デフォルトおよびオプションのMAKE_RAW_TO_NUMBER_FORMATパラメータ

パラメータ 説明

maskopts

nullが許可され、デフォルト値はありません

envrnmnt

nullが許可され、デフォルト値はありません

compopts

nullが許可され、デフォルト値はありません

戻り値

RAW_TO_NUMBERRAW(2048)フォーマット変換仕様。

エラーと警告メッセージ

ORA-xxxxエラーまたは警告メッセージが表示された場合は、Oracle Databaseエラー・メッセージガイドを参照して、その説明および処理方法に関する情報を入手してください。

MAKE_NUMBER_TO_RAW_FORMAT

MAKE_NUMBER_TO_RAW_FORMATは、mask, maskopts, envrnmntcompnamecompopts、およびnlslang.で指定されたリモート・ホスト内部フォーマットのRAWバイト文字列に、宣言された精度と位取りのOracle番号を変換するために使用されるNUMBER_TO_RAW形式変換仕様を作成

有効な場合は、指定された変換がデータに含まれる変換と競合した場合、または競合するフォーマット仕様が提供された場合に警告が発行されます。

この関数は、UTL_PG.NUMBER_TO_RAW_FORMATに渡すことができる変換フォーマットを含むRAW値を返します。 結果フォーマットRAWの実装長は2048バイトです。

mask, maskopts, envrnmnt, compnameおよびcompopts引数の詳細については、「"NUMBER_TO_RAWおよびRAW_TO_NUMBERの引数値"」を参照してください。

構文

function MAKE_NUMBER_TO_RAW_FORMAT (mask IN VARCHAR2, 
 maskopts IN VARCHAR2,
 envrnmnt IN VARCHAR2,
 compname IN VARCHAR2, 
 compopts IN VARCHAR2,
 nlslang IN VARCHAR2,
 wind IN BOOLEAN,
 wmsgbsiz IN BINARY_INTEGER,
 wmsgblk OUT RAW) RETURN RAW;

「表C-9」がこの関数のパラメータを記述する場所:

表C-9 MAKE_NUMBER_TO_RAW_FORMATファンクションのパラメータ

パラメータ 説明

mask

コンパイラのデータ型マスクです。

maskopts

コンパイラのデータ型マスク・オプションまたはNULLです。

envrnmnt

コンパイラ環境句またはNULLです。

compname

コンパイラ名です。

compopts

コンパイラ・オプションまたはNULLです。

nlslang

「グローバリゼーション・サポート」形式の区切り10進コードページです。

wind

警告インジケータです。.

wmsgbsiz

警告メッセージのブロック・サイズ(バイト)です。

wmsgblk

警告メッセージ・ブロックです。 これはOUTパラメータです。

デフォルトとオプション・パラメータ

「表C-10」は、MAKE_NUMBER_TO_RAW_FORMAT関数のデフォルトとオプションのパラメータを記述します:

表C-10オプションのデフォルト・パラメータ: MAKE_NUMBER_TO_RAW_FORMAT

パラメータ 説明

maskopts

nullが許可され、デフォルト値はありません

envrnmnt

nullが許可され、デフォルト値はありません

compopts

nullが許可され、デフォルト値はありません

戻り値

NUMBER_TO_RAWRAW(2048)フォーマット変換仕様。

エラーと警告メッセージ

ORA-xxxxエラーまたは警告メッセージが表示された場合は、Oracle Databaseエラー・メッセージガイドを参照して、その説明および処理方法に関する情報を入手してください。

RAW_TO_NUMBER_FORMAT

RAW_TO_NUMBER_FORMATは、RAW_TO_NUMBER変換形式r2nfmtに従って、リモート・ホストの内部形式のRAWバイト文字列rawvalをOracle番号に変換します。

構文

function RAW_TO_NUMBER_FORMAT (rawval IN RAW,
 r2nfmt IN RAW) RETURN NUMBER;

ここで、「表C-11」はこの関数のパラメータを記述します:

表C-11 RAW_TO_NUMBER_FORMATファンクションのパラメータ

パラメータ 説明

rawval

変換されるリモート・ホスト・データです。

r2nfmt

MAKE_RAW_TO_NUMBER_FORMATから返されるRAW(2048)フォーマット指定です。

デフォルト

なし

戻り値

値がrに対応するOracle番号。

エラーと警告メッセージ

ORA-xxxxエラーまたは警告メッセージが表示された場合は、Oracle Databaseエラー・メッセージガイドを参照して、その説明および処理方法に関する情報を入手してください。

NUMBER_TO_RAW_FORMAT

NUMBER_TO_RAW_FORMATは、NUMBER_TO_RAW変換フォーマットn2rfmtに従って、宣言された精度とスケールのOracle番号numvalをリモート・ホスト内部フォーマットのRAWバイト・ストリングに変換します。

構文

function NUMBER_TO_RAW_FORMAT (numval IN NUMBER,
 n2rfmt IN RAW) RETURN RAW;

「表C-12」がこの関数のパラメータを記述する場所:

表C-12 NUMBER_TO_RAW_FORMATファンクションのパラメータ

パラメータ 説明

numval

変換されるOracle番号です。

n2rfmt

MAKE_NUMBER_TO_RAW_FORMATから返されるRAW(2048)フォーマット指定です。

デフォルト

なし

戻り値

値がnに対応するRAW値。

エラーと警告メッセージ

ORA-xxxxエラーまたは警告メッセージが表示された場合は、Oracle Databaseエラー・メッセージガイドを参照して、その説明および処理方法に関する情報を入手してください。

WMSGCNT

WMSGCNTwmsgblkをテストして、存在する場合、いくつの警告が存在するかを判別します。

構文

function WMSGCNT (wmsgblk IN RAW) RETURN BINARY_INTEGER;

ここで、「表C-13」はこの関数のパラメータを記述します。

表C-13 WMSGCNT関数のパラメータ

パラメータ 説明

wmsgblk

次のいずれかの関数から返される警告メッセージ・ブロックです:

  • MAKE_NUMBER_TO_RAW_FORMAT

  • MAKE_RAW_TO_NUMBER_FORMAT

  • NUMBER_TO_RAW

  • RAW_TO_NUMBER

デフォルト

なし

戻り値

RAW wmsgblkに存在する警告の数に等しいBINARY_INTEGER値。

「表C-14」は可能な戻り値をリストします:

表C-14 WMSGCNTの戻り値

説明

>0

wmsgblkに存在する警告の数を示します。

0

wmsgblkに警告がないことを示します。

エラーと警告メッセージ

ORA-xxxxエラーまたは警告メッセージが表示された場合は、Oracle Databaseエラー・メッセージガイドを参照して、その説明および処理方法に関する情報を入手してください。

WMSG

WMSGは、wmsgblkからwmsgitemで指定された警告メッセージを抽出します。

構文

function WMSG (wmsgblk IN RAW,
 wmsgitem IN BINARY_INTEGER,
 wmsgno OUT BINARY_INTEGER,
 wmsgtext OUT VARCHAR2,
 wmsgfill OUT VARCHAR2) RETURN BINARY_INTEGER;

「表C-15」がこの関数のパラメータを記述する場所:

表C-15 WMSG関数のパラメータ

パラメータ 説明

wmsgblk

次のいずれかの関数から返されたRAW警告メッセージ・ブロックです:

  • MAKE_NUMBER_TO_RAW_FORMAT

  • MAKE_RAW_TO_NUMBER_FORMAT

  • NUMBER_TO_RAW

  • RAW_TO_NUMBER

wmsgitem

BINARY_INTEGERの値で、抽出する警告メッセージを指定します。最初の警告の0から、n番目の警告のnから1を引いた番号です。

wmsgno

警告番号のBINARY_INTEGER (16進数)値を含むOUTパラメータです。 この値は、10進数に変換された後、Oracle Databaseエラー・メッセージマニュアルに記録されます。

wmsgtext

ORA-xxxxx形式の完全形式の警告メッセージを含むVARCHAR2 OUTパラメータ値です。ここで、xxxxxはOracle Databaseエラー・メッセージマニュアルに記載されている10進数の警告番号です。

wmsgfill

次の形式で警告メッセージに代入される警告メッセージ・パラメータのリストを含むVARCHAR2 OUTパラメータ値です:

warnparm1;;warnparm2;;...;;warnparmn

各警告パラメータはダブル・セミ・コロンで区切られています。

デフォルト

なし

戻り値

ステータス戻りコードを含むBINARY_INTEGER値。

戻りコードが"0"の場合は、wmsgnowmsgtext、およびwmsgfillが割り当てられて有効であることを示します。

エラーと警告メッセージ

ORA-xxxxエラーまたは警告メッセージが表示された場合は、Oracle Databaseエラー・メッセージガイドを参照して、その説明および処理方法に関する情報を入手してください。

「表C-16」は、受信可能なエラー・メッセージを示します:

表C-16 WMSG関数のエラー

エラー 説明

-1

wmsgitemで指定された警告がwmsgblkに見つかりませんでした。

-2

無効なメッセージ・ブロックを示します。

-3

wmsgblk が小さすぎてwmsgitemに関連付けられている警告が含まれていないことを示しています。 この特定のwmsgitemには、警告メッセージの一部または全部が表示されることがあります。

-4

置換された警告パラメータが多すぎることを示します。

NUMBER_TO_RAWおよびRAW_TO_NUMBERの引数値

この表は、NUMBER_TO_RAWRAW_TO_NUMBERおよび関連する関数の書式引数の有効な値をリストしています。 以下は、有効なCOBOLピクチャ・マスクの例です。 任意の有効なCOBOLピクチャ・マスクを使用することができます。 COBOLピクチャ・マスクの説明については、該当するIBM COBOLプログラミング・ガイドを参照してください。

mask: COBOL picture mask 

  PIC  9(n)         where 1 <= n   <= 18 
  PIC S9(n)         where 1 <= n   <= 18 
  PIC  9(n)V9(s)    where 1 <= n+s <= 18 
  PIC S9(n)V9(s)    where 1 <= n+s <= 18 
  PIC S9999999V99 
  PIC V99999 
  PIC SV9(5) 
  PIC  999.00 
  PIC  99/99/99 
  PIC  ZZZ.99 
  PIC  PPP99 
  PIC +999.99 
  PIC  999.99+ 
  PIC -999.99 
  PIC  999.99- 
  PIC $$$$$,$$$.99 
  PIC $9999.99DB 
  PIC $9999.99CR 
     
maskopts: COBOL picture mask options 
 
  COMP 
  USAGE IS COMP 
  USAGE IS COMPUTATIONAL 
  COMP-3
  USAGE IS COMP-3 
  USAGE IS COMPUTATIONAL-3 
  COMP-4
  USAGE IS COMP-4 
  USAGE IS COMPUTATIONAL-4 
  DISPLAY 
  USAGE IS DISPLAY 
  SIGN IS LEADING 
  SIGN IS LEADING SEPARATE 
  SIGN IS LEADING SEPARATE CHARACTER 
  SIGN IS TRAILING 
  SIGN IS TRAILING SEPARATE 
  SIGN IS TRAILING SEPARATE CHARACTER 
  
envrnmnt: COBOL environment clause 
 
  CURRENCY SIGN IS x where x is a valid currency sign character
  DECIMAL-POINT IS COMMA 
 
compname: COBOL compiler name 
 
 
  IBMVSCOBOLII 
 
compopts: COBOL compiler options 
 
  (no values are supported at this time)