SnowConvert AI - Oracle - データ型

このセクションでは、OracleとSnowflakeのデータ型間の等価性、および算術演算の違いに関する注意点を示します。

Oracle

Snowflake

ANSIデータ型

*リンクから詳細をご覧ください。

BFILE

VARCHAR

BINARY_DOUBLE

FLOAT

BINARY_FLOAT

FLOAT

BLOB

BINARY

CHAR (N)

CHAR (N)

CLOB

VARCHAR

DATE

TIMESTAMP

FLOAT

FLOAT

INTERVAL YEAR TO MONTH

VARCHAR(20)

INTERVAL DAY TO SECOND

VARCHAR(20)

JSON

VARIANT

LONG

VARCHAR

LONG RAW

BINARY

NCHAR (N)

NCHAR (N)

NCLOB

VARCHAR

NUMBER(p, s)

NUMBER(p, s)

NVARCHAR2 (N)

VARCHAR (N)

RAW

BINARY

ROWID

VARCHAR(18)

VARCHAR2 (N)

VARCHAR (N)

SDO_GOMETRY

現在サポートされていません

SDO_TOPO___GEOMETRY

*定義される

SDO_GEORASTER

*定義される

SYS.ANYDATA

VARIANT

SYS.ANYDATASET

*定義される

SYS.ANYTYPE

*定義される

TIMESTAMP

TIMESTAMP

TIMESTAMP WITH TIME ZONE

TIMESTAMP_TZ

TIMESTAMP WITH LOCAL TIME ZONE

TIMESTAMP_LTZ

URITYPE

*定義される

UROWID

VARCHAR(18)

VARCHAR

VARCHAR

VARCHAR2

VARCHAR

XMLType

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:

  1. The column data type in CREATE TABLE statements is transformed to DECFLOAT

  2. Numeric literals in INSERT statements that target DECFLOAT columns are automatically wrapped with CAST(... AS DECFLOAT) to ensure proper data type handling

  3. Column references in INSERT ... SELECT statements are also cast appropriately

Oracle
CREATE TABLE products (
    product_id NUMBER(10),
    price NUMBER(15, 2)
);

INSERT INTO products VALUES (1, 99.99);
Copy
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));
Copy

注釈

The TypeMappings report (TypeMappings.csv) provides a detailed view of all data type transformations applied during conversion. See TypeMappings Report for more information.