在SQL语句中使用宿主变量

在嵌入式 SQL 语句中使用标量宿主变量来表示单个值。 宿主变量可用于存储检索到的数据,或传递待分配或用于比较的值。

使用宿主变量时,请遵守以下要求:
  • 在使用之前,您必须在主机程序中声明宿主变量的名称。 宿主变量的命名遵循宿主语言的命名规则。
  • 您可以使用一个主变量来表示一个数据值,但不能用它来表示表、视图或列名。 您可以在运行时使用动态 SQL 指定表、视图或列名。
  • 要在 SQL 语句中使用宿主变量,您可以指定任何根据宿主语言规则声明的有效宿主变量名称。
  • 在SQL语句中使用的宿主变量前必须有一个冒号(:),以便 Db2 能够区分变量名和列名。 当在SQL语句外使用宿主变量时,不要在变量前使用冒号。 PL/I 程序存在以下例外情况:若SQL语句满足下列任一条件,则该语句中的主机变量或主机变量数组前不得添加冒号:
    • SQL语句位于一个程序中,该程序还包含一个DECLARE VARIABLE语句。
    • 宿主变量是字符串表达式的一部分,但宿主变量并非字符串表达式的唯一组成部分。
  • 为了优化性能,请确保宿主语言声明与数据库中相关数据的数据类型尽可能匹配。
  • 对于 Db2 列与不同数据类型或长度的宿主变量之间的赋值和比较,可能会发生转换。
  • 更改开始如果您正在使用 Db2 precompiler ,请确保在程序中,宿主变量和宿主变量数组的名称是唯一的,即使变量和变量数组位于不同的块、类、过程、函数或子例程中。 您可以使用结构名称限定名称,使其独一无二。更改结束