用于赋值的隐式 CAST

您可以将值赋给三个实体中的一个。
消息字段(或者异常和目标列表的等价项)
是否支持 WebSphere Message Broker 数据类型和消息(以位流的形式)之间的隐式转换取决于相应的解析器。例如,XML 解析器将任何内容插入 WebSphere MQ 消息之前都会将它们强制转换为字符串型数据。
数据库表中的字段

WebSphere Message Broker 会将每种数据类型都转换为适当的标准 SQL C 数据类型,祥见下表。标准 SQL C 数据类型与每个 DBMS 支持的数据类型之间的转换取决于 DBMS。有关详细信息,请参阅 DBMS 文档。

下表列出了可以进行的从 WebSphere Message Broker 到 SQL 数据类型的转换

WebSphere Message Broker 数据类型 SQL 数据类型
NULL 或未知、无效值 SQL_NULL_DATA
BOOLEAN SQL_C_BIT
INTEGER SQL_C_LONG
FLOAT SQL_C_DOUBLE
DECIMAL SQL_C_CHAR1
CHARACTER SQL_C_CHAR
TIME SQL_C_TIME
GMTTIME SQL_C_TIME
DATE SQL_C_DATE
TIMESTAMP SQL_C_TIMESTAMP
GMTTIMESTAMP SQL_C_DATE
INTERVAL 不支持2
BLOB SQL_C_BINARY
BIT 不支持2
注:
  1. 为方便起见,DECIMAL 值以字符格式传递给 DBMS。
  2. 对于 INTERVAL 或 BIT,没有合适的标准 SQL C 数据类型。如果需要将它们赋给数据库字段,可以将它们强制转换为另一种数据类型,如 CHARACTER。
标量变量
赋给标量变量时,如果要赋的值其数据类型与目标变量的数据类型不同,可以尝试进行隐式强制类型转换,这种转换的限制和行为与为显式 CAST 函数指定的相同。只有变量的数据类型为 INTERVAL 或 DECIMAL 时才有所不同。

在这两种情况下,首先将要赋予的值强制转换为 CHARACTER 值,然后再尝试将此 CHARACTER 值强制转换为 INTERVAL 或 DECIMAL 值。这样做的原因在于 INTERVAL 需要一个限定符,DECIMAL 需要一个精度和小数位。在显式强制类型转换中,必须指定它们,但在隐式强制类型转换中,必须从字符串中获取它们。因此,进一步的限制是,将数据隐式强制转换为 INTERVAL 变量时,字符串的格式必须为 INTERVAL '<values>' <qualifier>。显式强制类型转换可接受的缩写格式 <values> 在隐式转换时不可接受。

相关概念
ESQL 概述
相关任务
正在开发 ESQL
相关参考
复杂 ESQL 函数
隐式类型强制转换
用于比较的隐式 CAST
用于算术运算的隐式 CAST
声明 | 商标 | 下载 | 书库 | 支持 | 反馈
Copyright IBM Corporation 1999, 2006 最后一次更新时间:2006/08/14
ak05720_