第二章 SQL谓词的概述(二)
谓词和%SelectMode
所有谓词都使用逻辑(内部存储)数据值进行比较。
但是,有些谓词可以对谓词值执行格式模式转换,将谓词值从ODBC或Display格式转换为Logical格式。
其他谓词不能执行格式模式转换,因此必须始终以Logical格式指定谓词值。
执行格式模式转换的谓词确定是否需要从匹配字段的数据类型(如DATE``%List)进行转换,并确定从%SelectMode设置进行转换的类型。
如果%SelectMode设置为逻辑格式以外的值(例如%SelectMode=ODBC或%SelectMode=Display),则必须以正确的ODBC或Display格式指定谓词值。
- 相等谓词执行格式模式转换。
IRIS将谓词值转换为逻辑格式,然后与字段值进行匹配。
如果
%SelectMode设置为逻辑格式以外的模式,则必须以%SelectMode格式(ODBC或Display)指定显示值与逻辑存储值不同的数据类型的谓词值。 例如,日期、时间和%list格式的字符串。 因为IRIS会自动执行这种格式转换,所以在Logical格式中指定这种类型的谓词值通常会导致SQLCODE错误。 例如,SQLCODE -146“无法将日期输入转换为有效的逻辑日期值”(IRIS假设提供的逻辑值是ODBC或Display值,并试图将其转换为逻辑值——但没有成功)。

.png)