En esta sección se describe cómo se transforman implícitamente los tipos de datos en tipos de datos ESQL.
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 cómo se han convertido los diversos tipos de datos de base de datos incorporados en tipos de datos ESQL, 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.
DB2 | SQL Server y Sybase | Oracle | Informix | Tipo de datos ESQL |
---|---|---|---|---|
N/D | BIT | N/D | N/D | BOOLEAN |
SMALLINT, INTEGER, BIGINT | INT, SMALLINT, TINYINT | N/D | INT, SMALLINT | INTEGER |
REAL, DOUBLE | FLOAT, REAL | NUMBER()1 | FLOAT, SMALLFLOAT, DOUBLE | FLOAT |
DECIMAL | DECIMAL, NUMERIC, MONEY, SMALLMONEY | NUMBER(P)1, NUMBER(P,S)1 | DECIMAL, MONEY | DECIMAL |
CHAR, VARCHAR, CLOB, GRAPHIC, VARGRAPHIC, LONGVARGRAPHIC, DBCLOB | CHAR, VARCHAR, TEXT | CHAR, VARCHAR2, ROWID, UROWID, LONG, CLOB | CHAR, VARCHAR, CHAR VARYING | CHARACTER |
TIME | N/D | N/D | N/D | TIME |
N/D | N/D | N/D | N/D | GMTTIME |
DATE | N/D | N/D | DATE | DATE |
TIMESTAMP | DATETIME, SMALLDATETIME, TIMESTAMP | DATE | DATETIME | TIMESTAMP |
N/D | N/D | N/D | N/D | GMTTIMESTAMP |
N/D | N/D | N/D | INTERVAL | INTERVAL |
BLOB | BINARY, VARBINARY, IMAGE, UNIQUEIDENTIFIER | RAW LONG, RAW BLOB | N/D | BLOB |
N/D | N/D | N/D | N/D | BIT |
XML | N/D | CHAR | N/D | BLOB |
La tabla muestra todos los tipos de datos que se soportan para cada base de datos.
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.
Los tipos de datos para los parámetros de procedimiento almacenado se transforman utilizando la definición del procedimiento externo de Sentencia CREATE PROCEDURE.