SnowConvert AI – Oracle – Datentypen¶
Dieser Abschnitt zeigt Äquivalente zwischen Datentypen in Oracle und Snowflake und enthält einige Hinweise zu arithmetischen Unterschieden.
Oracle |
Snowflake |
|---|---|
*Weitere Informationen über den Link |
|
VARCHAR |
|
FLOAT |
|
FLOAT |
|
BINARY |
|
CHAR [N] |
|
VARCHAR |
|
TIMESTAMP |
|
FLOAT |
|
VARCHAR(20) |
|
VARCHAR(20) |
|
VARIANT |
|
VARCHAR |
|
BINARY |
|
NCHAR [N] |
|
VARCHAR |
|
NUMBER(p, s) |
|
VARCHAR [N] |
|
BINARY |
|
VARCHAR(18) |
|
VARCHAR [N] |
|
Wird derzeit nicht unterstützt. |
|
*noch zu definieren_ |
|
*noch zu definieren_ |
|
VARIANT |
|
*noch zu definieren_ |
|
*noch zu definieren_ |
|
TIMESTAMP |
|
TIMESTAMP_TZ |
|
TIMESTAMP_LTZ |
|
*noch zu definieren_ |
|
VARCHAR(18) |
|
VARCHAR |
|
VARCHAR |
|
VARIANT |
Anmerkungen zu den arithmetischen Operationen¶
Bitte beachten Sie, dass jede Operation, die mit numerischen Datentypen durchgeführt wird, intern als Zahl gespeichert wird. Außerdem kann es je nach der durchgeführten Operation zu einem Fehler kommen, der damit zusammenhängt, wie Zwischenwerte in Snowflake gespeichert werden. Weitere Informationen finden Sie in diesem Beitrag von Snowflake über Zwischenwerte in Snowflake.
ANSI-Datentypen¶
Beschreibung¶
SQL-Anweisungen, die Tabellen und Cluster erstellen, können auch ANSI-Datentypen und Datentypen aus den IBM-Produkten SQL/DS und DB2 verwenden. Oracle erkennt den ANSI- oder IBM-Datentypnamen, der sich vom Datentypnamen der Oracle-Datenbank unterscheidet. Es konvertiert den Datentyp in den entsprechenden Oracle Data Type, nimmt den Oracle-Datentyp als Namen des Spalten-Datentyps auf und speichert die Spaltendaten im Oracle-Datentyp auf der Grundlage der in den folgenden Tabellen aufgeführten Konvertierungen. (Oracle Language Reference ANSI, DB2, and SQL/DS Data Types).
Bei der Erstellung einer neuen Tabelle behandeln Oracle und Snowflake einige Datentypen als Synonyme und Aliasnamen und wandeln sie in den Standarddatentyp um. Wie in der nächsten Tabelle dargestellt:
ANSI |
ORACLE |
SNOWFLAKE |
|---|---|---|
CHARACTER (n) |
CHAR (n) |
VARCHAR |
CHAR (n) |
CHAR (n) |
VARCHAR |
CHARACTER VARYING (n) |
VARCHAR2 (n) |
VARCHAR |
CHAR VARYING (n) |
VARCHAR2 (n) |
VARCHAR |
NATIONAL CHARACTER (n) |
NCHAR (n) |
VARCHAR* |
NATIONAL CHAR (n) |
NCHAR (n) |
VARCHAR* |
NCHAR (n) |
NCHAR (n) |
VARCHAR |
NATIONAL CHARACTER VARYING (n) |
NVARCHAR2 (n) |
VARCHAR* |
NATIONAL CHAR VARYING (n) |
NVARCHAR2 (n) |
VARCHAR* |
NCHAR VARYING (n) |
NVARCHAR2 (n) |
NUMBER (p, s) |
NUMERIC [(p, s)] |
NUMBER (p, s) |
NUMBER (p, s) |
DECIMAL [(p, s)] |
NUMBER (p, s) |
NUMBER (38) |
INTEGER |
NUMBER (38) |
NUMBER (38) |
INT |
NUMBER (38) |
NUMBER (38) |
SMALLINT |
NUMBER (38) |
NUMBER (38) |
FLOAT |
FLOAT (126) |
DOUBLE |
DOUBLE PRECISION |
FLOAT (126) |
DOUBLE |
REAL |
FLOAT (63) |
DOUBLE |
Weitere Informationen über die Übersetzungsspezifikation der Oracle-Datentypen finden Sie unter Oracle – Integrierte Datentypen.
Bemerkung
VARCHAR*: Fast alle ANSI-Datentypen lassen sich in Snowflake kompilieren, aber die mit einem Sternchen gekennzeichneten Datentypen werden manuell in VARCHAR konvertiert.
Bekannte Probleme¶
Es wurden keine Probleme gefunden.
Datentypanpassung¶
SnowConvert AI enables Data Type Customization to specify rules for data type transformation based on data type origin and column name. This feature allows you to personalize data type conversions and set precision values more accurately during migration.
For complete documentation on configuring data type customization, including JSON structure, configuration options, and priority rules, see Data type mappings in the Oracle Conversion Settings documentation.
NUMBER to DECFLOAT Transformation¶
SnowConvert AI supports transforming Oracle NUMBER columns to Snowflake DECFLOAT data type. This is useful when you need to preserve the exact decimal precision of numeric values during migration.
When a NUMBER column is configured to be transformed to DECFLOAT:
The column data type in
CREATE TABLEstatements is transformed toDECFLOATNumeric literals in
INSERTstatements that targetDECFLOATcolumns are automatically wrapped withCAST(... AS DECFLOAT)to ensure proper data type handlingColumn references in
INSERT ... SELECTstatements are also cast appropriately
Beispiel¶
Oracle¶
Snowflake (with DECFLOAT customization for price column)¶
Bemerkung
The TypeMappings report (TypeMappings.csv) provides a detailed view of all data type transformations applied during conversion. See TypeMappings Report for more information.