Die folgende Tabelle zeigt, wie entfernte SQL Anywhere- und UltraLite-Datentypen den konsolidierten Adaptive Server Enterprise-Datentypen zugeordnet werden. Zum Beispiel sollte eine Spalte, die in der entfernten Datenbank den Datentyp LONG VARCHAR hat, in der konsolidierten Datenbank den Typ TEXT haben.
Maximum Column Length (MCL, Maximale Spaltenlänge) hängt von der Seitengröße in Adaptive Server Enterprise ab. Bei einer Seitengrößte von 2 kB beträgt die MCL 1954 und bei einer Seitengrößte von 4 kB beträgt die MCL 4002. Informationen über MCL finden Sie in der Dokumentation zu Adaptive Server Enterprise.
Datentyp in SQL Anywhere oder UltraLite | Datentyp in Adaptive Server Enterprise | Hinweise |
---|---|---|
BIGINT |
BIGINT |
|
BIT |
BIT |
|
BINARY(n=<MCL) |
BINARY(n) |
|
BINARY(n>MCL) |
IMAGE |
|
CHAR(n=<MCL) |
VARCHAR(n) |
|
CHAR(n>MCL) |
TEXT |
Sorgen Sie beim Download dafür, dass die Werte nicht zu lang sind. |
DATE |
DATE |
Für Adaptive Server Enterprise DATETIME muss die Jahreszahl im Bereich von 1753 bis 9999 liegen. Für SQL Anywhere und UltraLite muss die Zeitangabe das Format 00:00:00 haben. |
DATETIME |
DATETIME1 oder BIGDATETIME2 |
Bei Adaptive Server Enterprise sind die DATETIME-Werte bis auf 1/300 Sekunde genau. Die letzte Ziffer des Sekundenbruchteils ist immer 0, 3 oder 6. Andere Ziffern werden auf eine dieser Ziffern gerundet. Somit werden 0 und 1 zu 0; 2, 3 und 4 werden zu 3; 5, 6, 7 und 8 werden zu 6 und 9 wird zu 10. Bei einem Download behält SQL Anywhere die Originalwerte von Adaptive Server Enterprise bei, aber bei einem Upload können die Werte geringfügig von den Originalwerten abweichen. Falls DATETIME für einen Primärschlüssel verwendet wird, könnte die Konfliktlösung fehlschlagen. Für eine einwandfreie Synchronisation von DATETIME können Sie die Sekundenbruchteile auf 10 Millisekunden runden. Außerdem muss das Jahr im Bereich von 1753 - 9999 liegen. |
DECIMAL(p<39, s) |
DECIMAL(p,s) |
Die Gesamtstellenzahl des Typs NUMERIC in Adaptive Server Enterprise kann 1 bis 38 Ziffern betragen (p<39). |
DECIMAL(p>=39,s) |
Es gibt keinen entsprechenden Datentyp in Adaptive Server Enterprise. |
|
DOUBLE |
DOUBLE PRECISION |
|
FLOAT(p) |
FLOAT(p) |
|
IMAGE |
IMAGE |
|
INTEGER |
INTEGER |
|
LONG BINARY |
IMAGE |
|
LONG NVARCHAR |
UNITEXT |
|
LONG VARBIT |
TEXT |
|
LONG VARCHAR |
TEXT |
|
MONEY |
MONEY |
|
NCHAR(c=<MCL) |
UNIVARCHAR(c/2) |
|
NCHAR(c>MCL) |
UNITEXT |
Sorgen Sie beim Download dafür, dass die Werte nicht zu lang sind. |
NTEXT |
UNITEXT |
|
NUMERIC(p<39,s) |
NUMERIC(p,s) |
Die Gesamtstellenzahl des Typs DECIMAL in Adaptive Server Enterprise kann 1 bis 38 Ziffern betragen (p<39). |
NUMERIC(p>=39,s) |
Es gibt keinen entsprechenden Datentyp in Adaptive Server Enterprise. |
|
NVARCHAR(c=<MCL) |
UNIVARCHAR(c/2) |
|
NVARCHAR(c>MCL) |
UNIVARCHAR(c/2) |
|
REAL |
REAL |
|
SMALLDATETIME |
DATETIME1 oder BIGDATETIME2 |
In SQL Anywhere und UltraLite wird SMALLDATETIME als TIMESTAMP implementiert. In Adaptive Server Enterprise ist DATETIME auf die Minute genau. 29,998 Sekunden oder weniger werden auf die Minute abgerundet, und Werte mit 29,999 Sekunden oder höher werden auf die nächste Minute aufgerundet. In SQL Anywhere oder UltraLite ist SMALLDATETIME auf die Mikrosekunde genau. Für eine einwandfreie Synchronisation in SQL Anywhere oder UltraLite muss SMALLDATETIME auf die Minute gerundet werden. Außerdem muss das Jahr im Bereich von 1753 - 9999 liegen. |
SMALLINT |
SMALLINT |
|
SMALLMONEY |
SMALLMONEY |
|
TEXT |
TEXT |
|
TIME |
TIME1 oder BIGTIME2 |
Bei Adaptive Server Enterprise sind die TIME-Werte bis auf 1/300 Sekunde genau. Die letzte Ziffer des Sekundenbruchteils ist immer 0, 3 oder 6. Andere Ziffern werden auf eine dieser Ziffern gerundet. Somit werden 0 und 1 zu 0; 2, 3 und 4 werden zu 3; 5, 6, 7 und 8 werden zu 6 und 9 wird zu 10. Bei einem Download behält SQL Anywhere die Originalwerte von Adaptive Server Enterprise bei, aber bei einem Upload können die Werte geringfügig von den Originalwerten abweichen. Falls TIME für einen Primärschlüssel verwendet wird, könnte die Konfliktlösung fehlschlagen. Für eine einwandfreie Synchronisation von TIME können Sie die Sekundenbruchteile auf 10 Millisekunden runden. |
TIMESTAMP |
DATETIME1 oder BIGDATETIME2 |
Bei Adaptive Server Enterprise sind die DATETIME-Werte bis auf 1/300 Sekunde genau. Die letzte Ziffer des Sekundenbruchteils ist immer 0, 3 oder 6. Andere Ziffern werden auf eine dieser Ziffern gerundet. Somit werden 0 und 1 zu 0; 2, 3 und 4 werden zu 3; 5, 6, 7 und 8 werden zu 6 und 9 wird zu 10. Bei einem Download behält SQL Anywhere die Originalwerte von Adaptive Server Enterprise bei, aber bei einem Upload können die Werte geringfügig von den Originalwerten abweichen. Falls DATETIME für einen Primärschlüssel verwendet wird, könnte die Konfliktlösung fehlschlagen. Für eine einwandfreie Synchronisation von DATETIME können Sie die Sekundenbruchteile auf 10 Millisekunden runden. Außerdem muss das Jahr im Bereich von 1753 - 9999 liegen. |
TIMESTAMP WITH TIME ZONE | VARCHAR(34) | Es gibt keinen äquivalenten Datentyp in Adaptive Server Enterprise. Aus diesem Grund sollte eine TIMESTAMP WITH TIME ZONE-Spalte einer VARCHAR(34)-Spalte zugeordnet werden. Beim Upload konvertiert der MobiLink-Server zunächst die Daten in eine Zeichenfolge mit dem Format JJJJ-MM-TT HH:NN:SS.SSSSSS [+|-]HH:NN und übernimmt sie anschließend in die konsolidierte Datenbank. Beim Download konvertiert er die Daten aus der Zeichenfolge in das Format TIMESTAMP WITH TIME ZONE. Vergewissern Sie sich, dass die Daten in der konsolidierten Datenbank diesem Format entsprechen, sonst schlägt der Download fehl. |
TINYINT |
TINYINT |
|
UNIQUEIDENTIFIER |
CHAR(36) |
|
UNIQUEIDENTIFIERSTR |
CHAR(36) |
UNIQUEIDENTIFIERSTR darf nicht verwendet werden. Verwenden Sie stattdessen UNIQUEIDENTIFIER. |
UNSIGNED BIGINT |
UNSIGNED BIGINT |
|
UNSIGNED INTEGER |
UNSIGNED INT |
|
UNSIGNED SMALLINT |
UNSIGNED SMALLINT |
|
UNSIGNED TINYINT |
TINYINT |
|
VARBINARY(n=<MCL) |
VARBINARY |
|
VARBINARY(n>MCL) |
IMAGE |
|
VARBIT(n=<MCL) |
VARCHAR(n) |
|
VARBIT(n>MCL) |
TEXT |
|
VARCHAR(n=<MCL) |
VARCHAR(n) |
|
VARCHAR(n>MCL) |
TEXT |
|
XML |
TEXT |
1 Gilt nur für Adaptive Server Enterprise vor Version 15.5.
2 Gilt nur für Adaptive Server Enterprise ab Version 15.5.
Die folgende Tabelle zeigt, wie konsolidierte Adaptive Server Enterprise-Datentypen entfernten SQL Anywhere- und UltraLite-Datentypen zugeordnet werden. Zum Beispiel sollte eine Spalte, die in der konsolidierten Datenbank den Datentyp DOUBLE PRECISION hat, in der entfernten Datenbank den Typ DOUBLE haben.
Datentyp in Adaptive Server Enterprise | Datentyp in SQL Anywhere oder UltraLite | Hinweise |
---|---|---|
BIGINT |
BIGINT |
|
BIGDATETIME1 |
TIMESTAMP |
|
BIGTIME1 |
TIME |
|
BINARY(n) |
BINARY(n) |
|
BIT |
BIT |
|
CHAR(n) |
VARCHAR(n) |
Es gibt keine Äquivalenz zwischen SQL Anywhere CHAR/NCHAR und Adaptive Server Enterprise CHAR/NCHAR. SQL Anywhere CHAR/NCHAR ist äquivalent zu VARCHAR/NVARCHAR. Sie sollten CHAR/NCHAR nicht in konsolidierten Datenbankspalten verwenden, die synchronisiert sind. Falls Sie Nicht-SQL Anywhere CHAR/NCHAR verwenden müssen, führen Sie den MobiLink-Server mit der Option -b aus. |
DATE |
DATE |
Für SQL Anywhere und UltraLite muss die Zeitangabe das Format 00:00:00 haben. |
DATETIME |
DATETIME |
Bei Adaptive Server Enterprise sind die DATETIME-Werte bis auf 1/300 Sekunde genau. Die letzte Ziffer des Sekundenbruchteils ist immer 0, 3 oder 6. Andere Ziffern werden auf eine dieser Ziffern gerundet. Somit werden 0 und 1 zu 0; 2, 3 und 4 werden zu 3; 5, 6, 7 und 8 werden zu 6 und 9 wird zu 10. Bei einem Download behält SQL Anywhere die Originalwerte von Adaptive Server Enterprise bei, aber bei einem Upload können die Werte geringfügig von den Originalwerten abweichen. Die Konfliktlösung kann fehlschlagen. Für eine einwandfreie Synchronisation von DATETIME können Sie die Sekundenbruchteile auf 10 Millisekunden runden. Außerdem muss das Jahr im Bereich von 1753 - 9999 liegen. |
DECIMAL(p,s) |
DECIMAL(p,s) |
|
DOUBLE PRECISION |
DOUBLE |
|
FLOAT(p) |
FLOAT(p) |
|
IMAGE |
LONG BINARY |
|
INT |
INT |
|
MONEY |
MONEY |
|
NCHAR(n) |
VARCHAR(n) |
Adaptive Server Enterprise NCHAR und NVARCHAR speichern landesspezifische Mehrbyte-Zeichenfolgen, die sich von SQL Anywhere NCHAR und NVARCHAR unterscheiden. Verwenden Sie in einer Mehrbyte-Umgebung SQL Anywhere oder UltraLite VARCHAR. |
NUMERIC(p,s) |
NUMERIC(p,s) |
|
NVARCHAR(n) |
VARCHAR(n) |
Adaptive Server Enterprise NCHAR und NVARCHAR speichern landesspezifische Mehrbyte-Zeichenfolgen, die sich von SQL Anywhere NCHAR und NVARCHAR unterscheiden. Verwenden Sie in einer Mehrbyte-Umgebung SQL Anywhere oder UltraLite VARCHAR. |
REAL |
REAL |
|
SMALLDATETIME |
SMALLDATETIME |
In SQL Anywhere und UltraLite wird SMALLDATETIME als TIMESTAMP implementiert. In Adaptive Server Enterprise ist SMALLDATETIME auf die Minute genau. 29,998 Sekunden oder weniger werden auf die Minute abgerundet, und Werte mit 29,999 Sekunden oder höher werden auf die nächste Minute aufgerundet. In SQL Anywhere oder UltraLite ist SMALLDATETIME auf die Mikrosekunde genau. Für eine einwandfreie Synchronisation in SQL Anywhere oder UltraLite muss SMALLDATETIME auf die Minute gerundet werden. Außerdem muss das Jahr im Bereich von 1900 - 2078 liegen. |
SMALLINT |
SMALLINT |
|
SMALLMONEY |
SMALLMONEY |
|
TEXT |
LONG VARCHAR |
|
TIME |
TIME |
Bei Adaptive Server Enterprise sind die TIME-Werte bis auf 1/300 Sekunde genau. Die letzte Ziffer des Sekundenbruchteils ist immer 0, 3 oder 6. Andere Ziffern werden auf eine dieser Ziffern gerundet. Somit werden 0 und 1 zu 0; 2, 3 und 4 werden zu 3; 5, 6, 7 und 8 werden zu 6 und 9 wird zu 10. Bei einem Download behält SQL Anywhere die Originalwerte von Adaptive Server Enterprise bei, aber bei einem Upload können die Werte geringfügig von den Originalwerten abweichen. Die Konfliktlösung kann fehlschlagen. Für eine einwandfreie Synchronisation von TIME sollten Sie die Sekundenbruchteile auf 10 Millisekunden runden. |
TIMESTAMP |
VARBINARY(8) |
In Adaptive Server Enterprise ist TIMESTAMP ein Binärzähler, der jeweils nach einer Änderung einer Zeile erhöht wird. Jede Tabelle kann daher eine TIMESTAMP-Spalte enthalten und es ist nicht sinnvoll, sie zu synchronisieren. Wenn sie in einer Synchronisation enthalten sein muss, sollten Sie sie in SQL Anywhere oder UltraLite dem Datentyp VARBINARY(8) zuordnen. Es ist nicht möglich, diese Zeitstempel-Spalte explizit einzufügen oder zu aktualisieren, da sie vom Server verwaltet wird. Berücksichtigen Sie dies, wenn Sie Uploadskripten für Tabellen implementieren, die solche Spalten enthalten. |
TINYINT |
TINYINT |
|
UNSIGNED BIGINT |
UNSIGNED BIGINT |
|
UNSIGNED INT |
UNSIGNED INT |
|
UNSIGNED SMALLINT |
UNSIGNED SMALLINT |
|
VARBINARY(n) |
VARBINARY(n) |
|
VARCHAR(n) |
VARCHAR(n) |
|
UNICHAR(n) |
NVARCHAR(n) |
In UltraLite nicht verfügbar. |
UNITEXT |
LONG NVARCHAR |
In UltraLite nicht verfügbar. |
UNIVARCHAR(n) |
NVARCHAR(n) |
In UltraLite nicht verfügbar. |
1 Gilt nur für Adaptive Server Enterprise ab Version 15.5.
![]() |
Kommentieren Sie diese Seite in DocCommentXchange.
|
Copyright © 2012, iAnywhere Solutions, Inc. - SQL Anywhere 12.0.1 |