Como os tipos de dados do banco de dados são convertidos implicitamente em tipos de dados ESQL.
O tipo de dados ESQL de campos de mensagens depende do tipo da mensagem (por exemplo, XML) e do analisador utilizado para analisá-lo. O tipo de dados ESQL do valor retornado por uma referência de coluna do banco de dados depende do tipo de dados da coluna no banco de dados.
A tabela a seguir mostra como os vários tipos de dados de banco de dados integrados são convertidos em tipos de dados ESQL, quando eles são acessados por fluxos de mensagens que estão em execução em um broker.
As versões suportadas para os produtos de banco de dados mostradas nesta tabela estão listadas em Bancos de Dados Suportados.
DB2 | SQL Server e Sybase | Oracle | Informix | tipo de dados 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 |
HORA | N/D | N/D | N/D | HORA |
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 |
A tabela mostra todos os tipos de dados que são suportados para cada banco de dados.
SET OutputRoot.xxx[]
= (SELECT T.department FROM Database.personnel AS T);
em que Database.personnel é resolvido para uma coluna TINYINT em uma tabela do banco de dados do SQL Server, resulta em uma lista de valores ESQL INTEGER, sendo designados a OutputRoot.xxx .
Por comparação, uma consulta idêntica, em que Database.personnel é resolvido para uma coluna NUMBER() em um banco de dados Oracle, resulta em uma lista de valores ESQL FLOAT sendo designados a OutputRoot.xxx.
Observe que os tipos de dados de parâmetros de procedimentos armazenados são convertidos usando a definição desse procedimento externo no Instrução CREATE PROCEDURE.