来自外部源的值的数据类型

有两个 ESQL 从其抽取数据的外部源:
  • 消息字段
  • 数据库列

消息字段的 ESQL 数据类型取决于消息(例如,XML)类型以及用于分析它的解析器。数据库列引用返回的值的 ESQL 数据类型取决于数据库中列的数据类型。

下表显示 WebSphere Message Broker 访问各种内置 DBMS 数据类型时,它们要类型强制转换为哪种 ESQL 数据类型。

DBMS 产品是 DB2(与产品一起提供的版本)、SQL Server V7.0、Sybase V12.0 和 Oracle V8.1.5

  DB2 SQL Server 和 Sybase Oracle
BOOLEAN   BIT  
INTEGER SMALLINT, INTEGER, BIGINT INT, SMALLINT, TINYINT  
FLOAT REAL, DOUBLE FLOAT, REAL NUMBER()1
DECIMAL DECIMAL DECIMAL, NUMERIC, MONEY, SMALLMONEY NUMBER(P)1, NUMBER(P,S)1
CHARACTER CHAR, VARCHAR, CLOB CHAR, VARCHAR, TEXT CHAR, NCHAR, VARCHAR2, NVARCHAR2, ROWID, UROWID, LONG, CLOB,
TIME TIME    
GMTTIME      
DATE DATE    
TIMESTAMP TIMESTAMP DATETIME, SMALLDATETIME DATE
GMTTIMESTAMP      
INTERVAL      
BLOB BLOB BINARY, VARBINARY, TIMESTAMP, IMAGE, UNIQUEIDENTIFIER RAW LONG, RAW BLOB
BIT      
不支持 DATALINK, GRAPHIC, VARGRAPHIC, DBCLOB NTEXT, NCHAR, NVARCHAR NCLOB, BFILE
注:
  1. 如果使用一个显式精度(P)和小数位(S)定义 NUMBER 数据类型的 Oracle 数据库列,则它数据类型转换为 ESQL DECIMAL 值;否则它数据类型转换为 FLOAT。
    例如,ESQL 语句类似于:
    SET OutputRoot.xxx[]
      = (SELECT T.department FROM Database.personnel AS T);

    其中 Database.personnel 解析为 SQL Server 数据库表中的一个 TINYINT 列,得到一个要指派给 OutputRoot.xxx 的 ESQL INTEGER 值列表。

    与之相对照的等同查询(其中 Database.personnel 解析成 Oracle 数据库中的 NUMBER() 列)会得到一个要指派给 OutputRoot.xxx 的 ESQL FLOAT 值列表。

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