Die folgende Tabelle zeigt, wie entfernte SQL Anywhere- und UltraLite-Datentypen den konsolidierten Oracle-Datentypen zugeordnet werden. Zum Beispiel sollte eine Spalte, die in der entfernten Datenbank den Datentyp BIT hat, in der konsolidierten Datenbank den Typ NUMBER haben.
Datentypen in SQL Anywhere oder UltraLite |
Datentyp in Oracle |
Hinweise |
---|---|---|
BIGINT |
NUMBER(20) |
|
BINARY(n<=2000) |
RAW(n) |
|
BINARY(n>2000) |
BLOB |
Oracle-Werte können länger sein als SQL Anywhere- oder UltraLite-Werte. Stellen Sie daher sicher, dass beim Download keine zu großen Werte auftauchen. |
BIT |
NUMBER(1) |
|
CHAR(n<=4000) |
VARCHAR2(n byte) |
Oracle VARCHAR2 ermöglicht Ihnen, die Höchstzahl von Bytes oder Zeichen festzulegen. Die maximale Länge von VARCHAR2-Daten beträgt 4000 Bytes. Falls Sie die Anzahl der Zeichen festlegen, müssen Sie sicherstellen, dass die maximale Datenlänge nicht über 4000 Byte beträgt. |
CHAR(n>4000) |
CLOB |
Oracle-Werte können länger sein als SQL Anywhere- oder UltraLite-Werte. Stellen Sie daher sicher, dass beim Download keine zu großen Werte auftauchen. |
DATE |
DATE2 oder TIMESTAMP |
Sekundenbruchteile von SQL Anywhere oder UltraLite können nicht beibehalten werden, wenn ein Oracle DATE-Datentyp verwendet wird, der nicht über Sekundenbruchteile verfügt. Um Probleme zu vermeiden, sollten Sie keine Sekundenwerte mit Bruchteilen verwenden. Das Jahr muss im Bereich von 1 - 9999 liegen. Wenn Sie das Dienstprogramm Interactive SQL verwenden, deaktivieren Sie die Option Return_date_time_as_string, bevor die SQL-Anweisung ausgeführt wird. |
DATETIME |
DATE2 oder TIMESTAMP |
Sekundenbruchteile von SQL Anywhere oder UltraLite können nicht beibehalten werden, wenn ein Oracle DATE-Datentyp verwendet wird, der nicht über Sekundenbruchteile verfügt. Um Probleme zu vermeiden, sollten Sie keine Sekundenwerte mit Bruchteilen verwenden. Das Jahr muss im Bereich von 1 - 9999 liegen. Wenn Sie das Dienstprogramm Interactive SQL verwenden, deaktivieren Sie die Option Return_date_time_as_string, bevor die SQL-Anweisung ausgeführt wird. |
DECIMAL(p<=38,s) |
NUMBER(p, 0<=s<=38) |
In SQL Anywhere DECIMAL liegt p im Bereich von 1 bis 127 und s ist immer kleiner oder gleich p. In Oracle NUMBER liegt p im Bereich von 1 bis 38 und s im Bereich von -84 bis 127. Für die Synchronisation muss der Bereich für Oracle NUMBER auf 0 bis 38 eingeschränkt werden. |
DECIMAL(p>38,s) |
Es gibt keinen entsprechenden Datentyp in Oracle. |
|
DOUBLE |
DOUBLE PRECISION oder BINARY_DOUBLE1 |
Die speziellen Werte INF, -INF und NAN von Oracle 10g BINARY_FLOAT und BINARY_DOUBLE können nicht mit SQL Anywhere oder UltraLite synchronisiert werden. |
FLOAT(p) |
FLOAT(p) |
|
IMAGE |
BLOB |
Oracle-Werte können länger sein als SQL Anywhere- oder UltraLite-Werte. Stellen Sie daher sicher, dass beim Download keine zu großen Werte auftauchen. |
INTEGER |
INT |
|
LONG BINARY |
BLOB |
Oracle-Werte können länger sein als SQL Anywhere- oder UltraLite-Werte. Stellen Sie daher sicher, dass beim Download keine zu großen Werte auftauchen. |
LONG NVARCHAR |
NCLOB |
Oracle CLOB und NCLOB können bis zu 4 GByte Daten enthalten. SQL Anywhere LONG VARCHAR und LONG NVARCHAR können nur bis zu 2 GByte Daten enthalten. Oracle-Werte können länger sein als SQL Anywhere- oder UltraLite-Werte. Stellen Sie daher sicher, dass beim Download keine zu großen Werte auftauchen. |
LONG VARBIT |
CLOB |
Oracle-Werte können länger sein als SQL Anywhere- oder UltraLite-Werte. Stellen Sie daher sicher, dass beim Download keine zu großen Werte auftauchen. |
LONG VARCHAR |
CLOB |
Oracle CLOB und NCLOB können bis zu 4 GByte Daten enthalten. SQL Anywhere LONG VARCHAR und LONG NVARCHAR können nur bis zu 2 GByte Daten enthalten. Oracle-Werte können länger sein als SQL Anywhere- oder UltraLite-Werte. Stellen Sie daher sicher, dass beim Download keine zu großen Werte auftauchen. |
MONEY |
NUMBER(19,4) |
|
NCHAR(c) |
NVARCHAR2(c char) oder NCLOB |
Die Größe von SQL Anywhere NCHAR und Oracle NVARCHAR2 zeigt die Höchstzahl von Unicode-Zeichen an. Die Datenlänge von Oracle NVARCHAR2 kann nicht mehr als 4000 Byte betragen. Es ist schwierig, die maximale Bytelänge aus der Zeichengröße zu berechnen. Allgemein gilt: Bei einer Größe von über 1000 sollte zu NCLOB, andernfalls zu NVARCHAR2 zugeordnet werden. |
NTEXT |
NCLOB |
Oracle NCLOB können bis zu 4 GByte Daten enthalten. SQL Anywhere NTEXT (oder LONG NVARCHAR) kann nur bis zu 2 GByte Daten enthalten. Oracle-Werte können länger sein als SQL Anywhere- oder UltraLite-Werte. Stellen Sie daher sicher, dass beim Download keine zu großen Werte auftauchen. |
NUMERIC(p<=38,s) |
NUMBER(p, 0<=s<=38) |
In SQL Anywhere NUMERIC liegt p im Bereich von 1 bis 127 und s ist immer kleiner oder gleich p. In Oracle NUMBER liegt p im Bereich von 1 bis 38 und s im Bereich von -84 bis 127. Für die Synchronisation muss der Bereich für Oracle NUMBER auf 0 bis 38 eingeschränkt werden. |
NUMERIC(p>38,s) |
Es gibt keinen entsprechenden Datentyp in Oracle. |
|
NVARCHAR |
NVARCHAR2(c char) oder NCLOB |
Die Größe von SQL Anywhere NCHAR und Oracle NVARCHAR2 zeigt die Höchstzahl von Unicode-Zeichen an. Die Datenlänge von Oracle NVARCHAR2 kann nicht mehr als 4000 Byte betragen. Es ist schwierig, die maximale Bytelänge aus der Zeichengröße zu berechnen. Allgemein gilt: Bei einer Größe von über 1000 sollte zu NCLOB, andernfalls zu NVARCHAR2 zugeordnet werden. |
REAL |
REAL oder BINARY_FLOAT1 |
Die speziellen Werte INF, -INF und NAN von Oracle 10g BINARY_FLOAT und BINARY_DOUBLE können nicht mit SQL Anywhere oder UltraLite synchronisiert werden. |
SMALLDATETIME |
DATE2 oder TIMESTAMP |
Sekundenbruchteile von SQL Anywhere oder UltraLite können nicht beibehalten werden, wenn ein Oracle DATE-Datentyp verwendet wird, der nicht über Sekundenbruchteile verfügt. Um Probleme zu vermeiden, sollten Sie keine Sekundenwerte mit Bruchteilen verwenden. Das Jahr muss im Bereich von 1 - 9999 liegen. |
SMALLINT |
NUMBER(5) |
|
SMALLMONEY |
NUMBER(10,4) |
|
TEXT |
CLOB |
Oracle CLOB kann bis zu 4 GByte Daten enthalten. SQL Anywhere TEXT (oder LONG VARCHAR) kann nur bis zu 2 GByte Daten enthalten. Oracle-Werte können länger sein als SQL Anywhere- oder UltraLite-Werte. Stellen Sie daher sicher, dass beim Download keine zu großen Werte auftauchen. |
TIME |
DATE2 oder TIMESTAMP |
Sekundenbruchteile von SQL Anywhere oder UltraLite können nicht beibehalten werden, wenn ein Oracle DATE-Datentyp verwendet wird, der nicht über Sekundenbruchteile verfügt. Um Probleme zu vermeiden, sollten Sie keine Sekundenwerte mit Bruchteilen verwenden. Wenn Sie das Dienstprogramm Interactive SQL verwenden, deaktivieren Sie die Option Return_date_time_as_string, bevor die SQL-Anweisung ausgeführt wird. |
TIMESTAMP |
DATE2 oder TIMESTAMP |
Sekundenbruchteile von SQL Anywhere oder UltraLite können nicht beibehalten werden, wenn ein Oracle DATE-Datentyp verwendet wird, der nicht über Sekundenbruchteile verfügt. Um Probleme zu vermeiden, sollten Sie keine Sekundenwerte mit Bruchteilen verwenden. Das Jahr muss im Bereich von 1 - 9999 liegen. Wenn Sie das Dienstprogramm Interactive SQL verwenden, deaktivieren Sie die Option Return_date_time_as_string, bevor die SQL-Anweisung ausgeführt wird. |
TINYINT |
NUMBER(3) |
Bei Downloads dürfen Oracle-Werte nicht negativ sein. |
UNSIGNED BIGINT |
NUMBER(20) |
Bei Downloads dürfen Oracle-Werte nicht negativ sein. |
UNSIGNED INTEGER |
NUMBER(11) |
Bei Downloads dürfen Oracle-Werte nicht negativ sein. |
UNSIGNED SMALLINT |
NUMBER(5) |
Bei Downloads dürfen Oracle-Werte nicht negativ sein. |
UNSIGNED TINYINT |
NUMBER(3) |
Bei Downloads dürfen Oracle-Werte nicht negativ sein. |
UNIQUEIDENTIFIER |
CHAR(36) |
|
UNIQUEIDENTIFIERSTR |
CHAR(36) |
Es wird empfohlen, UNIQUEIDENTIFIERSTR nicht für Oracle zu verwenden. Verwenden Sie stattdessen UNIQUEIDENTIFIER. |
VARBINARY(n<=2000) |
RAW(n) |
|
VARBINARY(n>2000) |
BLOB |
Oracle-Werte können länger sein als SQL Anywhere- oder UltraLite-Werte. Stellen Sie daher sicher, dass beim Download keine zu großen Werte auftauchen. |
VARBIT(n<=4000) |
VARCHAR2(n byte) |
|
VARBIT(n>4000) |
CLOB |
Oracle-Werte können länger sein als SQL Anywhere- oder UltraLite-Werte. Stellen Sie daher sicher, dass beim Download keine zu großen Werte auftauchen. |
VARCHAR(n<=4000) |
VARCHAR2(n byte) |
Oracle VARCHAR2 ermöglicht Ihnen, die Höchstzahl von Bytes oder Zeichen festzulegen. Die maximale Länge von VARCHAR2-Daten beträgt 4000 Bytes. Falls Sie die Anzahl der Zeichen festlegen, müssen Sie sicherstellen, dass die maximale Datenlänge nicht über 4000 Byte beträgt. |
VARCHAR(n>4000) |
CLOB |
Oracle-Werte können länger sein als SQL Anywhere- oder UltraLite-Werte. Stellen Sie daher sicher, dass beim Download keine zu großen Werte auftauchen. |
XML |
CLOB |
Oracle CLOB und NCLOB können bis zu 4 GByte Daten enthalten. SQL Anywhere XML kann nur bis zu 2 GByte Daten enthalten. Oracle-Werte können länger sein als SQL Anywhere- oder UltraLite-Werte. Stellen Sie daher sicher, dass beim Download keine zu großen Werte auftauchen. |
1 Gilt nur für Oracle Version 10g oder höher.
2 Gilt nur für Oracle Version 8i.
Die LONG-Datentypen werden in Oracle 8, 8i und 9i nicht mehr unterstützt.
Für eine saubere Synchronisation von LONG-Datentypen müssen Sie die Option Oracle Abfrage von Long-Spalten erzwingen im Fenster ODBC-Datenquellenkonfiguration des iAnywhere Solutions Oracle ODBC-Treibers aktivieren.
Die folgende Tabelle zeigt, wie konsolidierte Oracle-Datentypen entfernten SQL Anywhere- oder UltraLite-Datentypen zugeordnet werden. Zum Beispiel sollte eine Spalte, die in der konsolidierten Datenbank den Datentyp LONG hat, in der entfernten Datenbank den Typ LONG VARCHAR haben.
Datentyp in Oracle | Datentypen in SQL Anywhere oder UltraLite | Hinweise |
---|---|---|
BFILE |
LONG BINARY |
Nur Download. Oracle-Werte können länger sein als SQL Anywhere- oder UltraLite-Werte. Stellen Sie daher sicher, dass beim Download keine zu großen Werte auftauchen. |
BINARY_DOUBLE |
DOUBLE |
Die speziellen Werte INF, -INF und NAN von BINARY_FLOAT können nicht mit SQL Anywhere oder UltraLite synchronisiert werden. Die Genauigkeit von FLOAT und DOUBLE in Oracle unterscheidet sich von derjenigen in SQL Anywhere und UltraLite. Der Wert der Daten kann sich abhängig von der Genauigkeit ändern. |
BINARY_FLOAT |
REAL |
Die speziellen Werte INF, -INF und NAN von BINARY_FLOAT können nicht mit SQL Anywhere oder UltraLite synchronisiert werden. Die Genauigkeit von FLOAT und DOUBLE in Oracle unterscheidet sich von derjenigen in SQL Anywhere und UltraLite. Der Wert der Daten kann sich abhängig von der Genauigkeit ändern. |
BLOB |
LONG BINARY |
Oracle-Werte können länger sein als SQL Anywhere- oder UltraLite-Werte. Stellen Sie daher sicher, dass beim Download keine zu großen Werte auftauchen. |
CHAR(n byte) |
VARCHAR(n) |
SQL Anywhere CHAR und Oracle CHAR sind nicht äquivalent. SQL Anywhere CHAR ist äquivalent zu VARCHAR. Sie sollten CHAR/NCHAR nicht in konsolidierten Datenbankspalten verwenden, die synchronisiert sind. Falls Sie Nicht-SQL Anywhere CHAR verwenden müssen, führen Sie den MobiLink-Server mit der Option -b aus. SQL Anywhere- oder UltraLite-Werte können länger sein als Oracle-Werte. Stellen Sie daher sicher, dass beim Upload keine zu großen Werte auftauchen. |
CLOB |
LONG VARCHAR |
Oracle-Werte können länger sein als SQL Anywhere- oder UltraLite-Werte. Stellen Sie daher sicher, dass beim Download keine zu großen Werte auftauchen. |
DATE |
TIMESTAMP |
Das Jahr muss im Bereich von 1 - 9999 liegen. |
INTERVAL YEAR(Jahr_Gesamtstellenzahl) TO MONTH |
Es gibt keinen entsprechenden Datentyp in SQL Anywhere oder UltraLite. |
|
INTERVAL DAY(Tag_Gesamtstellenzahl) TO SECOND(p) |
Es gibt keinen entsprechenden Datentyp in SQL Anywhere oder UltraLite. |
|
LONG |
LONG VARCHAR |
|
LONG RAW |
LONG BINARY |
|
NCHAR(c char) |
NVARCHAR(c) |
SQL Anywhere NCHAR und Oracle NCHAR sind nicht äquivalent. SQL Anywhere NCHAR ist äquivalent zu NVARCHAR. Sie sollten NCHAR nicht in konsolidierten Datenbankspalten verwenden, die synchronisiert sind. Falls Sie Nicht-SQL Anywhere NCHAR verwenden müssen, führen Sie den MobiLink-Server mit der Option -b aus. SQL Anywhere- oder UltraLite-Werte können länger sein als Oracle-Werte. Stellen Sie daher sicher, dass beim Upload keine zu großen Werte auftauchen. |
NCLOB |
LONG NVARCHAR |
In UltraLite nicht verfügbar. Oracle-Werte können länger sein als SQL Anywhere- oder UltraLite-Werte. Stellen Sie daher sicher, dass beim Download keine zu großen Werte auftauchen. |
NUMBER(p,s) |
NUMBER(p,s) |
In SQL Anywhere NUMBER liegt p im Bereich von 1 bis 127, und s ist immer kleiner oder gleich p. In Oracle NUMBER liegt p im Bereich von 1 bis 38 und s im Bereich von -84 bis 127. Für die Synchronisation muss die Anzahl der Dezimalstellen von Oracle NUMBER im Bereich von 0 bis 38 liegen. |
NVARCHAR2(c char) |
NVARCHAR(c) |
In UltraLite nicht verfügbar. SQL Anywhere- oder UltraLite-Werte können länger sein als Oracle-Werte. Stellen Sie daher sicher, dass beim Upload keine zu großen Werte auftauchen. |
RAW |
BINARY |
SQL Anywhere- oder UltraLite-Werte können länger sein als Oracle-Werte. Stellen Sie daher sicher, dass beim Upload keine zu großen Werte auftauchen. |
ROWID |
VARCHAR(64) |
UROWID und ROWID sind schreibgeschützt und werden daher wahrscheinlich nicht synchronisiert. |
TIMESTAMP(p<=6) |
TIMESTAMP |
Wenn p<6 ist, müssen Sie möglicherweise sicherstellen, dass SQL Anywhere- oder UltraLite-Werte die gleiche Genauigkeit haben. Andernfalls könnte es sein, dass die Konflikterkennung fehlschlägt bzw. dass doppelte Zeilen vorkommen. Das Jahr muss im Bereich von 1 - 9999 liegen. |
TIMESTAMP(p>6) |
Es gibt keinen entsprechenden Datentyp in SQL Anywhere oder UltraLite. |
|
TIMESTAMP(p) WITH LOCAL TIME ZONE |
Es gibt keinen entsprechenden Datentyp in SQL Anywhere oder UltraLite. |
|
TIMESTAMP(p) WITH TIME ZONE |
Es gibt keinen entsprechenden Datentyp in SQL Anywhere oder UltraLite. |
|
UROWID |
VARCHAR(64) |
UROWID und ROWID sind schreibgeschützt und werden daher wahrscheinlich nicht synchronisiert. |
VARCHAR2(n byte) |
VARCHAR(n) |
SQL Anywhere- oder UltraLite-Werte können länger sein als Oracle-Werte. Stellen Sie daher sicher, dass beim Upload keine zu großen Werte auftauchen. |
Kommentieren Sie diese Seite in DocCommentXchange. Senden Sie uns Feedback über diese Seite via E-Mail. |
Copyright © 2009, iAnywhere Solutions, Inc. - SQL Anywhere 11.0.1 |