BEGIN DECLARE SECTION 语句

BEGIN DECLARE SECTION 语句标记主变量声明节的开始。

调用

此语句只能嵌入在应用程序中。 它不是可执行语句。 不得在 REXX 中指定此参数。

权限

不需要执行任何操作。

语法

Read syntax diagramSkip visual syntax diagramBEGIN DECLARE SECTION

描述

BEGIN DECLARE SECTION 语句可以在应用程序中编码,只要变量声明可以按照主语言的规则出现。 它用于指示主变量声明部分的开头。 主变量部分以 END DECLARE SECTION 语句结束。

规则

  • BEGIN DECLARE SECTION 和 END DECLARE SECTION 语句必须成对且不能嵌套。
  • SQL 语句不能包含在声明部分中。
  • SQL 语句中引用的变量必须在除 REXX 以外的所有主语言的声明节中声明。 此外,该部分必须出现在变量的第一个引用之前。 通常,不会在 REXX 中声明主变量, LOB 定位器和文件引用变量除外。 在此情况下,不会在 BEGIN DECLARE SECTION 中声明这些内容。
  • 在声明节外部声明的变量不应与在声明节中声明的变量同名。
  • LOB 数据类型的数据类型和长度必须以 SQL TYPE IS 关键字开头。

示例

  • 示例 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 语句中使用它们隐式定义的。