Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 11.0.1 (Deutsch) » MobiLink - Serveradministration » MobiLink-Referenz » MobiLink-Datenzuordnungen zwischen entfernten und konsolidierten Datenbanken

 

IBM DB2 Mainframe-Datentypzuordnung

Zuordnung zu konsolidierten DB2 Mainframe-Datentypen

Die folgende Tabelle zeigt, wie entfernte SQL Anywhere- und UltraLite-Datentypen den konsolidierten DB2 Mainframe-Datentypen zugeordnet werden. Zum Beispiel sollte eine Spalte, die in der entfernten Datenbank den Datentyp BIT hat, in der konsolidierten Datenbank den Typ SMALLINT haben.

Datentypen in SQL Anywhere oder UltraLite

IBM DB2 Mainframe-Datentyp

Hinweise

BIGINT

DECIMAL (20)

BINARY(n<MRL)

VARCHAR(n) FOR BIT DATA

Wenn Sie eine DB2-Tabelle erstellen, müssen Sie auf die DB2-Seitengröße achten. Für DB2 ist die maximale Zeilenlänge von der Seitengröße abhängig: Die MRL beträgt 4005 bei einer Seitengröße von 4 KByte, 8101 bei 8 KByte, 16293 bei 16 KByte und 32677 bei 32 KByte. Die Länge der Spalten in einer Tabelle darf die obigen Grenzen nicht überschreiten. Falls eine Tabelle über eine BLOB oder CLOB-Spalte verfügt, stellen Sie die Zeilenlänge mit dem LOB Locator fest, nicht mit den BLOB oder CLOB-Daten direkt. Weitere Hinweise finden Sie in Ihrer DB2-Dokumentation.

BINARY(n>=MRL)

BLOB(n)

Wenn Sie eine DB2-Tabelle erstellen, müssen Sie auf die DB2-Seitengröße achten. Für DB2 ist die maximale Zeilenlänge von der Seitengröße abhängig: Die MRL beträgt 4005 bei einer Seitengröße von 4 KByte, 8101 bei 8 KByte, 16293 bei 16 KByte und 32677 bei 32 KByte. Die Länge der Spalten in einer Tabelle darf die obigen Grenzen nicht überschreiten. Falls eine Tabelle über eine BLOB oder CLOB-Spalte verfügt, stellen Sie die Zeilenlänge mit dem LOB Locator fest, nicht mit den BLOB oder CLOB-Daten direkt. Weitere Hinweise finden Sie in Ihrer DB2-Dokumentation.

BIT

SMALLINT

CHAR(n<MRL)

VARCHAR(n)

MRL ist die maximale DB2-Zeilenlänge.

DB2 VARCHAR kann je nach Seitengröße nur bis zu 32672 Byte enthalten.

Für DB2 ist die maximale Zeilenlänge (MRL) von der Seitengröße abhängig: Die MRL beträgt 4005 bei einer Seitengröße von 4 KByte, 8101 bei 8 KByte, 16293 bei 16 KByte und 32677 bei 32 KByte. Weitere Hinweise finden Sie in Ihrer DB2-Dokumentation.

Der SQL Anywhere-Datentyp CHAR entspricht semantisch dem SQL Anywhere-Datentyp VARCHAR identisch.

CHAR(n>=MRL)

CLOB(n)

Für DB2 ist die maximale Zeilenlänge (MRL) von der Seitengröße abhängig: Die MRL beträgt 4005 bei einer Seitengröße von 4 KByte, 8101 bei 8 KByte, 16293 bei 16 KByte und 32677 bei 32 KByte. Weitere Hinweise finden Sie in Ihrer DB2-Dokumentation.

Der SQL Anywhere-Datentyp CHAR entspricht semantisch dem SQL Anywhere-Datentyp VARCHAR identisch.

DB2 CLOB-Werte können länger als SQL Anywhere- oder UltraLite-Werte sein. Sie müssen sicherstellen, dass die Download-Werte nicht zu groß sind.

DATE

DATE

Für SQL Anywhere und UltraLite muss die Zeitangabe das Format 00:00:00 haben.

DATETIME

TIMESTAMP

DECIMAL(p<32,s)

DECIMAL(p,s)

Die Genauigkeit von SQL Anywhere DECIMAL liegt zwischen 1 und 127. Die maximale Genauigkeit von DB2 DECIMAL beträgt 31. Daten des Typs SQL Anywhere DECIMAL mit einer Genauigkeit von über 31 können nicht mit DB2 synchronisiert werden.

DECIMAL(p>=32,s)

Daten des Typs SQL Anywhere DECIMAL mit einer Genauigkeit von über 31 können nicht mit DB2 synchronisiert werden.

DOUBLE

DOUBLE

DOUBLE kann Probleme verursachen, wenn die konsolidierte und die entfernte Datenbank nicht die exakt gleichen (ungenauen) Werte erlauben. Da nicht alle möglichen Werte geprüft werden, ist Vorsicht angebracht. Um Probleme zu vermeiden, sollten Sie diese Typen nicht als Teil eines Primärschlüssels verwenden.

Zur erfolgreichen Synchronisation müssen DOUBLE-Werte von SQL Anywhere/UltraLite im DOUBLE-Wertebereich der DB2 Mainframe-Datenbank liegen.

FLOAT(1-24)

REAL

FLOAT kann Probleme verursachen, wenn die konsolidierte und die entfernte Datenbank nicht die exakt gleichen (ungenauen) Werte erlauben. Da nicht alle möglichen Werte geprüft werden, ist Vorsicht angebracht. Um Probleme zu vermeiden, sollten Sie diese Typen nicht als Teil eines Primärschlüssels verwenden.

Zur erfolgreichen Synchronisation müssen REAL-Werte der DB2 Mainframe-Datenbank im REAL-Wertebereich der SQL Anywhere/UltraLite-Datenbank liegen.

FLOAT(25-53)

DOUBLE

FLOAT kann Probleme verursachen, wenn die konsolidierte und die entfernte Datenbank nicht die exakt gleichen (ungenauen) Werte erlauben. Da nicht alle möglichen Werte geprüft werden, ist Vorsicht angebracht. Um Probleme zu vermeiden, sollten Sie diese Typen nicht als Teil eines Primärschlüssels verwenden.

Zur erfolgreichen Synchronisation müssen DOUBLE-Werte von SQL Anywhere/UltraLite im DOUBLE-Wertebereich der DB2 Mainframe-Datenbank liegen.

IMAGE

BLOB(n)

INTEGER

INTEGER

LONG BINARY

BLOB(n)

LONG NVARCHAR

CLOB(n)

Es gibt keinen entsprechenden Datentyp in DB2. Falls es sich beim DB2-Zeichensatz um Unicode handelt, kann SQL Anywhere LONG NVARCHAR mit DB2 CLOB synchronisiert werden. UltraLite verfügt nicht über den Datentyp LONG NVARCHAR.

LONG VARBIT

BLOB(n)

LONG VARCHAR

CLOB(n)

MONEY

DECIMAL (19,4)

NCHAR(c)

VARCHAR(n) oder CLOB(n)

Der SQL Anywhere-Datentyp NCHAR ist mit dem SQL Anywhere-Datentyp NVARCHAR identisch.

Es gibt keinen entsprechenden Datentyp in DB2. Falls es sich beim DB2-Zeichensatz um Unicode handelt, kann NCHAR mit DB2 VARCHAR oder CLOB synchronisiert werden. Bei der Größeneinheit von SQL Anywhere NCHAR handelt es sich um Zeichen und bei DB2 VARCHAR um Bytes. Falls Sie eine Zuordnung zu VARCHAR erstellen, darf die Gesamtzahl der Bytes von NCHAR nicht größer sein als MRL. Andernfalls sollte NCHAR CLOB zugeordnet werden. Es ist nicht einfach, die Anzahl Bytes in NCHAR(c) zu berechnen, doch es handelt sich etwa um c=n/4. Im Allgemeinen gilt, wenn c kleiner als MRL/4 ist, wird VARCHAR(n) zugeordnet, doch wenn c größer oder gleich MRL/4 ist, wird CLOB(n) zugeordnet.

NTEXT

CLOB(n)

Der SQL Anywhere-Datentyp NTEXT ist identisch mit dem SQL Anywhere-Datentyp LONG NVARCHAR.

Es gibt keinen entsprechenden Datentyp in DB2. Falls es sich beim DB2-Zeichensatz um Unicode handelt, kann NCHAR mit DB2 VARCHAR oder CLOB synchronisiert werden. Bei der Größeneinheit von SQL Anywhere NCHAR handelt es sich um Zeichen und bei DB2 VARCHAR um Bytes. Falls Sie eine Zuordnung zu VARCHAR erstellen, darf die Gesamtzahl der Bytes von NCHAR nicht größer sein als MRL. Andernfalls sollte NCHAR CLOB zugeordnet werden. Es ist nicht einfach, die Anzahl Bytes in NCHAR(c) zu berechnen, doch es handelt sich etwa um c=n/4. Im Allgemeinen gilt, wenn c kleiner als MRL/4 ist, wird VARCHAR(n) zugeordnet, doch wenn c größer oder gleich MRL/4 ist, wird CLOB(n) zugeordnet.

NUMERIC(p<32,s)

NUMERIC(p,s)

NUMERIC(p>=32,s)

Es gibt keinen entsprechenden Datentyp in DB2.

NVARCHAR(c)

VARCHAR(n) oder CLOB(n)

Es gibt keinen entsprechenden Datentyp in DB2. Falls es sich beim DB2-Zeichensatz um Unicode handelt, kann NCHAR mit DB2 VARCHAR oder CLOB synchronisiert werden. Bei der Größeneinheit von SQL Anywhere NCHAR handelt es sich um Zeichen und bei DB2 VARCHAR um Bytes. Falls Sie eine Zuordnung zu VARCHAR erstellen, darf die Gesamtzahl der Bytes von NCHAR nicht größer sein als MRL. Andernfalls sollte NCHAR CLOB zugeordnet werden. Es ist nicht einfach, die Anzahl Bytes in NCHAR(c) zu berechnen, doch es handelt sich etwa um c=n/4. Im Allgemeinen gilt, wenn c kleiner als MRL/4 ist, wird VARCHAR(n) zugeordnet, doch wenn c größer oder gleich MRL/4 ist, wird CLOB(n) zugeordnet.

REAL

REAL

REAL kann Probleme verursachen, wenn die konsolidierte und die entfernte Datenbank nicht die exakt gleichen (ungenauen) Werte erlauben. Da nicht alle möglichen Werte geprüft werden, ist Vorsicht angebracht. Um Probleme zu vermeiden, sollten Sie diese Typen nicht als Teil eines Primärschlüssels verwenden.

Zur erfolgreichen Synchronisation müssen REAL-Werte der DB2 Mainframe-Datenbank im REAL-Wertebereich der SQL Anywhere/UltraLite-Datenbank liegen.

SMALLDATETIME

TIMESTAMP

SMALLINT

SMALLINT

SMALLMONEY

DECIMAL(10,4)

TEXT

CLOB(n)

Der SQL Anywhere-Datentyp TEXT ist identisch mit dem SQL Anywhere-Datentyp LONG VARCHAR.

TIME

TIMESTAMP oder TIME

TIME-Werte in SQL Anywhere und UltraLite mit Sekundenbruchteilen benötigen DB2 TIMESTAMP. TIME-Werte in SQL Anywhere und UltraLite mit Sekundenbruchteilen, die immer Null sind, können DB2 TIME verwenden.

TIMESTAMP

TIMESTAMP

TINYINT

SMALLINT

UNIQUEIDENTIFIER

CHAR(36)

UNIQUEIDENTIFIERSTR

CHAR(36)

UNIQUEIDENTIFIERSTR wird für DB2 nicht empfohlen. Verwenden Sie stattdessen UNIQUEIDENTIFIER.

UNSIGNED BIGINT

DECIMAL (20)

DB2-Werte müssen nicht-negativ sein.

UNSIGNED INTEGER

DECIMAL (11)

DB2-Werte müssen nicht-negativ sein.

UNSIGNED SMALLINT

DECIMAL (5)

DB2-Werte müssen nicht-negativ sein.

UNSIGNED TINYINT

SMALLINT

DB2-Werte müssen nicht-negativ sein.

VARBINARY(n<MRL)

VARCHAR(n) FOR BIT DATA

Wenn Sie eine DB2-Tabelle erstellen, müssen Sie auf die DB2-Seitengröße achten. Für DB2 ist die maximale Zeilenlänge von der Seitengröße abhängig: Die MRL beträgt 4005 bei einer Seitengröße von 4 KByte, 8101 bei 8 KByte, 16293 bei 16 KByte und 32677 bei 32 KByte. Die Länge der Spalten in einer Tabelle darf die obigen Grenzen nicht überschreiten. Falls eine Tabelle über eine BLOB oder CLOB-Spalte verfügt, stellen Sie die Zeilenlänge mit dem LOB Locator fest, nicht mit den BLOB oder CLOB-Daten direkt. Weitere Hinweise finden Sie in Ihrer DB2-Dokumentation.

VARBINARY(n>=MRL)

BLOB(n)

Wenn Sie eine DB2-Tabelle erstellen, müssen Sie auf die DB2-Seitengröße achten. Für DB2 ist die maximale Zeilenlänge von der Seitengröße abhängig: Die MRL beträgt 4005 bei einer Seitengröße von 4 KByte, 8101 bei 8 KByte, 16293 bei 16 KByte und 32677 bei 32 KByte. Die Länge der Spalten in einer Tabelle darf die obigen Grenzen nicht überschreiten. Falls eine Tabelle über eine BLOB oder CLOB-Spalte verfügt, stellen Sie die Zeilenlänge mit dem LOB Locator fest, nicht mit den BLOB oder CLOB-Daten direkt. Weitere Hinweise finden Sie in Ihrer DB2-Dokumentation.

VARBIT(n<MRL)

VARCHAR(n)

Wenn Sie eine DB2-Tabelle erstellen, müssen Sie auf die DB2-Seitengröße achten. Für DB2 ist die maximale Zeilenlänge von der Seitengröße abhängig: Die MRL beträgt 4005 bei einer Seitengröße von 4 KByte, 8101 bei 8 KByte, 16293 bei 16 KByte und 32677 bei 32 KByte. Die Länge der Spalten in einer Tabelle darf die obigen Grenzen nicht überschreiten. Falls eine Tabelle über eine BLOB oder CLOB-Spalte verfügt, stellen Sie die Zeilenlänge mit dem LOB Locator fest, nicht mit den BLOB oder CLOB-Daten direkt. Weitere Hinweise finden Sie in Ihrer DB2-Dokumentation.

VARBIT(n>=MRL)

CLOB(n)

Wenn Sie eine DB2-Tabelle erstellen, müssen Sie auf die DB2-Seitengröße achten. Für DB2 ist die maximale Zeilenlänge von der Seitengröße abhängig: Die MRL beträgt 4005 bei einer Seitengröße von 4 KByte, 8101 bei 8 KByte, 16293 bei 16 KByte und 32677 bei 32 KByte. Die Länge der Spalten in einer Tabelle darf die obigen Grenzen nicht überschreiten. Falls eine Tabelle über eine BLOB oder CLOB-Spalte verfügt, stellen Sie die Zeilenlänge mit dem LOB Locator fest, nicht mit den BLOB oder CLOB-Daten direkt. Weitere Hinweise finden Sie in Ihrer DB2-Dokumentation.

VARCHAR(n<MRL)

VARCHAR(n)

DB2 VARCHAR kann je nach Seitengröße nur bis zu 32672 Byte enthalten.

Für DB2 ist die maximale Zeilenlänge (MRL) von der Seitengröße abhängig: Die MRL beträgt 4005 bei einer Seitengröße von 4 KByte, 8101 bei 8 KByte, 16293 bei 16 KByte und 32677 bei 32 KByte. Weitere Hinweise finden Sie in Ihrer DB2-Dokumentation.

Der SQL Anywhere-Datentyp CHAR entspricht semantisch dem SQL Anywhere-Datentyp VARCHAR identisch.

VARCHAR(n>=MRL)

CLOB(n)

Für DB2 ist die maximale Zeilenlänge (MRL) von der Seitengröße abhängig: Die MRL beträgt 4005 bei einer Seitengröße von 4 KByte, 8101 bei 8 KByte, 16293 bei 16 KByte und 32677 bei 32 KByte. Weitere Hinweise finden Sie in Ihrer DB2-Dokumentation.

Der SQL Anywhere-Datentyp CHAR entspricht semantisch dem SQL Anywhere-Datentyp VARCHAR identisch.

DB2 CLOB-Werte können länger als SQL Anywhere- oder UltraLite-Werte sein. Sie müssen sicherstellen, dass die Download-Werte nicht zu groß sind.

XML

CLOB(n)

Der SQL Anywhere-Datentyp XML ist identisch mit dem SQL Anywhere-Datentyp LONG VARCHAR.

Zuordnung zu entfernten SQL Anywhere- oder UltraLite-Datentypen

Die folgende Tabelle zeigt, wie konsolidierte DB2 Mainframe-Datentypen entfernten SQL Anywhere- und UltraLite-Datentypen zugeordnet werden. Zum Beispiel sollte eine Spalte, die in der konsolidierten Datenbank den Datentyp INT hat, in der entfernten Datenbank den Typ INTEGER haben.

IBM DB2 Mainframe-Datentyp Datentypen in SQL Anywhere oder UltraLite Hinweise

BLOB

LONG BINARY

CHAR(n)

VARCHAR(n)

In SQL Anywhere gibt es kein Äquivalent zu DB2 CHAR. Sie sollten CHAR nicht in konsolidierten Datenbankspalten verwenden, die synchronisiert sind. Falls Sie DB2 CHAR-Spalten synchronisieren müssen, führen Sie den MobiLink-Server mit der Option -b aus.

CHAR(n) FOR BIT DATA

BINARY(n)

In SQL Anywhere gibt es kein Äquivalent zu DB2 CHAR. Sie sollten CHAR nicht in konsolidierten Datenbankspalten verwenden, die synchronisiert sind. Falls Sie DB2 CHAR-Spalten synchronisieren müssen, führen Sie den MobiLink-Server mit der Option -b aus.

CLOB(n)

LONG VARCHAR

DATE

DATE

Für SQL Anywhere und UltraLite muss die Zeitangabe das Format 00:00:00 haben.

DBCLOB(n)

LONG VARCHAR

Der Datentyp DBCLOB(n) wird nur für Doppelbyte-Zeichen verwendet. SQL Anywhere verfügt nicht über einen entsprechenden Datentyp. Falls es sich beim DB2-Zeichensatz um Unicode handelt, ist DBCLOB(n) gleichwertig mit CLOB.

DECIMAL(p,s)

DECIMAL(p,s)

DOUBLE

DOUBLE

DOUBLE kann Probleme verursachen, wenn die konsolidierte und die entfernte Datenbank nicht die exakt gleichen (ungenauen) Werte erlauben. Da nicht alle möglichen Werte geprüft werden, ist Vorsicht angebracht. Um Probleme zu vermeiden, sollten Sie diese Typen nicht als Teil eines Primärschlüssels verwenden.

Zur erfolgreichen Synchronisation müssen DOUBLE-Werte von SQL Anywhere/UltraLite im DB2 DOUBLE-Wertebereich liegen.

FLOAT

DOUBLE

FLOAT kann Probleme verursachen, wenn die konsolidierten und entfernten Datenbanken nicht die exakt gleichen (ungenauen) Werte erlauben. Da nicht alle möglichen Werte geprüft werden, ist Vorsicht angebracht. Um Probleme zu vermeiden, sollten Sie diese Typen nicht als Teil eines Primärschlüssels verwenden.

Zur erfolgreichen Synchronisation müssen DOUBLE-Werte von SQL Anywhere/UltraLite im DB2 DOUBLE-Wertebereich liegen.

GRAPHIC(n)

VARCHAR(2n)

Bei DB2 GRAPHIC erfolgt eine Auffüllung durch Leerzeichen. In SQL Anywhere gibt es kein Äquivalent zu DB2 GRAPHIC. Sie sollten GRAPHIC nicht in konsolidierten Datenbankspalten verwenden, die synchronisiert werden.

Der Datentyp GRAPHIC wird nur für Doppelbyte-Zeichen verwendet. SQL Anywhere verfügt nicht über einen entsprechenden Datentyp. Falls es sich beim DB2-Zeichensatz um Unicode handelt, ist GRAPHIC gleichwertig mit CHAR.

INT

INTEGER

NUMERIC(p,s)

NUMERIC(p,s)

REAL

DOUBLE

REAL kann Probleme verursachen, wenn die konsolidierten und entfernten Datenbanken nicht die exakt gleichen (ungenauen) Werte erlauben. Da nicht alle möglichen Werte geprüft werden, ist Vorsicht angebracht. Um Probleme zu vermeiden, sollten Sie diese Typen nicht als Teil eines Primärschlüssels verwenden.

Auf DB2 Mainframe haben REAL, DOUBLE und FLOAT denselben Bereich, der zwischen -7,2E+75 und 7,2E+75 liegt. Der größte negative Wert ist etwa -5,4E-79 und der kleinste positive Wert ist etwa 5,4E-79. Der Bereich von SA/UL REAL ist -3,402823e+38 bis 3,402823e+38, und DOUBLE ist 2,22507385850721e-308 bis 1,79769313486231e+308. Für eine erfolgreiche Synchronisation muss DB2 Mainframe REAL im SA/UL REAL-Bereich liegen und SA/UL DOUBLE muss im DB2 Mainframe DOUBLE-Bereich liegen.

ROWID

Es gibt keinen entsprechenden Datentyp in SQL Anywhere oder UltraLite. ROWID wird vom DB2-Server verwaltet. Dieser Datentyp kann nicht synchronisiert werden.

SMALLINT

SMALLINT

TIME

TIME

Die Sekundenbruchteile von SQL Anywhere TIME-Werten werden beim Download weggekürzt. Um Probleme zu vermeiden, sollten Sie keine Sekundenwerte mit Bruchteilen verwenden.

TIMESTAMP

TIMESTAMP

VARCHAR(n)

VARCHAR(n)

VARCHAR(n) FOR BIT DATA

VARBINARY(n)

VARGRAPHIC(n)

VARCHAR(2n)

Der Datentyp VARGRAPHIC wird nur für Doppelbyte-Zeichen verwendet. SQL Anywhere verfügt nicht über einen entsprechenden Datentyp. Falls es sich beim DB2-Zeichensatz um Unicode handelt, ist VARGRAPHIC gleichwertig mit VARCHAR.