assignment-statement(外部例程的SQL控制语句)
赋值语句为SQL参数或SQL变量赋值。
语法
描述
注意
赋值规则 :SQL程序中的赋值语句必须符合SQL赋值规则。 例如,目标数据和源数据的类型必须兼容。 分配和比较的分配规则。
当字符串被分配给一个固定长度的变量,而字符串的长度小于目标变量的长度属性时,字符串将在右侧填充必要数量的单字节或双字节空格。 当字符串被分配给一个变量,且字符串长度超过变量的长度属性时,值将被截断并返回警告。
在处理字符串变量的赋值时,不使用编码绑定选项。 例如,假设系统不使用混合或双字节字符集,且系统EBCDIC SBCS CCSID为37。 即使为过程包的编码绑定参数指定了CCSID 500,赋值时也不会进行字符转换。
如果将数字赋值给一个数字变量时,数字的某部分被截断,则该值将被截断并返回一个警告。
涉及SQL参数的任务:
- IN参数可以出现在赋值语句的左侧。 当控制权返回给调用方时,IN参数的原始值将传递给调用方。
- OUT参数可以出现在赋值语句的左侧或右侧。 当控制权返回给调用方时,分配给OUT参数的最后一个值将返回给调用方。
- INOUT参数可以出现在赋值语句的左侧或右侧。 参数的第一个值由调用者确定,最后一个值将返回给调用者。
- 当连接到远程站点时,LOB参数不能作为SQL语句中的输出值。 要规避限制,请使用LOB SQL变量代替LOB参数。
SQLSTATE和SQLCODE注意事项 SQL变量 :不禁止对这些变量进行赋值。 但是,不建议使用此功能,因为任务不会影响诊断区域,也不会导致条件处理程序的激活。 此外,处理这些SQL变量的赋值会导致赋值的指定值与执行赋值语句返回的SQL返回代码叠加。
示例
将SQL变量 p_salary 增加10%。
SET p_salary = p_salary + (p_salary * .10) 将SQL变量 p_salary 设置为空值。
SET p_salary = NULL 将SQL变量 midinit 设置为SQL变量 midname 的第一个字符。
SET midinit = SUBSTR(midname,1,1) 