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

 

Oracle-Datentypzuordnung

Zuordnung zu konsolidierten Oracle-Datentypen

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.

Hinweis

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.

Zuordnung zu entfernten SQL Anywhere- oder UltraLite-Datentypen

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.