SnowConvert AI - Oracleの機能の違い¶
SSC-FDM-OR0001¶
注釈
このFDMは、Oracle SnowConvert AIの古いバージョン用に追加されたものです。現在は非推奨です。
説明¶
This error is related to the Assessment report file. It appears when an error occurs while writing the assessment details report file.
ベストプラクティス¶
さらにサポートが必要な場合は、 snowconvert-support@snowflake.com までメールでお問い合わせください。
SSC-FDM-OR0002¶
シーケンス開始値がSnowflakeで許容される最大値を超えています。
注釈
このFDMは非推奨です。 SSC-EWI-OR0068 をご参照ください。
説明¶
このエラーは、 START WITH ステートメントの値がSnowflakeで許容される最大値を超えた場合に表示されます。開始値についてSnowflakeのメッセージは次の通りです。シーケンスが返す最初の値を指定します。サポートされる値は、64ビットの2の補数整数(-2^63 から 2^63-1 まで)で表すことができる値です。つまり、前述の内容に基づくと、許容される最大値は、正の数の場合は 9223372036854775807 、負の数の場合は 9223372036854775808 となります。
コード例¶
入力コード:¶
生成されたコード:¶
ベストプラクティス¶
シーケンスをリセットし、その使用法も変更することをお勧めします。 NOTE :ターゲット列には、この値を保持するのに十分なスペースが必要です。
さらにサポートが必要な場合は、 snowconvert-support@snowflake.com までメールでお問い合わせください。
SSC-FDM-OR0003¶
with要素文から検索句が削除されました。
注釈
このFDMは非推奨です。 SSC-EWI-OR0038 をご参照ください。
説明¶
search_clause は、SELECTステートメントで行を処理する順序を定義するために使用されます。この機能により、カスタマイズされたデータのトラバーサルが可能になり、指定された条件に基づいて特定の順序で結果が返されるようになります。しかし、 search_clause によって特徴付けられるこの動作は、Snowflakeではサポートされていないことに注意することが重要です。
Oracleのようなデータベースでは、 search_clause は、再帰クエリや共通テーブル式(CTEs)と組み合わせて、階層データを探索する順序に影響を与えるためによく使用されます。search_clause の中で特定の列または列のセットを指定することで、階層の深さ優先または幅優先のトラバーサルを制御し、行の処理順序に影響を与えることができます。
Snowflakeでは、 search_clause メッセージが生成され、その後、 search_clause が削除されます。
コード例¶
入力コード:¶
生成されたコード:¶
推奨¶
ユーザーによる追加のアクションは必要ありません。
さらにサポートが必要な場合は、 snowconvert-support@snowflake.com までメールでお問い合わせください。
SSC-FDM-OR0004¶
Snowflakeがサポートしていないため、order by句からsiblingsキーワードが削除されました。
説明¶
Oracleでは、 ORDER BY SIBLINGS 句を階層クエリで使用することで、階層で指定されたデータの順序を保持しながら、同じ階層で兄弟となる値の並べ替えを行うことができます。これはSnowflakeではサポートされていません。
コード例¶
入力コード:¶
生成されたコード:¶
SIBLINGS句で達成される順序とまったく同じ順序にはアクセスできないかもしれませんが、同様の結果を得るための代替手段はいくつかあります。
ORDER BYを使って、目的のソートを適用する外側のクエリにクエリを組み込みます。CONNECT BYを使用した階層クエリでCTEを作成し、後続のクエリでCTEを参照し、ORDER BYを適用して兄弟ソート(同じレベルの行)を行います。
さらにサポートが必要な場合は、 snowconvert-support@snowflake.com までメールでお問い合わせください。
SSC-FDM-OR0005¶
同義語はSnowflakeではサポートされていませんが、この同義語への参照は元のオブジェクト名で変更されました。
説明¶
同義語はSnowflakeではサポートされていません。同義語は元の名前に置き換えられます。
コード例¶
入力コード:¶
生成されたコード:¶
ベストプラクティス¶
ユーザーによる追加のアクションは必要ありません。
さらにサポートが必要な場合は、 snowconvert-support@snowflake.com までメールでお問い合わせください。
SSC-FDM-OR0006¶
NULLではないインライン制約から制約状態が削除されました。
説明¶
この警告は、not null列制約が列インライン定義の一部として以下のOracle制約状態のいずれかを含んでいる場合に発生します。
Snowflakeはこれらの状態をサポートしていないため、 NOT NULL インライン制約から削除されます。
コード例¶
入力コード:¶
生成されたコード:¶
ベストプラクティス¶
ユーザーによる追加のアクションは必要ありません。
さらにサポートが必要な場合は、 snowconvert-support@snowflake.com までメールでお問い合わせください。
SSC-FDM-OR0007¶
Snowflakeはオブジェクトのバージョン管理をサポートしていません。開発者は、コードのバージョニングのための別のアプローチを検討する必要があります。
説明¶
Snowflake doesn't support the versioning of objects. The modifier EDITIONABLE or NONEDITIONABLE is removed in the converted code and a warning is added.
コード例¶
入力コード:¶
生成されたコード:¶
ベストプラクティス¶
ユーザーはコードのバージョニングのための別のアプローチを検討する必要があります。
さらにサポートが必要な場合は、 snowconvert-support@snowflake.com までメールでお問い合わせください。
SSC-FDM-OR0008¶
設定された量指定子はサポートされていません
注釈
このFDMは非推奨です。 SSC-EWI-OR0071 をご参照ください。
説明¶
量指定子「all」はSnowflakeではサポートされていません。この修飾子はソースコードから削除され、警告が追加されます。結果のコードは予期せぬ動作をする場合があります。
コード例¶
入力コード:¶
生成されたコード:¶
Snowflakeでは、 INTERSECT および MINUS/EXCEPT 演算子は常に重複値を削除します。
ベストプラクティス¶
「all」量指定子の機能をエミュレートするために、Snowflakeでの代替案をチェックしてください。
さらにサポートが必要な場合は、 snowconvert-support@snowflake.com までメールでお問い合わせください。
SSC-FDM-OR0009¶
SQL暗黙カーソル値は異なる可能性があります。
説明¶
注釈
Generate Procedures and Macros using JavaScript as the target language adding the following flag -t JavaScript or --PLTargetLanguage JavaScript
注釈
わかりやすくするため、出力コードの一部を省略しています。
このEWIは、SQL暗黙カーソル値が使用されている場合に表示されます。これは、Oracleがクエリのタイプによって異なる値を使用するためです。例えば、 SELECT の場合、SQL暗黙カーソル値を設定するために使用される値は、クエリによって返される行の数です。クエリタイプが UPDATE/CREATE/DELETE/INSERT の場合、使用される値は影響を受ける行の数であり、これがこのEWIが表示される主な理由です。
コード例¶
入力コード:¶
-- Additional Params: -t JavaScript
--Transformation for implicit cursor
CREATE OR REPLACE PROCEDURE SP_SAMPLE AUTHID DEFINER IS
stmt_no POSITIVE;
BEGIN
IF SQL%ROWCOUNT = 0 THEN
EXIT ;
END IF;
IF SQL%ISOPEN THEN
EXIT ;
END IF;
IF SQL%FOUND THEN
EXIT ;
END IF;
IF SQL%NOTFOUND THEN
EXIT ;
END IF;
END;
生成されたコード:¶
ベストプラクティス¶
ユーザーによる追加のアクションは必要ありません。
さらにサポートが必要な場合は、 snowconvert-support@snowflake.com までメールでお問い合わせください。
SSC-FDM-OR0010¶
NUMBERデータ型の低い精度をスケールに合わせて高くしました。
説明¶
NUMBER データ型は固定小数点数と浮動小数点数を格納します。このデータは、Oracle Databaseが稼動している異なるオペレーティングシステム間で移植可能です。NUMBER データ型は、数値データを保存しなければならないほとんどの場合に推奨されます。構文は以下の NUMBER (X, Y) で、 X は精度、 Y はスケールです。
例えば、 NUMBER(5, 3) は、小数の前に 2 桁、小数の後に 3 桁を持つ数字で、ちょうど次のようなものです。
もうひとつ重要な考慮事項があります。
スケール Y は、小数点の右側の最大桁数を指定します。
スケール精度 Y-X は、小数点以下のゼロの最小の数を指定します。
このメッセージは、 NUMBER の精度がスケールより小さい場合に表示されます。Snowflakeはこの機能をサポートしていないため、このメッセージは等価性を維持するために精度の値が増加したことを示すために使用されます。
注意
この問題は、他の既知の変換と一緒に積み重なるか、まったく起こらないケースがあることを考慮してください。例えば、スケールが19で置き換えられ、以前の精度が19より大きい場合、このメッセージは表示されません。null
コード例¶
入力コード:¶
クエリ¶
結果¶
生成されたコード:¶
クエリ¶
結果¶
ベストプラクティス¶
さらにサポートが必要な場合は、 snowconvert-support@snowflake.com までメールでお問い合わせください。
SSC-FDM-OR0011¶
「スタックに追加」オプションがサポートされていないため、boolean引数は削除されました。
説明¶
This warning is displayed when the third optional argument of RAISE_APPLICATION_ERROR was removed during the migration. This functionality is not supported by Snowflake.
コード例¶
入力コード:¶
生成されたコード:¶
ベストプラクティス¶
エンドユーザーの操作は必要ありません。
さらにサポートが必要な場合は、 snowconvert-support@snowflake.com までメールでお問い合わせください。
SSC-FDM-OR0012¶
COMMITおよびROLLBACKステートメントを意図したとおりに実行するには、十分なセットアップが必要です。
説明¶
COMMITおよびROLLBACKステートメントをSnowflakeで意図したとおりに実行するには、十分なセットアップが必要です。これらのステートメントの正しい機能をシミュレートするには、Snowflakeで以下の命令を実行する必要があります。
コード例¶
入力コード¶
生成コード¶
ベストプラクティス¶
コードの実行を開始する前に、説明セクションに記載されているクエリを実行してください。
さらにサポートが必要な場合は、 snowconvert-support@snowflake.com までメールでお問い合わせください。
SSC-FDM-OR0013¶
The cycle clause is not supported in Snowflake.
注釈
このFDMは非推奨です。 SSC-EWI-OR0039 をご参照ください。
説明¶
このメッセージは、SnowConvert AIがCYCLE句を含むクエリを見つけたときに表示されます。これはSnowflakeではサポートされていないので、コードからコメントアウトされています。
この句は、再帰があることを示します。
詳細は ドキュメント をご参照ください。
コード例¶
Connect By¶
入力コード:¶
生成されたコード:¶
ベストプラクティス¶
データ階層にサイクルがある場合は、この 記事 を見て対処することができます。
さらにサポートが必要な場合は、 snowconvert-support@snowflake.com までメールでお問い合わせください。
SSC-FDM-OR0014¶
外部キーデータ型の不一致。
説明¶
このエラーは、外部キーのデータ型に不一致がある場合に発生します。
コード例¶
入力コード:¶
生成されたコード:¶
注釈
"MyDb"."MyTable1".COL1および"MyDb"."MyTable".COL1は異なる型であり、ERRORが表示されます。
ベストプラクティス¶
データ階層にサイクルがある場合は、この 記事 を見て対処することができます。
さらにサポートが必要な場合は、 snowconvert-support@snowflake.com までメールでお問い合わせください。
SSC-FDM-OR0015¶
DBMSのメモリ管理により、LENGTHBが変換されたOCTET_LENGTH結果は異なる場合があります。
説明¶
この問題は、列またはリテラルのサイズをバイト単位で返す LENGTHB 関数を呼び出した場合に発生します。この関数は、 OCTET_LENGTH Snowflake関数に変換されます。
関数のパラメーターが列の場合、結果は列が持つ値のサイズになります。このサイズはOracleとSnowflakeで異なる場合があり、列の型は関数が返す結果に重要な役割を果たします。
コード例¶
入力コード:¶
クエリ¶
結果¶
生成されたコード:¶
クエリ¶
CREATE OR REPLACE TABLE char_table
(
char_column1 CHAR(15)
)
COMMENT = '{"origin":"sf_sc","name":"snowconvert","version":{"major":1, "minor":0},{"attributes":{"component":"oracle"}}'
;
INSERT INTO char_table
VALUES ('Hello world');
SELECT char_column1,
OCTET_LENGTH(char_column1) /*** SSC-FDM-OR0015 - LENGTHB TRANSFORMED TO OCTET_LENGTH RESULTS MAY VARY DUE TO MEMORY MANAGEMENT OF DBMS ***/, LENGTH('Hello world') FROM
char_table;
結果¶
ベストプラクティス¶
使用されているデータ型を手動でチェックしてください。
文字列がUnicodeコードポイントを含んでいる場合、OCTET_LENGTHがより大きなサイズを返すことがあるため、使用する列のエンコーディングを確認してください。
さらにサポートが必要な場合は、 snowconvert-support@snowflake.com までメールでお問い合わせください。
SSC-FDM-OR0016¶
COMMITおよびROLLBACKオプションは、Snowflakeでは必要ないため削除されました。
説明¶
COMMITおよびROLLBACKステートメントオプションは、Snowflakeが必要としないため、削除されました。
コード例¶
入力コード¶
生成コード¶
ベストプラクティス¶
さらにサポートが必要な場合は、 snowconvert-support@snowflake.com までメールでお問い合わせください。
SSC-FDM-OR0017¶
DBTimezoneが削除され、タイムスタンプのデフォルト値が使用されるようになりました。
説明¶
DBTIMEZONEキーワードはAT TIME ZONE式から削除されました。
コード例¶
入力コード:¶
生成されたコード:¶
ベストプラクティス¶
You may need to set the TIMEZONE session parameter to get equal results.
さらにサポートが必要な場合は、 snowconvert-support@snowflake.com までメールでお問い合わせください。
SSC-FDM-OR0018¶
Merge statement may not work as expected
説明¶
この警告は、SnowflakeのMergeステートメントがOracleと比較していくつかの機能的な違いがある可能性があることを示すために使用されます。
コード例¶
入力コード:¶
生成されたコード:¶
ベストプラクティス¶
Oracleと比較して異なる結果が得られる場合は、以下を検討してください。
実行順の優先順位については、次の リンク で詳細をご確認ください。
スキップされたDMLステートメントをMergeステートメントの外側(状況に応じて前または後)で実行します。
さらにサポートが必要な場合は、 snowconvert-support@snowflake.com までメールでお問い合わせください。
SSC-FDM-OR0019¶
ウィンドウフレーム出力が同等でない場合があります
説明¶
この警告は、ROWSウィンドウフレームユニットがソースコード内で見つかった場合に追加されます。
ROWSは、計算に物理的な行番号を使いますが、ターゲットプラットフォームに移行すると変わる可能性があります。手動でORDER BY句を追加することで、この問題を軽減または除去することができます。
注釈
Oracleドキュメント にあるように、「論理オフセットを持つ解析関数が返す値は常に決定論的である」ことに注意してください。しかし、物理的オフセットを持つ解析関数が返す値は、順序式が一意な順序にならない限り、非決定的な結果を生む可能性があります。この固有の順序付けを実現するには、 order_by_clause で複数の列を指定する必要がある可能性があります。
そのため、問題を避けるために、関数が決定論的な結果を返すかどうかを事前にチェックすることが推奨されます。
コード例¶
入力コード:¶
生成されたコード:¶
ベストプラクティス¶
Snowflakeで実行する場合、決定論的な出力を保証するために、行の決定論的な順序を保証してください。
さらにサポートが必要な場合は、 snowconvert-support@snowflake.com までメールでお問い合わせください。
SSC-FDM-OR0020¶
PRAGMA EXCEPTION_INIT はサポートされていません。
注釈
このFDMは非推奨です。 SSC-EWI-OR0051 をご参照ください。
説明¶
この警告は、プロシージャ内でPRAGMA EXCEPTION_INIT関数が呼び出された場合に追加されます。例外の名前とSQLコードは、RAISE関数で設定されます。Snowflakeスクリプトに変換される際、SQLコードが例外宣言に追加されますが、一部のコード値はSnowflakeスクリプトでは無効となる場合があります。
コード例¶
入力コード:¶
生成されたコード:¶
Snowflakeの記述¶
ベストプラクティス¶
エンドユーザーによる操作は必要ありません。
さらにサポートが必要な場合は、 snowconvert-support@snowflake.com までメールでお問い合わせください。
SSC-FDM-OR0021¶
Snowflakeスクリプトで、浮動小数点数を境界とするFor Loopが正しく動作しない場合があります。
説明¶
Snowflakeスクリプトでは、 FOR LOOP 条件の境界として、 INTEGER または INTEGER と評価される式のみが許可されます。 浮動小数点数は切り上げまたは切り下げされ、元の境界を変更します。
下限値は最も近い整数に丸められます。 例:
3.1 -> 3、 6.7 -> 7、 4.5 -> 5
ただし、上限は最も近い下限の整数に切り捨てられます。 例:
3.1 -> 3、 6.7 -> 6、 4.5 -> 4
Snowflakeスクリプト¶
結果¶
コード例¶
入力コード:¶
生成されたコード:¶
ベストプラクティス¶
整数を使うように FOR LOOP 条件を書き換えてください。
さらにサポートが必要な場合は、 snowconvert-support@snowflake.com までメールでお問い合わせください。
SSC-FDM-OR0022¶
複数の条件を含むForループは、現在Snowflakeスクリプトではサポートされていません。最初の条件のみ使用されています
注釈
このFDMは非推奨です。 SSC-EWI-OR0100 をご参照ください。
説明¶
Oracleでは、1 つの FOR LOOP で複数の条件を指定できますが、Snowflakeスクリプトでは、1つの FOR LOOP につき1つの条件しか指定できません。 最初の条件だけが移行され、他の条件は変換中に無視されます。
コード例¶
入力コード:¶
生成されたコード:¶
ベストプラクティス¶
FOR LOOPを別のループに分けるか、条件を書き換えてください。さらにサポートが必要な場合は、 snowconvert-support@snowflake.com までメールでお問い合わせください。
SSC-FDM-OR0023¶
例外コードがSnowflakeスクリプトの制限を超えています。
注釈
このFDMは非推奨です。 SSC-EWI-OR0099 をご参照ください。
説明¶
この警告は、例外宣言エラーコードがSnowflakeスクリプトの例外番号の制限を超えた場合に表示されます。数値は-20000と-20999の間の整数でなければなりません。
コード例¶
入力コード:¶
生成されたコード:¶
CREATE OR REPLACE PROCEDURE procedure_exception ()
RETURNS VARCHAR
LANGUAGE SQL
COMMENT = '{"origin":"sf_sc","name":"snowconvert","version":{"major":1, "minor":0},{"attributes":{"component":"oracle"}}'
EXECUTE AS CALLER
AS
$$
DECLARE
--** SSC-FDM-OR0023 - EXCEPTION CODE NUMBER EXCEEDS SNOWFLAKE SCRIPTING LIMITS **
my_exception EXCEPTION;
--** SSC-FDM-OR0020 - PRAGMA EXCEPTION_INIT IS NOT SUPPORTED **
PRAGMA EXCEPTION_INIT ( my_exception, -19000 );
BEGIN
NULL;
END;
$$;
ベストプラクティス¶
例外コードがSnowflakeスクリプトで許可されている制限の範囲内であるかどうかを確認し、そうでない場合は利用可能な別の例外番号に変更してください。
さらにサポートが必要な場合は、 snowconvert-support@snowflake.com までメールでお問い合わせください。
SSC-FDM-OR0024¶
式の列が見つかりません
注釈
このFDMは非推奨です。 SSC-EWI-OR0002 をご参照ください。
説明¶
このエラーは、Select Expressionの列が解決できなかった場合に発生します。通常、参照が解決されなかったType Accessを参照しているか、列が定義されていないUser Defined Typeの列を参照している場合に発生します。例えば、列のないType Without BodyまたはObject Typeです。
コード例¶
入力コード:¶
生成されたコード:¶
ベストプラクティス¶
参照された型定義がその中に列を持っていることを確認します。
さらにサポートが必要な場合は、 snowconvert-support@snowflake.com までメールでお問い合わせください。
SSC-FDM-OR0025¶
Not Null制約はSnowflakeプロシージャではサポートされていません。
説明¶
Oracleの変数宣言 NOT NULL 制約は、Snowflakeのプロシージャ内の変数宣言ではサポートされていません。
コード例¶
入力コード:¶
生成されたコード:¶
ベストプラクティス¶
エンドユーザーによる操作は必要ありません。
さらにサポートが必要な場合は、 snowconvert-support@snowflake.com までメールでお問い合わせください。
SSC-FDM-OR0026¶
キャスト操作に対応していない型です。
注釈
このFDMは非推奨です。 SSC-EWI-OR0045 をご参照ください。
説明¶
このエラーは、ある型がキャスト操作でサポートされていない場合に発生します。
例¶
入力コード:¶
生成されたコード:¶
関連 EWIs¶
SSC-EWI-OR0011:フォーマットパラメーターはサポートされていません。
ベストプラクティス¶
キャストはユーザー定義関数(UDF/Stub)に変換されるので、キャスト関数の動作をエミュレートするように修正できます。
さらにサポートが必要な場合は、 snowconvert-support@snowflake.com までメールでお問い合わせください。
SSC-FDM-OR0027¶
DEFAULT ON CONVERSION ERRORはサポートされていません。
注釈
このFDMは非推奨です。 SSC-EWI-OR0029 をご参照ください。
説明¶
変換エラー時のデフォルトはSnowflakeではサポートされていません。
コード例¶
入力コード:¶
生成されたコード:¶
ベストプラクティス¶
UDFを作成して
DEFAULTvalueON CONVERSION ERRORの動作をエミュレートすることはできます。さらにサポートが必要な場合は、 snowconvert-support@snowflake.com までメールでお問い合わせください。
SSC-FDM-OR0028¶
SYS_CONTEXTパラメーターはサポートされていません。
注釈
このFDMは非推奨です。SSC-EWI-OR0031のドキュメントをご参照ください。
説明¶
このエラーは、SYS_CONTEXT関数パラメータがサポートされていない場合に発生します。
コード例¶
入力コード:¶
生成されたコード:¶
ベストプラクティス¶
この関数はユーザー定義関数(スタブ)に変換されるので、SYS_CONTEXTパラメーターの動作をエミュレートするように変更できます。
さらにサポートが必要な場合は、 snowconvert-support@snowflake.com までメールでお問い合わせください。
SSC-FDM-OR0029¶
このALTER SESSION構成はSnowflakeではサポートされていません。
説明¶
現在、ALTER SESSIONステートメントの句または構成はサポートされていません。
コード例¶
入力コード:¶
生成されたコード:¶
ベストプラクティス¶
セッション変数については、Snowflake ドキュメント で同等のものを確認できます。
さらにサポートが必要な場合は、 snowconvert-support@snowflake.com までメールでお問い合わせください。
SSC-FDM-OR0030¶
ROWID疑似列はSnowflakeではサポートされていません。
説明¶
When ROWID is used as a pseudocolumn in a query it is transformed to null to avoid runtime errors and the EWI is added. There is still no transformation to emulate the functionality.
コード例¶
入力コードOracle:¶
生成されたコード:¶
ベストプラクティス¶
エンドユーザーによる操作は必要ありません。
さらにサポートが必要な場合は、 snowconvert-support@snowflake.com までメールでお問い合わせください。
SSC-FDM-OR0031¶
DMLステートメント内のerror logging句は、Snowflakeではサポートされていません。
説明¶
このエラーは、OracleのDMLステートメントの error_logging句がSnowflakeのDMLステートメントでサポートされていないことを通知するために使用されます。
コード例¶
入力コード:¶
生成されたコード:¶
ベストプラクティス¶
ユーザーによる追加のアクションは必要ありません。
さらにサポートが必要な場合は、 snowconvert-support@snowflake.com までメールでお問い合わせください。
SSC-FDM-OR0032¶
StandardHash関数に文字列以外のパラメーターを入力すると、Snowflakeでは異なる結果が生成されます。
説明¶
この警告は、文字列以外のパラメータを入力したOracleの STANDARD_HASH 関数が、Snowflakeで異なる結果を生成する場合に使用されます。
注釈
When the algorithm parameter is a dynamic expression (not a string literal), the function cannot be converted and SSC-EWI-OR0138 is emitted instead.
コード例¶
入力コード:¶
クエリ¶
結果¶
生成されたコード:¶
クエリ¶
SELECT
--** SSC-FDM-OR0032 - STANDARD HASH FUNCTION WITH INPUT NON-STRING PARAMETER GENERATES A DIFFERENT RESULT IN SNOWFLAKE **
SHA1(1+1)
FROM DUAL;
結果¶
SHA1(1+1) |
--------------------------------------------------+
da4b9237bacccdf19c0760cab7aec4a8359010b0 |
ベストプラクティス¶
ユーザーによる追加のアクションは必要ありません。
さらにサポートが必要な場合は、 snowconvert-support@snowflake.com までメールでお問い合わせください。
SSC-FDM-OR0033¶
DBMS_RANDOM.VALUE組み込みパッケージの精度はSnowflakeで低くなります
説明
このメッセージは、SnowConvert AIがDBMS_RANDOM.VALUEOracle組み込みパッケージを移行するときに表示されます。この警告は、機能をエミュレートするために追加されたUDFが元の関数よりも精度が低いことを示しています。
コード例¶
入力コード:¶
生成されたコード:¶
ベストプラクティス¶
ユーザーによる追加のアクションは必要ありません。
さらにサポートが必要な場合は、 snowconvert-support@snowflake.com までメールでお問い合わせください。
SSC-FDM-OR0034¶
'LIMIT VALUE' を含むシーケンス開始値は、Snowflakeではサポートされていません。
注釈
このFDMは非推奨です。 SSC-EWI-OR0001 をご参照ください。
説明¶
このエラーは、 START WITH ステートメントの値が LIMIT VALUE の場合に表示されます。
In Oracle this clause is used only in ALTER TABLE
STARTWITHLIMIT VALUEはidentity_options固有のものであり、ALTERTABLEMODIFYとともにのみ使用できます。STARTWITHLIMIT VALUEを指定すると、Oracle Databaseはテーブルをロックし、テーブル内のID列の最大値(シーケンスが増加する場合)またはID列の最小値(シーケンスが減少する場合)を検出して、その値をシーケンスジェネレーターのハイウォーターマークとして割り当てます。シーケンスジェネレーターが次に返す値は、増加シーケンスではハイウォーターマーク+INCREMENTBY整数、減少シーケンスではハイウォーターマーク-INCREMENTBY整数となります。
ALTER TABLE ORACLE¶
コード例¶
入力コード:¶
生成されたコード:¶
ベストプラクティス¶
ユーザーによる追加のアクションは必要ありません。
さらにサポートが必要な場合は、 snowconvert-support@snowflake.com までメールでお問い合わせください。
SSC-FDM-OR0035¶
DBMS_OUTPUT.PUTLINE、UDF実装を確認してください
説明¶
このメッセージは、SnowConvert AIが DBMS_OUTPUT.PUT_LINE Oracle組み込みパッケージを移行する際に表示されます。この警告は、追加されたUDを確認するように指示します。
このEWIは、 DBMS_OUTPUT.PUT_LINE_UDF の実装を確認するようユーザーに指示するために存在し、そこには以下の情報が記載されています。
警告
このUDFを使用すると、パフォーマンスに影響が出る場合があります。情報のログを開始したい場合は、実装のコメントを解除してください。セッション終了後もデータを保持したい場合は、CREATE TABLEからTEMPORARYを削除してください。
DBMS_OUTPUT.PUT_LINE_UDF の呼び出しが完了したら、以下のクエリですべてのログを読んでください。 SELECT * FROM DBMS_OUTPUT.DBMS_OUTPUT_LOG.
コード例¶
入力コード:¶
生成されたコード:¶
ベストプラクティス¶
ユーザーによる追加のアクションは必要ありません。
さらにサポートが必要な場合は、 snowconvert-support@snowflake.com までメールでお問い合わせください。
SSC-FDM-OR0036¶
不要な組み込みパッケージのパラメーター
説明¶
このメッセージは、SnowConvert AIがOracle組み込みパッケージのプロシージャまたは関数を移行し、引数の一部が呼び出しから削除された場合に表示されます。
元のパラメーターの中には、Snowflakeに同等のものがなかったり、変換後のバージョンでは必要なかったりするものがあります。そのようなパラメーターは生成されたコードからは削除されますが、EWIメッセージには保存されるため、ユーザーはそれらのパラメーターを追跡することができます。
コード例¶
入力コード:¶
生成されたコード:¶
ベストプラクティス¶
さらにサポートが必要な場合は、 snowconvert-support@snowflake.com までメールでお問い合わせください。
SSC-FDM-OR0037¶
selectで使用されている構文は、Snowflakeではサポートされていません。
注釈
このFDMは非推奨です。 SSC-EWI-OR0004 をご参照ください。
注釈
わかりやすくするため、出力コードの一部を省略しています。
説明¶
この警告は、selectの句がSnowflakeでサポートされていない場合に発生します。サポートされていない条項は以下の通りです。
CONTAINERS
SUBQUERY に RESTRICTION
HIERARCHIES
EXTERNAL に MODIFY
DBLINK
SHARDS
PARTITION
SUBPARTITION
HIERARCHICAL
コード例¶
入力コード:¶
生成されたコード:¶
ベストプラクティス¶
ユーザーによる追加のアクションは必要ありません。
さらにサポートが必要な場合は、 snowconvert-support@snowflake.com までメールでお問い合わせください。
SSC-FDM-OR0038¶
ブール値のカーソル属性はサポートされていません。
注釈
このFDMは非推奨です。 SSC-EWI-OR0128 をご参照ください。
説明¶
このメッセージは、ブールのカーソル属性がSnowScriptでサポートされていないこと、またはSnowScriptでその機能をエミュレートする変換が存在しないことを示すために使用されます。以下の表は、エミュレート可能なブールのカーソル属性を示しています。
ブールカーソル属性 |
ステータス |
|---|---|
|
エミュレート可 |
|
エミュレート可 |
|
サポート外 |
コード例¶
入力コード:¶
生成されたコード:¶
ベストプラクティス¶
さらにサポートが必要な場合は、 snowconvert-support@snowflake.com までメールでお問い合わせください。
SSC-FDM-OR0039¶
Create TypeはSnowflakeでサポートされていません
注釈
このFDMは非推奨です。 SSC-EWI-OR0007 をご参照ください。
説明¶
このメッセージは、SnowflakeがサポートしていないCreate Typeステートメントが使用された場合に追加されます。
コード例¶
入力コード(Oracle):¶
生成されたコード:¶
ベストプラクティス¶
エンドユーザーの操作は必要ありません。
さらにサポートが必要な場合は、 snowconvert-support@snowflake.com までメールでお問い合わせください。
SSC-FDM-OR0040¶
数値文字はSnowflakeでは変更できません。Snowflakeの小数点セパレーターはドット文字です。
説明¶
数値文字はSnowflakeでは変更できません。Snowflakeの小数点セパレーターはドット文字です。ALTERセッションステートメントがコメントされ、警告が追加されています。
コード例¶
Oracle:¶
Snowflakeスクリプト:¶
ベストプラクティス¶
エンドユーザーの操作は必要ありません。
さらにサポートが必要な場合は、 snowconvert-support@snowflake.com までメールでお問い合わせください。
SSC-FDM-OR0041¶
組み込みパッケージはサポート対象外です。
注釈
このFDM は非推奨です。 SSC-EWI-OR0076 を参照してください。
説明¶
組み込みパッケージの変換は現在サポートされていません。
コード例¶
入力コード(Oracle):¶
生成されたコード:¶
ベストプラクティス¶
エンドユーザーの操作は必要ありません。
さらにサポートが必要な場合は、 snowconvert-support@snowflake.com までメールでお問い合わせください。
SSC-FDM-OR0042¶
Timestamp に変換された Date 型の動作が異なる
説明¶
SnowflakeのDate型はOracleと動作が異なるため、Date型はフラグ --disableDateAsTimestamp に応じてDate型またはTimestamp型に変換されます。
主な相違¶
Oracle DATE |
Snowflake DATE |
|
|---|---|---|
機能性 |
日時情報を格納する |
日付情報(年、月、日)のみを格納する |
内部ストレージ |
エポックからの秒数を表すバイナリ数値 |
日付に最適化されたコンパクトな形式 |
ユースケース |
汎用日時ストレージ |
日付情報のみが必要なシナリオ |
メリット |
日付と時刻の両方をサポート |
より効率的な日付のストレージ |
制限事項 |
日付と時刻を別々に保存することはできない |
時刻情報を格納しない |
コード例¶
入力コード(Oracle):¶
生成されたコード:¶
ベストプラクティス¶
エンドユーザーの操作は必要ありません。
さらにサポートが必要な場合は、 snowconvert-support@snowflake.com までメールでお問い合わせください。
SSC-FDM-OR0043¶
BFILE/BLOBパラメーターはバイナリとみなされます。フォーマットが必要な場合があります。
説明¶
このエラーは、TO_CLOB を TO_VARCHAR関数に変換したときに発生します。BFILE/BLOBパラメーターのフォーマットが必要かもしれません。
コード例¶
入力コード:¶
生成されたコード:¶
ベストプラクティス¶
入力コードと変換後のコードの出力が等価かどうかをチェックし、必要であればフォーマットパラメーターを追加します。
さらにサポートが必要な場合は、 snowconvert-support@snowflake.com までメールでお問い合わせください。
SSC-FDM-OR0044¶
REGEXP_LIKE_UDF matchパラメーターが正しく動作しない可能性があります
注釈
わかりやすくするため、出力コードの一部を省略しています。
説明¶
この警告は、Oracleの REGEXP_LIKE 条件に3番目のパラメーター(matchパラメーター)が付属している場合に表示されます。警告を追加する理由は、 REGEXP_LIKE の置換に使用される REGEXP_LIKE_UDF がmatchパラメーターで使用されるすべての文字を認識しないため、Snowflakeでのクエリの結果がOracleと同等でない可能性があるためです。
コード例¶
入力コードOracle:¶
生成されたコード:¶
When the
REGEXP_LIKEcondition comes with one of the characters that are not supported by the user-defined function, maybe a possible solution is to change the regular expression to simulate the behavior of the missing character in the match parameter. To know more about the character not supported go to REGEXP_LIKE_UDF documentation.さらにサポートが必要な場合は、 snowconvert-support@snowflake.com までメールでお問い合わせください。
SSC-FDM-OR0045¶
Partitions句はSnowflakeによって処理されています
注釈
このFDM は非推奨です。 SSC-EWI-OR0010 を参照してください。
説明¶
この警告は、 PARTITION 句と SUBPARTITION 句がクエリ内にある場合に表示されます。Snowflakeがパーティションを自動処理します
コード例¶
入力コード:¶
生成されたコード:¶
ベストプラクティス¶
ユーザーによる追加のアクションは必要ありません。
さらにサポートが必要な場合は、 snowconvert-support@snowflake.com までメールでお問い合わせください。
SSC-FDM-OR0046¶
Snowflakeではサブクエリの制限ができません
注釈
わかりやすくするため、出力コードの一部を省略しています。
説明¶
この警告は、 SELECT ステートメントにサブクエリの制限がある場合に発生します。
コード例¶
入力コード:¶
生成されたコード:¶
ベストプラクティス¶
ユーザーによる追加のアクションは必要ありません。
さらにサポートが必要な場合は、 snowconvert-support@snowflake.com までメールでお問い合わせください。
SSC-FDM-OR0047¶
TimeStampOutputフォーマットの設定が必要かもしれません。
説明¶
タイムスタンプ出力等価のためにTIMESTAMP_OUTPUT_FORMATセッションパラメーターを 'DD-MON-YY HH24.MI.SS.FF AM TZH:TZM' に設定する必要があるかもしれません。
コード例¶
入力コード:¶
OracleのデフォルトTIMESTAMP出力の例¶
出力
13-JAN-21 04.18.37.288656 PM +00:00
生成されたコード:¶
SnowflakeのデフォルトTIMESTAMP出力の例¶
出力
2021-01-13 08:18:19.720 -080
ベストプラクティス¶
Snowflakeでタイムスタンプの出力形式を変更するには、以下のクエリを使用します。
ALTER SESSION SET TIMESTAMP_OUTPUT_FORMAT = 'DD-MON-YY HH24.MI.SS.FF AM TZH:TZM';さらにサポートが必要な場合は、 snowconvert-support@snowflake.com までメールでお問い合わせください。
SSC-FDM-OR0048¶
Date or timestamp output format has to be set
説明¶
When SnowConvert AI transforms a DATE or TIMESTAMP to VARCHAR (for example, in a DEFAULT clause using SYSDATE or TRUNC(CURRENT_DATE())), the output depends on the OUTPUT_FORMAT and TIMESTAMP_OUTPUT_FORMAT session parameters. These may not match Oracle's default format. Set the session parameters to match the Oracle values for equivalent output.
コード例¶
入力コード:¶
生成されたコード:¶
ベストプラクティス¶
Set TIMESTAMP_OUTPUT_FORMAT and OUTPUT_FORMAT session parameters to match Oracle's NLS format (e.g., 'DD-MON-YY HH24.MI.SS.FF AM TZH:TZM').
さらにサポートが必要な場合は、 snowconvert-support@snowflake.com までメールでお問い合わせください。
SSC-FDM-OR0049¶
LAG関数は、デフォルトの値の型が式の型と異なる場合に失敗する可能性があります。
説明¶
Oracleでは、 LAG 関数がデフォルト値のデータ型を式の型に合わせて自動的に変換します。しかし、Snowflakeはこの暗黙の変換を行いません。したがって、データ型に互換性がない場合、 LAG 関数が失敗する可能性があることを示す警告が発行されます。
コード例¶
入力コード:¶
生成されたコード:¶
ベストプラクティス¶
デフォルト値のデータ型が、
LAG関数の式のデータ型と一致していることを確認してください。両者が異なる場合は、デフォルト値を明示的に式のデータ型にキャストします。さらにサポートが必要な場合は、 snowconvert-support@snowflake.com までメールでお問い合わせください。
SSC-FDM-OR0050¶
NOCOPY パラメーターを持つ例外は、データの不整合を引き起こす可能性があります。
説明¶
OracleのPL/SQLでは、 NOCOPY キーワードは、 OUT および IN OUT プロシージャパラメーターの最適化ヒントです。デフォルトでは、Oracleはこれらのパラメーターを値で渡し、呼び出し中に高コストのデータのコピーを作成し、完了時にそれをコピーバックします。これは、大きなデータ構造に対して大きなパフォーマンスオーバーヘッドを引き起こす可能性があります。
NOCOPY はOracleに参照渡しを指示し、プロシージャが元のデータを直接変更できるようにします。これによりコピーのオーバーヘッドがなくなり、パフォーマンスが向上します。しかし、変更は即座に反映され、プロシージャ内で未処理の例外が発生しても暗黙のうちにロールバックされることはありません。
そこで、NOCOPYパラメーターオプションを削除し、次のFDMを追加します。これは、例外が発生するとプロシージャの実行が終了し、 RETURN ステートメントに到達できなくなるためです。その結果、呼び出し元の宣言ブロックの変数は、プロシージャが代入のための新しい値をうまく返せなかったため、初期値を保持します。
コード例¶
入力コード:¶
生成されたコード:¶
ベストプラクティス¶
さらにサポートが必要な場合は、 snowconvert-support@snowflake.com までメールでお問い合わせください。