分配和比较
SQL 的基本操作包括赋值和比较。
赋值操作在执行语句期间执行,例如CALL、INSERT、UPDATE、MERGE、FETCH、SELECT INTO、SET host-variable 或SET assignment-statement 以及VALUES INTO语句。 此外,当调用函数或存储过程时,函数或存储过程的参数将被分配。 在执行包含谓词和其他语言元素(例如 MAX、MIN、DISTINCT、GROUP BY 和 ORDER BY)的语句期间会执行比较操作。
这两种操作的基本规则是操作数的数据类型必须兼容。 兼容性规则也适用于结果数据类型规则中描述的其他操作。
下表显示了赋值和比较的数据类型兼容性。
| 操作数 | BINARY INTEGER | 十进制数 | 浮点 | 十进制浮点 | 字符串 | 图形字符串 | 二进制字符串 | 日期 | 时间 | 无时区的时间戳 | TIMESTAMP WITH TIME ZONE | 行标识 | 用户定义的类型 | XML8 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| BINARY INTEGER | 是 | 是 | 是 | 是 | 1 | 1 | False | False | False | False | False | False | 2 | False |
| 十进制数 | 是 | 是 | 是 | 是 | 1 | 1 | False | False | False | False | False | False | 2 | False |
| 浮点 | 是 | 是 | 是 | 是 | 1 | 1 | False | False | False | False | False | False | 2 | False |
| 十进制浮点 | 是 | 是 | 是 | 是 | 1 | 1 | False | False | False | False | False | False | 2 | False |
| 字符串 | 1 | 1 | 1 | 1 | 是 | 是 3, 4 | 第五名 | 是的 7 | 是的 7 | 是的7 | 是的 7 | False | 2 | False |
| 图形字符串 | 6 | 6 | 6 | 6 | 是 3, 4 | 是 | False | 3 , 7 | 3 , 7 | 3 , 7 | 3 , 7 | False | 2 | False |
| 二进制字符串 | False | False | False | False | 第五名 | False | 是 | False | False | False | False | False | 2 | False |
| 日期 | False | False | False | False | 七 | 3 , 7 | False | 是 | False | False | False | False | 2 | False |
| 时间 | False | False | False | False | 七 | 3 , 7 | False | False | 是 | False | False | False | 2 | False |
| 无时区的时间戳 | False | False | False | False | 七 | 3 , 7 | False | False | False | 是 | 是 | False | 2 | False |
| TIMESTAMP WITH TIME ZONE | False | False | False | False | 七 | 3 , 7 | False | False | False | 是 | 是 | False | 2 | False |
| 行标识 | False | False | False | False | False | False | False | False | False | False | False | 是 | 2 | False |
| 用户定义的类型 | 2 | 2 | 2 | 2 | 2 | 2 | 2 | 2 | 2 | 2 | 2 | 2 | 是的2 | False |
| XML8 | False | False | False | False | False | False | False | False | False | False | False | False | False | 是 |
|
||||||||||||||
与具有字段过程的列的兼容性由列的数据类型决定,该数据类型适用于其值的解码形式。
赋值操作的基本规则是,不能将空值赋给:
- 不能包含空值的列
- 非Java™主机变量,没有关联的指示变量
对于确实存在关联指示变量的宿主变量,可通过将指示变量设置为负值来分配空值。 关于指标变量的讨论,请参见宿主变量。
- Java主机变量,属于基本类型
对于非基本类型的Java宿主变量,该变量的值被设置为Java空值。
日期和时间值与字符串值的兼容性取决于以下因素: