SQL 解説書

BEGIN DECLARE SECTION

BEGIN DECLARE SECTION ステートメントは、ホスト変数宣言セクションの始まりを示します。

呼び出し

このステートメントは、アプリケーション・プログラムに組み込む方法のみ可能です。 これは、実行可能ステートメントではありません。 また、REXX に指定することはできません。

許可

権限は不要です。

構文

>>-BEGIN DECLARE SECTION---------------------------------------><
 

説明

BEGIN DECLARE SECTION ステートメントは、 ホスト言語の規則に従って変数宣言が許される個所であれば、 アプリケーション・プログラムのどのような個所にもコーディングできます。 これは、ホスト変数宣言セクションの始まりを示すのに使用されます。 ホスト変数セクションは、 END DECLARE SECTION ステートメントで終了します (END DECLARE SECTION を参照)。

規則

例 1: C プログラムで、 ホスト変数 hv_smint (smallint)、hv_vchar24 (varchar(24))、hv_double (double)、 hv_blob_50k (blob(51200))、hv_struct (構造タイプ "struct_type" は blob(10240)) を定義します。

  EXEC SQL  BEGIN DECLARE SECTION;
    short                          hv_smint;
    struct {
       short hv_vchar24_len;
       char  hv_vchar24_value[24];
      }                              hv_vchar24;
    double                         hv_double;
    SQL TYPE IS BLOB(50K) hv_blob_50k;
    SQL TYPE IS struct_type AS BLOB(10k) hv_struct;
  EXEC SQL  END DECLARE SECTION;
 

例 2: COBOL プログラムで、ホスト変数 HV-SMINT (smallint)、 HV-VCHAR24 (varchar(24))、HV-DEC72 (dec(7,2))、および HV-BLOB-50k (blob(51200)) を定義します。

  WORKING-STORAGE SECTION.
        EXEC SQL BEGIN DECLARE SECTION  END-EXEC.
  01  HV-SMINT              PIC S9(4)       COMP-4.
  01  HV-VCHAR24.
      49 HV-VCHAR24-LENGTH  PIC S9(4)       COMP-4.
      49 HV-VCHAR24-VALUE   PIC X(24).
  01  HV-DEC72              PIC S9(5)V9(2)  COMP-3.
  01 HV-BLOB-50K            USAGE SQL TYPE IS BLOB(50K).
        EXEC SQL END DECLARE SECTION  END-EXEC.

例 3: FORTRAN プログラムで、ホスト変数 HVSMINT (smallint)、 HVVCHAR24 (char(24))、HVDOUBLE (double)、および HVBLOB50k (blob(51200)) を定義します。

  EXEC SQL  BEGIN DECLARE SECTION
    INTEGER*2      HVSMINT
    CHARACTER*24   HVVCHAR24
    REAL*8         HVDOUBLE
    SQL TYPE IS BLOB(50K)  HVBLOB50K
  EXEC SQL  END DECLARE SECTION
注:FORTRAN では、予期される値が 254 文字を超える場合には、 CLOB ホスト変数を使用する必要があります。

例 4: REXX プログラムで、ホスト変数 HVSMINT (smallint)、 HVBLOB50K (blob(51200))、および HVCLOBLOC (CLOB ロケーター) を定義します。

   DECLARE :HVCLOBLOC LANGUAGE TYPE CLOB LOCATOR
   call sqlexec 'FETCH c1 INTO :HVSMINT, :HVBLOB50K'

変数 HVSMINT と HVBLOB50K は、FETCH ステートメントで使用することによって、 暗黙に定義されています。


[ ページのトップ | 前ページ | 次ページ | 目次 | 索引 ]