SnowConvert AI - Oracle - データ型¶
このセクションでは、OracleとSnowflakeのデータ型間の等価性、および算術演算の違いに関する注意点を示します。
Oracle |
Snowflake |
|---|---|
*リンクから詳細をご覧ください。 |
|
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) |
|
現在サポートされていません |
|
*定義される |
|
*定義される |
|
VARIANT |
|
*定義される |
|
*定義される |
|
TIMESTAMP |
|
TIMESTAMP_TZ |
|
TIMESTAMP_LTZ |
|
*定義される |
|
VARCHAR(18) |
|
VARCHAR |
|
VARCHAR |
|
VARIANT |
算術演算に関する注意事項¶
数値データ型に対して行われるすべての操作は、内部的に数値として保存されることに注意してください。さらに、実行した操作によっては、Snowflake内での中間値の保存方法に関連したエラーが発生する可能性があります。詳細情報については、 Snowflakeの中間数値に関するSnowflakeの投稿 をご確認ください。
ANSI データ型¶
説明¶
テーブルとクラスタを作成する SQL ステートメントでは、 ANSI データ型と、 IBM 製品 SQL/DS および DB2 のデータ型も使用できます。Oracleは、Oracleデータベースのデータ型名と異なる ANSI または IBM データ型名を認識します。データ型を同等のOracleデータ型に変換し、Oracleデータ型を列データ型の名前として記録し、後述のテーブルに示す変換に基づいて列データをOracleデータ型に格納します。(Oracle言語リファレンス ANSI、 DB2、および SQL/DS データ型)。
新しいテーブルを作成する際、OracleとSnowflakeはいくつかのデータ型を同義語やエイリアスとして扱い、デフォルトのデータ型に変換します。次のテーブルに示すように:
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 |
Oracleのデータ型の変換仕様の詳細については、Oracle組み込みデータ型 をご参照ください。
注釈
VARCHAR*: ほとんどの ANSI データ型はSnowflakeでコンパイルされますが、アスタリスクの付いたデータ型は手動で VARCHAR に変換されます。
既知の問題¶
問題は見つかりませんでした。
データ型のカスタマイズ¶
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
例¶
Oracle¶
CREATE TABLE products (
product_id NUMBER(10),
price NUMBER(15, 2)
);
INSERT INTO products VALUES (1, 99.99);
Snowflake (with DECFLOAT customization for price column)¶
CREATE OR REPLACE TABLE products (
product_id NUMBER(10),
price DECFLOAT
);
INSERT INTO products VALUES (1, CAST(99.99 AS DECFLOAT));
注釈
The TypeMappings report (TypeMappings.csv) provides a detailed view of all data type transformations applied during conversion. See TypeMappings Report for more information.