BEGIN DECLARE SECTION 语句
BEGIN DECLARE SECTION 语句标记主变量声明节的开始。
调用
此语句只能嵌入在应用程序中。 它不是可执行语句。 不得在 REXX 中指定此参数。
权限
不需要执行任何操作。
语法
描述
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 语句中使用它们隐式定义的。
