ESQL puede extraer datos de dos fuentes externas: campos de mensajes y columnas de base de datos.
El tipo de datos ESQL de los campos de mensaje depende del tipo del mensaje (por ejemplo XML) y el analizador que se utilice para analizarlo. El tipo de datos ESQL de valor que devuelve una referencia de columna de base de datos depende del tipo de datos de la columna de la base de datos.
La tabla siguiente muestra en qué tipos de datos ESQL se han convertido los diversos tipos de datos de base de datos incorporados, cuando los flujos de mensajes que se ejecutan en un intermediario acceden a ellos.
Las versiones que se soportan para los productos de base de datos mostrados en esta tabla se listan en Bases de datos soportadas.
Tipo de datos | DB2 | SQL Server y Sybase | Oracle | Informix |
---|---|---|---|---|
BOOLEAN | BIT | |||
INTEGER | SMALLINT, INTEGER, BIGINT | INT, SMALLINT, TINYINT | INT, SMALLINT | |
FLOAT | REAL, DOUBLE | FLOAT, REAL | NUMBER()1 | FLOAT, SMALLFLOAT, DOUBLE |
DECIMAL | DECIMAL | DECIMAL, NUMERIC, MONEY, SMALLMONEY | NUMBER(P)1, NUMBER(P,S)1 | DECIMAL, MONEY |
CHARACTER | CHAR, VARCHAR, CLOB | CHAR, VARCHAR, TEXT | CHAR, VARCHAR2, ROWID, UROWID, LONG, CLOB | CHAR, VARCHAR, CHAR VARYING |
TIME | TIME | |||
GMTTIME | ||||
DATE | DATE | DATE | ||
TIMESTAMP | TIMESTAMP | ![]() ![]() |
DATE | DATETIME |
GMTTIMESTAMP | ||||
INTERVAL | INTERVAL | |||
BLOB | BLOB | ![]() ![]() |
RAW LONG, RAW BLOB | |
BIT |
SET OutputRoot.xxx[] = (SELECT T.department FROM Database.personnel AS T);
donde Database.personnel se resuelve en una columna TINYINT en una tabla de base de datos de SQL Server, da como resultado que se asigne una lista de valores ESQL INTEGER a OutputRoot.xxx.
Por el contrario, una consulta idéntica en la que Database.personnel se resuelve en una columna NUMBER() de una base de datos Oracle, da como resultado que se asigne una lista de valores ESQL FLOAT a OutputRoot.xxx.