機械翻訳について

D データ型の変換

PGAUツールを使用してTIPを生成する場合、および PL/SQL関数とUTL_RAW関数およびUTL_PG関数を使用してカスタムTIPを開発する場合は、データ型およびデータ形式を正しく変換する必要があります。

ヒントに関連するデータ型変換について学習するには、次のトピックを参照してください:

D.1 長さチェック

PGAUで生成されたTIPは、送受信されるすべてのパラメータの最後に長さチェックを実行します。

「表D-1」は、PGAUによって生成される長さパラメータのリストを提供します:

表D-1 長さパラメータ

パラメータ 説明

予想される長さ

ヒントの生成時にPGAUによって計算されます。

長さを変換

変換された各フィールドのヒントによって合計されます。

送信長

送信された送信データの長さであり、送信パラメータの実際の長さにも等しくなります。

受信の長さ

送信された受信データの長さです。

送信済パラメータの変換長が予期した長さと等しくない場合、例外が発生します。 これは、送信フィールド変換が多すぎるか少なすぎる場合に発生します。

受信したパラメータの変換長が受信した長さと一致しない場合、例外が発生します。 これらの長さの例外は、変換が少なすぎるか多すぎると発生します。

受信したパラメータの予期される長さが変換または受信した長さと等しくなく、データ変換トレースが有効な場合、警告が発行されます。 これは、最大長のレコードが想定されるが、短いレコードが転送され、正しく変換される場合に発生します。

D.1.1 長さ32Kを超えるパラメータ

PGAUは、32Kバイトを超える個々のデータ・パラメータの転送をサポートするTIPを生成します。

PGAUには、 PGAU GENERATE処理でデータ・パラメータの最大長が32Kを超えることが検出されると、このサポートが自動的に含まれます。

このサポートは、 PG DDに配置されたデータ定義によって駆動され、ユーザーが選択することはできません。 サポートを含めるには、データ定義が実際または32Kを超える可能性がある必要があります。 サポートを削除するには、パラメータの長さを32K未満に減らし、データをREDEFINEし、TIPを再度GENERATEする必要があります。

このサポートでは、このような境界を越えるフィールド変換の前後に、32Kバッファ境界を越えるフィールド位置をテストします。 繰返しグループの場合、これは多数のフィールド、繰返しグループの場合、または単純な線形レコードの場合、少数のフィールドです。

各テストおよび対応するバッファ管理ロジックにより、オーバーヘッドが増加します。

ノート:

REDEFINE句のターゲットは、以前に処理されたバッファに存在できません。 このようなREDEFINE句を含むフィールドの実行時TIP処理では、予測できない結果が得られます。

D.2 変換

PGAUによって生成される PG DDおよび TIPは、データの定義時にIBMVSCOBOLIIとして指定された COBOLをサポートしています。

D.2.1 USAGE(PASS)

PGAU DEFINE DATA文にUSAGE(PASS)が指定されている場合、次のデータ型および書式変換がサポートされます:

  • PIC X

  • PIC G

PIC Xデータ型変換

PGAUヒントは、COBOL Xデータ型を同じ文字長のPL/SQL CHARデータ型に変換します。 グローバリゼーション・サポートの文字セット変換も実行されます。

ノート: COBOLには、可変長データ専用に指定されたデータ型がありません。 COBOLでは、PIC 9の長さフィールドを含むサブグループとして表され、その後にPIC X文字フィールドが続きます。 たとえば:

10 NAME.

15 LENGTH PIC S9(4).

15 LETTERS PIC X(30).

このコンテキストでは、S9(4)フィールドの後にXフィールドが続くすべてのインスタンスが常に可変長データであることは保証できません。 前述のCOBOLグループNAMEVARCHARに変換するPGAUヒントではなく、TIPはネストされたPL/SQLレコードを次のように構成します:

TYPE NAME_typ is RECORD (
  LENGTH NUMBER(4,0),
  LETTERS CHAR(30));
TYPE ... is RECORD(
  ...
  NAME NAME_typ,
  ...

VARCHARが必要な場合、NAME.LETTERS からNAME.LENGTH文字を抽出し、結果をPL/SQL VARCHARに割り当てることは、クライアント・アプリケーションの責任(リモート・ホスト・データの特定の知識に基づく)です。

文字セットの変換は、シングル・バイト・エンコードに対して実行されます:

  • リモート・ホスト文字データ。次のいずれかを使用します:

    • トランザクション全体のDEFINE TRANSACTION NLS_LANGUAGE文字セット、または

    • 単一のフィールドのREDEFINE DATA REMOTE_LANGUAGE文字セット(指定されている場合)。

  • ローカルOracle文字データ。次のいずれかを使用します:

    • トランザクション全体の統合サーバーのLANGUAGE 文字セット、または

    • 単一のフィールドのREDEFINE DATA LOCAL_LANGUAGE文字セット(指定されている場合)。

PIC Gデータ型変換

PGAUで生成されたTIPは、COBOL Gデータ型を同じ長さのPL/SQL VARCHAR2データ型に変換し、文字位置ごとに2バイトを許可します。

文字セット変換は、ダブルバイトおよびマルチバイト・エンコードに対して実行されます:

  • リモート・ホスト文字データ。次のいずれかを使用します:

    • トランザクション全体のDEFINE TRANSACTION REMOTE_MBCS文字セット、または

    • 単一のフィールドのREDEFINE DATA REMOTE_LANGUAGE文字セット(指定されている場合)。

  • ローカルOracle文字データ。次のいずれかを使用します:

    • トランザクション全体のDEFINE TRANSACTION LOCAL_MBCS文字セット、または

    • 単一のフィールドのREDEFINE DATA LOCAL_LANGUAGE文字セット(指定されている場合)。

英数字およびDBCS編集フィールド位置

「表D-2」は、 PGAUが、シンボルの定義を提供することによって、データ型変換で COBOLシンボルをどのように解釈するかを示しています。

表D-2 COBOLシンボル定義

COBOLシンボル COBOL記号のOracle定義 - データ・コンテンツ

'B'

空白(使用状況に応じて1バイトのSBCSまたは2バイトのDBCS)

'0'

ゼロ(1バイトのSBCS)

'/'

スラッシュ(1バイトのSBCS)

'G'

ダブルバイト

リモート・ホストから受信したCOBOL文データの編集位置は、フィールド全体とともにPGAUによって変換され、対応するPL/SQL VARCHAR2出力変数でクライアント・アプリケーションに渡されます。

編集シンボルが存在する場合、それらは、リモート・ホスト・フィールドに指定されたCOBOLデータ内容と長さが含まれていることを意味するように解釈されます。 編集位置はデータ・フィールドの長さに含まれますが、すべてのフィールド位置の変換はPGAUによって単一の文字列として処理され、編集されたバイト位置に対して特別なスキャンや変換は行われません。

リモート・ホストに送信されるCOBOL文データの編集位置は、クライアント・アプリケーションから渡されるPL/SQL VARCHAR2入力変数全体とともに、PGAUによって変換されます。

「表D-3」は、PGAUによるCOBOLデータ型の変換方法の例を示しています:

表D-3 COBOL-PGAU変換

COBOLデータ型 PGAUによる変換の説明

PIC XXXBBXX

長さが7バイトの英数字フィールドであり、単一のUTL_RAW.CONVERTコールで変換されます。 Bで示されるバイト位置の内容に対して、テストや変換は行われません。 COBOL言語ルールでは、これらの位置がリモート・ホストに指定された文字セットに"blank"を含むことが示されていますが、実際に存在するデータはユーザーの責任です。

PIC GGBGGG

DBCSフィールドの長さは12バイトで、単一のUTL_RAW.CONVERTコールで変換されます。 Bで示されるバイト位置の内容に対して、テストや変換は行われません。 COBOL言語ルールでは、これらの位置がリモート・ホストに指定された文字セットに"blank"を含むことが示されていますが、実際に存在するデータはユーザーの責任です。

PIC 9

PGAUヒントは、COBOL 9データ型を、同じ精度およびスケールのPL/SQL NUMBERデータ型に変換します。 グローバリゼーション・サポートの文字セット変換は、符号、通貨記号およびスペースでも実行されます。

次の内容がサポートされています。

  • COMPUTATIONAL (binary)

  • COMPUTATIONAL-3 (パック10進数)

  • COMPUTATIONAL-4 (binary)

  • DISPLAY (ゾーン10進数)

DISPLAYデータ型では、次の符号指定がサポートされています:

  • SEPARATE [CHARACTER]

  • LEADING

  • TRAILING

数値データ型変換の詳細は、「UTL_PGインタフェース」NUMBER_TO_RAWおよびRAW_TO_NUMBER引数値を参照してください。

COMPUTATIONAL-1 およびCOMPUTATIONAL-2 (浮動小数点)データ型はサポートされていません。

FILLER

COBOL FILLERフィールドは、要素名FILLERのスペルによってPGAUによって認識されます。 PGAUでは、このような要素のデータ変換は生成されませんが、リモート・ホスト・トランザクションと交換されるレコード内のオフセットを保持するために、領域を正しく割り当てる必要があります。

RENAMESまたはREDEFINES定義がFILLER要素をカバーしている場合、PGAUは、RENAMESまたはREDEFINES変数のコンポーネントとして参照されるときに、同じ領域のデータ変換文を生成します。 このようなデータ変換では、FILLER定義の境界ではなく、RENAMESまたはREDEFINES定義の書式のみが反映されます。

フォーマット変換

「表D-4」は、フォーマット変換を示します:

表D-4 フォーマット変換の説明

項目 説明

JUSTIFIED | JUSTIFIED RIGHT

これにより、INパラメータとOUTパラメータの両方について、PIC Xデータ型変換で説明されているように、リモート・ホスト・トランザクション・データが文字データ型に従ってPL/SQL CHARデータ型に変換されます。

アプリケーションから渡されるIN パラメータ・データは、その右端の空白から取り除かれ、必要に応じて左側にパディングされます。 その後、リモート・ホストに送信されます。

OUT パラメータ・データは、リモート・ホストから受信されるとおりに整列され、左側で必要に応じて空白が埋められます。 その後、アプリケーションに渡されます。

JUSTIFIED LEFT

これにより、TIPの生成中に警告が発行されます。 位置合せは実行されません。 これはドキュメントとして扱われます。

リモート・ホスト・トランザクション・データは、INパラメータとOUTパラメータの両方について、PIC Xデータ型変換で説明されているように、文字データ型に従ってPL/SQL CHARデータ型に変換されます。

LENGTH IS field-2

これは、PG DDに格納されているデータ定義に対するOracle拡張機能です。 この拡張はPGAUコンテキストにのみ存在し、有効なCOBOL構文ではありません。

この拡張の目的は、TIP変換ロジックによって可変長文字データをより効率的に処理するための手段を提供することです。 これは、可変長のPIC XフィールドをPIC X(1) OCCURS DEPENDING ON field-2として定義する代替方法です。ここで、field-2はフィールドの長さです。 この拡張では、同じフィールドをPIC X(5000) LENGTH IS field-2として定義できます。ここで、field -2はフィールドの長さです。 TIPは、ループを使用して一度に1文字ずつ変換を行うのではなく、1つのUTL_RAW.CONVERTコールでフィールドに対して長さを取得し、文字セット変換を実行できます。

この構成の使用は、COBOLプログラムには影響しません。 PIC X (またはPIC G)フィールドは、COBOLに関するかぎり固定長のままであるため、データの位置は変更されず、ゲートウェイとOLTP間で転送されるデータの量も変更されません。 ただし、フィールドがCOBOL定義の最後のフィールドである場合、COBOLプログラムを変更して、LENGTH IS句によって参照されるfield-2フィールドに設定された長さを満たすために必要なバイト数のみを送信できます。

LENGTH IS句は、PIC XおよびPIC Gフィールドに対してのみ指定でき、これらのフィールドのピクチャ・マスクに編集文字を含めることはできません。

OCCURS n TIMES

これにより、一連の PL/SQL変数の'n'インスタンスを、リモート・ホスト・レコード内の繰返しグループ領域に、または繰返しグループ領域から変換し、その領域のサイズがグループの長さに'n'の繰返しに等しくなります。 PGAUで生成されたTIPは、TABLEのPL/SQL RECORDを使用して、繰返しグループ内のフィールドに配列のような添字を実装します。 PL/SQLは単一のディメンションTABLEをサポートし、その結果、PGAUは単一のレベルのOCCURSグループのみをサポートします。 ネストされたOCCURSグループはサポートされていません。 実行される変換およびフォーマットは、PIC Xデータ型変換およびフォーマット変換で説明されているように、繰返しグループ内で定義された各サブフィールドのCOBOLデータ型によって決まります。

OCCURS m TO n TIMES DEPENDING ON field-2

これにより、 PL/SQL変数のセットの'n'インスタンスではなく、少なくとも'm'が、リモート・ホスト・レコード内の繰返しグループ領域に対して変換されます。この領域のサイズは、指定されたフィールドに含まれる繰返し回数のグループ長に等しくなります。 PGAUで生成されたTIPは、TABLEのPL/SQL RECORDを使用して、繰返しグループ内のフィールドに配列のような添字を実装します。 PL/SQLは単一のディメンションTABLEをサポートし、その結果、PGAUは単一のレベルのOCCURS DEPENDING ONグループのみをサポートします。 ネストされたOCCURS DEPENDING ONグループはサポートされていません。 実行される変換およびフォーマットは、PIC Xデータ型変換およびフォーマット変換で説明されているように、繰返しグループ内で定義された各サブフィールドのCOBOLデータ型によって決まります。

範囲変換: PGAUで生成されたTIPでは、1からTIMESの上限が指定されている範囲の'FOR ... LOOP'アルゴリズムが使用されます。 TIPがDIAGNOSE(PKGEX(DC))オプションで生成された場合、OCCURS DEPENDING ON繰返しグループを反復するPL/SQL FOR文の前にIFテストが行われ、TIP実行時にDEPENDING ONフィールドに、下限が1である必要のない、指定された範囲内の数値が含まれていることが確認されます。 このテストが失敗すると、例外が発生します。

RENAMES item-2 THRU item-3

単一の PL/SQL変数宣言は、RENAMES定義に対応します。 RENAMES定義でカバーされるすべてのサブフィールドがPIC Xの場合、PL/SQL変数はVARCHAR2です。 それ以外の場合は、PIC以外のXサブフィールドによって、PL/SQL変数のデータ型がRAWになります。

名前が変更されたフィールドの長さは、元のフィールドによって長さが決まるため、パラメータ・データ全体の長さには影響しません。

REDEFINES item-2 WHEN item-3=value

'WHEN item-3=value'は、PG DDに格納されているデータ定義に対するOracle拡張機能です。 この拡張は、PGAコンテキストにのみ存在し、有効なCOBOL構文ではありません。

この拡張の目的は、ゲートウェイ管理者またはアプリケーション開発者が再定義を適用する基準を指定するための手段を提供することです。 たとえば、レコード・タイプ・フィールドは多くの場合レコードに存在し、処理されるレコード・タイプに応じて異なるレコード・フォーマットが適用されます。 再定義が適用されるタイプ値の指定は、通常、データ定義ではなくトランザクション・プログラミング・ロジックに組み込まれます。 TIPで再定義されたフォーマットに対して実行する変換を指定するには、WHEN基準がPGAデータ定義に追加されました。

PGAUは、REDEFINES定義の対象となる下位要素に対して名前とデータ型に対応するPL/SQLネストされたレコード宣言を生成します。 PIC Xデータ型変換で説明されている標準のPGAUデータ型の決定。

LEVEL 01 REDEFINEは無視されます:

これにより、リモート・ホスト・コピーブックに、TIPでそのようなバッファを定義したり、定義の入力として使用されるコピーブックを変更することなく、他のトランザクション作業ストレージ・バッファをREDEFINEする定義を含めることができます。

SYNCHRONIZED | SYNCHRONIZED RIGHT

これにより、数値フィールドは、リモート・ホスト環境、コンパイラ言語、およびデータ型の指示に従って境界に整列されます。

数値変換は、INパラメータとOUTパラメータの両方について、数値データ型に従って整列されたデータ・フィールドに対して実行されます(PIC Xデータ型変換を参照)。

SYNCHRONIZED LEFT

これにより、TIPの生成中に警告が発行され、再編成は実行されません。 これはドキュメントとして扱われます。

数値変換は、INパラメータとOUTパラメータの両方について、数値データ型に従って整列されたデータ・フィールドに対して実行されます(PIC Xデータ型変換を参照)。

D.2.2 USAGE(ASIS)

PGAU DEFINE DATA文でUSAGE(ASIS)が指定されている場合、変換は実行されません。 したがって、このような各フィールドは、同じバイト長のPL/SQL RAWに単純にコピーされます。 変換、変換または再フォーマットは行われません。

D.2.3 USAGE(SKIP)

PGAU DEFINE DATA文で USAGE(SKIP)が指定されている場合、データ交換は実行されません。 データは、存在しないかのようにスキップされます。 したがって、このようなフィールドは PG DDから選択されず、TIPロジックに反映されず、リモート・ホストと交換されるデータ・ストリームに存在しないものと想定されます。 "SKIP"の目的は、PG DDに定義があるが、アクティブではないことです。これは、リモート・ホストがフィールドを削除したか、まだフィールドを含んでいないためです。 SKIP では、一部のフィールドがリモート・ホストに存在しない場合でも、既存のデータ定義を使用できます。

D.2.4 PL/SQL命名アルゴリズム

デリミタ

レコード、グループおよび要素名のCOBOL特殊文字は、PGAU DEFINEがPG DDに定義を挿入するときに変換され、PG DDから定義が選択されている場合はPGAU GENERATEによって変換されます。 特殊文字は次のように変換されます:

  • ハイフンはアンダースコア(_)に変換されます

  • 期間が削除されました

修飾複合名

PL/SQL変数名は完全修飾され、次から構成されます:

  • PL/SQLレコード名は、レベル01または77 COBOLレコード名に対応する左端の修飾子です。

  • COBOLグループ名に対応するPL/SQLネストされたレコード名。

  • データ型のCOBOL要素に対応するPL/SQLネストされたフィールド:

    • 非反復COBOL要素に対応するCHAR またはNUMBER

    • OCCURSまたはOCCURS DEPENDING ONグループに含まれるCOBOL要素に対応するTABLE (COBOL繰返しフィールドは、TABLEのPL/SQLネストされた RECORDに対応します)。

アプリケーションをコールして PL/SQL変数を参照する場合、TIPパッケージ名の先頭に左端の修飾子を付ける必要があります。 したがって、次に対応するPL/SQL変数への完全修飾参照です:

  • SKILL は次のとおりです:

tipname.EMPREC_Typ.SKILL(SKILL_Key)
  • HOME_ADDRESS ZIPは次のとおりです:

tipname.EMPREC_Typ.HOME_ADDRESS.ZIP.FIRST_FIVE
tipname.EMPREC_Typ.HOME_ADDRESS.ZIP.LAST_FOUR 

切り捨てられた名前と一意でない名前

PGAUでは、名前が次の値を超えると、フィールド名と対応するPL/SQL変数名が切り捨てられます:

  • 集計レコードまたはグループ内のフィールドには26バイト

    これは、各フィールドまたはPL/SQL変数名にサフィクスを付ける必要があるためです:

    • "_Typ"(グループ名)

    • 繰返しグループを持つ要素名の場合は"_Tbl"

    または

  • 任意の名前のPL/SQL制限が30バイトであるため、30バイト

    右端の4文字は切り捨てられます。 これにより、名前が26文字に一意であるという制限が課されます。

名前が重複しています

COBOLではレコード内で同じグループ名またはエレメント名を繰り返し定義でき、上位レベルのグループのコンテキストによって名前が一意に修飾されます。 ただし、PGAUで生成されたTIPは、下位グループおよびフィールドのネストされたPL/SQLレコードを参照するPL/SQLレコード変数を宣言するため、ネストされたPL/SQLレコード・タイプの名前が重複する可能性があります。

次のCOBOL定義の場合、ZIPはCOBOLで一意に修飾されますが、対応するPL/SQL宣言にはZIPのネストされたレコード・タイプが重複していることに注意してください。

01  EMPREC.     
    05 HIREDATE             PIC X(8).   
    05 BIRTHDATE            PIC X(8). 
    05 SKILL                PIC X(12) OCCURS 4.  
    05 EMPNO                PIC 9(4).
    05 EMPNAME.  
       10 FIRST-NAME        PIC X(10).
       10 LAST-NAME         PIC X(15).   
    05 HOME-ADDRESS. 
       10 STREET            PIC X(20).  
       10 CITY              PIC X(15). 
       10 STATE             PIC XX. 
       10 ZIP.   
          15 FIRST-FIVE     PIC X(5).  
          15 LAST-FOUR      PIC X(4).   
    05 DEPT                 PIC X(45).    
    05 OFFICE-ADDRESS.          
       10 STREET            PIC X(20).  
       10 CITY              PIC X(15).
       10 STATE             PIC XX. 
       10 ZIP.                         
          15 FIRST-FIVE     PIC X(5).     
          15 LAST-FOUR      PIC X(4).  
    05 JOBTITLE             PIC X(20).

PGAUは、重複するネストされたレコード・タイプの宣言を回避し、次のPL/SQLを生成します:

SKILL_Key BINARY_INTEGER;                                                                                 
TYPE SKILL_Tbl is TABLE of CHAR(12) 
                     INDEX by BINARY_INTEGER;                                                                                           
      TYPE EMPNAME_Typ is RECORD (   
           FIRST_NAME            CHAR(10),   
                       LAST_NAME                           CHAR(15));                                                                                    
      TYPE ZIP_Typ is RECORD (  
           FIRST_FIVE            CHAR(5), 
                     LAST_FOUR                         CHAR(4));                                                                               
      TYPE HOME_ADDRESS_Typ is RECORD (
           STREET                CHAR(20), 
           CITY                  CHAR(15),  
           STATE                 CHAR(2), 
                      ZIP                                     ZIP_Typ);                                                                                 
      TYPE OFFICE_ADDRESS_Typ is RECORD (   
           STREET                CHAR(20),
           CITY                  CHAR(15),  
           STATE                 CHAR(2),   
           ZIP                   ZIP_Typ); 
                                                                                       
      TYPE EMPREC_Typ is RECORD (  
           HIREDATE              CHAR(8), 
           BIRTHDATE             CHAR(8),  
           SKILL                 SKILL_Tbl, 
           EMPNO                 NUMBER(4,0),   
           EMPNAME               EMPNAME_Typ, 
           HOME_ADDRESS          HOME_ADDRESS_Typ,
           DEPT                  CHAR(45),
           OFFICE_ADDRESS        OFFICE_ADDRESS_Typ,
           JOBTITLE              CHAR(20));

ただし、複数のネストされたグループが同じ名前を持ち、異なるサブフィールドを持つ場合(次のZIPを参照):

05 HOME-ADDRESS.   
      10 STREET             PIC X(20). 
      10 CITY               PIC X(15).   
      10 STATE              PIC XX. 
      10 ZIP.                     
         15 LEFTMOST-FOUR   PIC X(4).
         15 RIGHMOST-FIVE   PIC X(5).    
05 DEPT                     PIC X(45).   
05 OFFICE-ADDRESS.  
   10 STREET                 PIC X(20). 
   10 CITY                   PIC X(15). 
   10 STATE                  PIC XX.  
   10 ZIP.                     
      15 FIRST-FIVE          PIC X(5). 
      15 LAST-FOUR           PIC X(4).  
05 JOBTITLE                  PIC X(20).   
         

PGAUは、名前、データ型またはオプションでサブフィールドが異なる宣言ごとに、PL/SQLネストされたレコード・タイプの名前を変更します。 2番目の宣言(ZIP_Typ02)に02が追加され、OFFICE_ADDRESSで参照されることに注意してください。

TYPE EMPNAME_Typ is RECORD (    
    FIRST_NAME              CHAR(10),
      LAST_NAME                       CHAR(15));                                                                                 
TYPE ZIP_Typ is RECORD (
    LEFTMOST_FOUR         CHAR(4),  
     RIGHTMOST_FIVE        CHAR(5));                                                                 
    TYPE HOME_ADDRESS_Typ is RECORD (    
    STREET                CHAR(20), 
    CITY                  CHAR(15),
    STATE                 CHAR(2),
       ZIP                                  ZIP_Typ);                                                                                  
TYPE ZIP_Typ02 is RECORD ( 
    FIRST_FIVE            CHAR(5), 
       LAST_FOUR                       CHAR(4));                                                                                 
TYPE OFFICE_ADDRESS_Typ is RECORD ( 
    STREET                CHAR(20),   
    CITY                  CHAR(15),   
    STATE                 CHAR(2), 
       ZIP                                  ZIP_Typ02);                                                                                
TYPE EMPREC_Typ is RECORD (
    HIREDATE              CHAR(8), 
    BIRTHDATE             CHAR(8),  
    SKILL                 SKILL_Tbl,   
    EMPNO                 NUMBER(4,0),  
    EMPNAME               EMPNAME_Typ, 
    HOME_ADDRESS          HOME_ADDRESS_Typ, 
    DEPT                  CHAR(45),    
    OFFICE_ADDRESS        OFFICE_ADDRESS_Typ,   
    JOBTITLE               CHAR(20));  

また、次に対応するPL/SQL変数への完全修飾参照です:

  • HOME_ADDRESS.ZIPは次のとおりです:

    tipname.EMPREC_Typ.HOME_ADDRESS.ZIP.LEFTMOST_FOUR
    tipname.EMPREC_Typ.HOME_ADDRESS.ZIP.RIGHTMOST_FIVE 
    
  • OFFICE_ADDRESS.ZIPは次のとおりです:

    tipname.EMPREC_Typ.OFFICE_ADDRESS.ZIP.FIRST_FIVE
    tipname.EMPREC_Typ.OFFICE_ADDRESS.ZIP.LAST_FOUR
    

ネストされたレコード・タイプ名ZIP_Typ02は、参照では使用されませんが、ネストされたレコードのPL/SQLの関連付けでは暗黙的です。