ESQL kann Daten von zwei externen Quellen extrahieren: Nachrichtenfelder und Datenbankspalten.
Der ESQL-Datentyp von Nachrichtenfeldern hängt vom Typ der Nachricht (z. B. XML) und vom Parser ab, der für deren Syntaxanalyse verwendet wird. Der ESQL-Datentyp des Wertes, der von einem Datenbankspaltenverweis zurückgegeben wird, hängt vom Datentyp der Spalte in der Datenbank ab.
Die folgende Tabelle zeigt, in welche ESQL-Datentypen die verschiedenen integrierten Datenbankdatentypen umgesetzt werden, wenn Nachrichtenflüsse, die im Broker aktiv sind, darauf zugreifen.
Die Versionen, die für die in dieser Liste aufgeführten Datenbankprodukte unterstützt werden, sind in Unterstützte Datenbanken aufgelistet.
Datentyp | DB2 | SQL Server und 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);
wobei Database.personnel zu einer TINYINT-Spalte in einer SQL Server-Datenbanktabelle aufgelöst wird, eine Liste mit ESQL-Werten vom Typ INTEGER, die OutputRoot.xxx zugeordnet werden.
Im Gegensatz dazu ergibt eine identische Abfrage, bei der Database.personnel zu einer NUMBER()-Spalte in einer Oracle-Datenbank aufgelöst wird, eine Liste mit ESQL-Werten vom Typ FLOAT, die OutputRoot.xxx zugeordnet werden.