BEGIN DECLARE SECTION 语句
BEGIN DECLARE SECTION 语句标志着 SQL 声明部分的开始。 SQL 声明部分包含对主机变量的声明,这些变量可以在程序中的 SQL 语句中用作主机变量。
调用 BEGIN DECLARE SECTION
此语句只能嵌入在应用程序中。 这不是一个可执行的语句。 不得在Java™或REXX中指定。
授权 BEGIN DECLARE SECTION
不需要执行任何操作。
语法 BEGIN DECLARE SECTION
描述 BEGIN DECLARE SECTION
根据宿主语言的规则,变量声明可以出现在应用程序中的任何位置,因此可以在应用程序中编写 BEGIN DECLARE SECTION 语句。 它用于指示一个宿主变量声明部分的开始。 一个宿主变量部分的结尾是 END DECLARE SECTION 语句,详见 END DECLARE SECTION 语句。
仅当主机语言为C或指定了STDSQL(YES) SQL处理选项时,预编译器才会执行以下规则:
- 在SQL语句中引用的变量必须在源程序的主变量声明部分中声明,该部分适用于除Java和REXX之外的所有主机语言。 此外,每个变量的声明必须出现在对变量的首次引用之前。 在Java中,无需使用这些语句即可声明宿主变量,而在REXX中则根本无需声明。
- BEGIN DECLARE SECTION和END DECLARE SECTION语句必须成对出现,且不能嵌套。
- 宿主变量声明部分只能包含宿主变量声明、包含宿主变量声明的SQL INCLUDE语句或DECLARE VARIABLE语句。
开始声明部分注意事项
仅当指定了STDSQL(YES)选项或主机语言为C时,才需要主机变量声明部分。 然而,声明部分可以针对任何主机语言进行指定,以便源程序符合 IBM® SQL。 如果使用了声明部分,但不是必需的,那么声明部分之外的变量不能与声明部分中的变量同名。
如果您正在使用 Db2 precompiler ,请确保在程序中,宿主变量和宿主变量数组的名称是唯一的,即使变量和变量数组位于不同的块、类、过程、函数或子例程中。 您可以使用结构名称限定名称,使其独一无二。
示例 BEGIN DECLARE SECTION
EXEC SQL BEGIN DECLARE SECTION;
-- host variable declarations
EXEC SQL END DECLARE SECTION;
