機械翻訳について

C UTL_PGインタフェース

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

トピック:

ノート:

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

C.1 UTL_PG関数

UTL_PGパッケージは、COBOL番号形式をOracle番号に変換し、Oracle番号をCOBOL番号形式に変換するための関数の完全なセットを提供するPL/SQLの拡張です。

UTL_PG変換形式RAWは、このリリースでは移植できません。 また、あるシステムでの変換形式RAWの生成と別のシステムへの転送はサポートされていません。

この項に示す関数は、標準のPL/SQL方法で呼び出されます:

package_name.function_name(arguments)

特にUTL_PGルーチンの場合、次のようになります:

UTL_PG.function_name(arguments)

次に示す各関数について、関数名、引数とそのデータ型、および戻り値のデータ型が提供されます。 特に指定しないかぎり、パラメータはOUTパラメータではなくINです。

C.1.1 共通パラメータ

次のUTL_PG関数は、同じような複数のパラメータを共有します:

  • RAW_TO_NUMBER

  • MAKE_NUMBER_TO_RAW_FORMAT

  • MAKE_RAW_TO_NUMBER_FORMAT

  • NUMBER_TO_RAW

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

C.1.1.1 共通入力パラメータ

「表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.1.1.2 共通出力パラメータ

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

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

パラメータ 説明

wmsgblk

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

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

C.1.2 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エラー・メッセージを参照してください。

C.1.3 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エラー・メッセージを参照してください。

C.1.4 MAKE_RAW_TO_NUMBER_FORMAT

MAKE_RAW_TO_NUMBER_FORMATは、RAWバイト文字列をmask, maskopts, envrnmnt, compname, compopts,およびnlslangで指定されたリモート・ホスト内部形式からOracleの同等の精度およびスケール数に変換するために使用されるRAW_TO_NUMBER形式変換仕様を作成します。

指定された変換がデータによって暗黙的に示された変換と競合する場合、または競合するフォーマット指定が指定されている場合は、警告が発行されます。

この関数は、UTL_PG.RAW_TO_NUMBER_FORMATに渡すことができる変換形式を含むRAW値を戻します。

mask, maskopts, envrnmnt, compnameおよび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エラー・メッセージガイドでその処理方法の説明と情報を参照してください。

C.1.5 MAKE_NUMBER_TO_RAW_FORMAT

MAKE_NUMBER_TO_RAW_FORMATは、mask, maskopts, envrnmnt, compname, compoptsおよびnlslang.で指定されたリモート・ホスト内部形式のRAWバイト文字列に宣言された精度およびスケールの数を変換するために使用される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エラー・メッセージガイドでその処理方法の説明と情報を参照してください。

C.1.6 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エラー・メッセージガイドでその処理方法の説明と情報を参照してください。

C.1.7 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エラー・メッセージガイドでその処理方法の説明と情報を参照してください。

C.1.8 WMSGCNT

WMSGCNTは、wmsgblkをテストして、存在する場合の警告の数を確認します。

構文

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エラー・メッセージガイドでその処理方法の説明と情報を参照してください。

C.1.9 WMSG

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

構文

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パラメータ値です。xxxは、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

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

C.2 NUMBER_TO_RAWおよびRAW_TO_NUMBER引数値

この表は、NUMBER_TO_RAWおよびRAW_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)