SnowConvert AI :Oracle - リテラル¶
リテラルと定数値は同義語で、固定データ値を指します。\([OracleSQL Language Reference Literals](https://docs.oracle.com/en/database/oracle/oracle-database/21/sqlrf/Literals.html#GUID-192417E8-A79D-4A1D-9879-68272D925707))
間隔リテラル¶
現在のシナリオではサポートされていないインターバルリテラル
説明¶
Snowflake間隔は算術演算でのみ使用できます。その他のシナリオで使用される間隔はサポートされていません。
コード例¶
Oracle¶
Snowflake¶
既知の問題¶
問題は見つかりませんでした。
間隔タイプと日付タイプ¶
Interval型とDate型の間の操作はサポートされていません
説明¶
INTERVAL YEAR TO MONTH および INTERVAL DAY TO SECOND はサポートされていないデータ型で、それらは VARCHAR(20) に変換されます。したがって、 Date型 と元の Interval型列 との間のすべての算術演算はサポートされていません。
さらに、SnowflakeではInterval型とDate型(この順序)の間の操作はサポートされておらず、これらの操作でもこのEWIが使用されます。
コード例¶
Oracle¶
Snowflake¶
推奨事項¶
Oracleの動作をシミュレートするために UDF を実装します。
移行時に列に格納されていたすでに変換済みの値を抽出し、可能であればSnowflake間隔定数として使用します。
さらにサポートが必要な場合は、 snowconvert-support@snowflake.com までメールでお問い合わせください。
関連 EWIs¶
SSC-EWI-0036: データ型が別のデータ型に変換されました。
[SSC-EWI-OR0095](../../../general/technical-documentation/issues-and-troubleshooting/conversion-issues/oracleEWI.md#ssc-ewi-or0095):Interval型とDate型の間の操作はサポートされていません。
[SSC-FDM-OR0042](../../../general/technical-documentation/issues-and-troubleshooting/functional-difference/oracleFDM.md#ssc-fdm-or0042):日付型をタイムスタンプに変換すると異なる動作をします。
テキストリテラル¶
説明¶
このリファレンスの他の部分で、式、条件、SQL 関数、SQL ステートメントの構文に
文字列が登場するときは、テキストリテラル表記を使用して値を指定してください。
サンプルソースパターン¶
空の文字列 ('')¶
空文字列は、Oracleでは NULL と等価であるため、Snowflakeでの動作をエミュレートするために、リテラルをプロシージャ内で使用するかどうかに応じて、空文字列は NULL または undefined に変換されます。
Oracle¶
結果¶
UPPER('') |
|---|
Snowflake¶
結果¶
UPPER(NULL) |
|---|
ストアドプロシージャ内の空文字列¶
Oracle¶
結果¶
COL1 |
COL2 |
|---|---|
hello |
Snowflake¶
結果¶
COL1 |
COL2 |
|---|---|
hello |
組み込み関数内の空文字列¶
警告
REPLACE および _CONCAT_関数の引数として空文字列が使用されている場合、機能的等価性を保つため、この変換は適用されません。
Oracle¶
結果¶
REPLACE('HELLOWORLD','','L') |
CONCAT('A','') |
|---|---|
Hello world |
A |
Snowflake¶
結果¶
REPLACE('HELLO WORLD', '', 'L') |
CONCAT('A','') |
|---|---|
Hello world |
A |
注釈
このような場合に空の文字列を NULL に置き換えると、クエリの結果が異なります。
既知の問題¶
問題は見つかりませんでした。
関連 EWIs¶
関連 EWIs はありません。