SnowConvert AI :一般的な機能の違い¶
SSC-FDM-0001¶
単一テーブルからすべての列を選択するビューは、Snowflakeでは必要ありません
注釈
わかりやすくするため、出力コードの一部を省略しています。
説明¶
単一テーブルのすべての列のみを選択し、フィルタリング句を持たないビューは、Snowflakeでは必須ではなく、パフォーマンスに影響を与える可能性があります。
コード例¶
入力コード(Oracle):¶
生成されたコード:¶
ベストプラクティス¶
さらにサポートが必要な場合は、 snowconvert-support@snowflake.com までメールでお問い合わせください
SSC-FDM-0002¶
相関サブクエリには機能的な違いがある可能性があります
説明¶
このメッセージは、Correlated Subquery (外部クエリの列を参照するサブクエリ)がある場合に報告されます。この型のサブクエリは、場合によっては、Snowflakeでいくつかの機能的な違いを示すことがあります([サブクエリの操作](https://docs.snowflake.com/ja/user-guide/querying-subqueries#correlated-vs-uncorrelated-subqueries))
コード例¶
入力コード:¶
生成されたコード:¶
ベストプラクティス¶
さらにサポートが必要な場合は、 snowconvert-support@snowflake.com までメールでお問い合わせください
SSC-FDM-0003¶
変換率の不一致
説明¶
このメッセージは、指定された評価フィールドで変換率の不整合が見つかった場合に報告されます。このような状況は SnowConvert AI によって自動的に解決されるので、これは単なる情報提供のための警告に過ぎません。
注釈
この情報提供のための警告は、評価文書にのみ表示され、出力コードには表示されません
ベストプラクティス¶
SnowConvert AI は自動的に問題を修正することができますが、[snowconvert-support@snowflake.com](mailto:snowconvert-support@snowflake.com)に電子メールを送り、問題を指定することで、SnowConvert AI サポートチームに通知することができます。
SSC-FDM-0004¶
外部テーブルを通常のテーブルに変換
説明¶
This warning is added to clauses related to external handling. Snowflake recommends that all data should be managed inside the Snowflake data storage. For more information on this subject, see the Snowflake data storage considerations.
コード例¶
入力コード:¶
生成されたコード:¶
ベストプラクティス¶
外部テーブルのファイルに保存されているデータを、何らかの方法でSnowflakeデータベースに移動する必要があります。
さらにサポートが必要な場合は、 snowconvert-support@snowflake.com までメールでお問い合わせください
SSC-FDM-0005¶
時刻データ型でTIME ZONE はサポートされていません
説明¶
Snowflakeの時刻データ型は、タイムゾーン値を格納しません
TIME internally stores “wallclock” time, and all operations on TIME values are performed without taking any time zone into consideration. For more information, see the Snowflake TIME data type documentation.
コード例¶
入力コード:¶
生成されたコード:¶
ベストプラクティス¶
エンドユーザーによる操作は必要ありません。
さらにサポートが必要な場合は、 snowconvert-support@snowflake.com までメールでお問い合わせください
SSC-FDM-0006¶
数値型の列はSnowflakeでは同様の動作をしない場合があります。
説明¶
この機能差メッセージは、NUMBER 型列をテーブル内に作成する際に表示されます。この理由は、Snowflakeで中間値のスケールに関連する演算を実行する際の算術的な違いによるもので、一部の演算が失敗する可能性があります。詳細については、[Snowflakeの中間値に関する投稿](https://community.snowflake.com/s/question/0D50Z00008HhSHCSA3/sql-compilation-error-invalid-intermediate-datatype-number7148)および[表現可能な範囲外の数値](https://community.snowflake.com/s/article/Number-out-of-representable-range-error-occurs-during-the-multiplication-of-numeric-values)を参照してください。
To avoid these arithmetic issues, you can run data samplings to verify the needed precision and scales for these operations.
コード例¶
Number列を持つ単純なテーブル¶
入力コード(Oracle):¶
生成されたコード:¶
算術上の問題の例¶
次の例では、数値列を使用した場合にどのような算術上の問題が発生するかを示しています。
除算エラーのあるSnowflakeコード:¶
乗算エラーのあるSnowflakeコード:¶
どちらかの SELECT ステートメントを実行すると、Snowflakeはエラーを返します。
表現可能な範囲外の数値: 型 FIXEDSB16 {nullable}、値1.0000000000000000000
これは、中間演算の結果がSnowflakeの最大容量をオーバーフローしているためです。各例で数値スケールを1減らすとエラーが修正され、正常に動作します。
除算のあるSnowflakeコード:¶
乗算のあるSnowflakeコード:¶
このため、SnowConvert AI はNumbersのデフォルトスケールを18に設定し、移行時のエラー数を最小限に抑えます。
ベストプラクティス¶
操作の中間値が、Snowflakeの最大値である37を超えないことを確認します。
データサンプリングを実行し、必要な精度とスケールがあることを確認してから、操作を実行してください。
ほとんどの場合、データをサンプリングしたり、事業者と話し合ったりした結果、精度が異なる可能性があるという結論に達するかもしれません。例えば、
MONEY列の場合、一般的な精度はNUMBER(20,4)となります。snowflakeでは、列のデータ型を簡単に変更することはできません。列のデータ型を変更してデータを保持する方法については、こちらの[フォーラムへの投稿](https://www.mobilize.net/blog/how-to-alter-column-datatype-in-snowflake)を参照してください。さらにサポートが必要な場合は、 snowconvert-support@snowflake.com までメールでお問い合わせください
SSC-FDM-0007¶
依存関係が欠落している要素
注釈
わかりやすくするため、出力コードの一部を省略しています
説明¶
オブジェクトの依存関係がありません。Snow Convert は一部のデータ型を解決できませんでした。また、依存関係がソースコードにない場合、デプロイエラーが発生する可能性もあります。
コード例¶
入力コード:¶
生成されたコード:¶
注釈
TABLE1 の定義が欠けていることに注意してください。
ベストプラクティス¶
オブジェクトの依存関係がすべてソースコードにあることを確認します。
そうでない場合は、コード内のオブジェクトへの参照を見つけ、操作が適切に管理されているかどうかを確認します。
さらにサポートが必要な場合は、 snowconvert-support@snowflake.com までメールでお問い合わせください
SSC-FDM-0008¶
オンコミットはサポートされていません
注釈
わかりやすくするため、出力コードの一部を省略しています。
説明¶
CREATE TABLE ステートメントのON COMMIT 句はコメントアウトされています。Snowflakeは ON COMMIT 句をサポートしていません。これは、他のSQL 方言で一時テーブルに使用されるのが一般的だからです。トランザクション固有の動作を管理する必要がある場合は、代わりにSnowflakeのトランザクションまたは明示的なTRUNCATE 、DROP ステートメントを使用した一時テーブルの使用を検討してください。
コード例¶
入力コード¶
生成されたコード¶
SSC-FDM-0009¶
GLOBAL TEMPORARY TABLE 機能はサポートされていません。
説明¶
グローバル一時テーブルは、[Snowflakeのドキュメント](https://docs.snowflake.com/ja/sql-reference/sql/create-table#variant-syntax)に示されているように、いくつかのバリエーションがあるため、複雑なパターンと考えられています。
コード例¶
入力コード¶
生成されたコード¶
ベストプラクティス¶
さらにサポートが必要な場合は、 snowconvert-support@snowflake.com までメールでお問い合わせください
SSC-FDM-0010¶
型を日付に変更します。
説明¶
このメッセージは、SnowConvert AI が DEFAULT SYSDATE を見つけ、データ型が NOT DATE または TIMESTAMP の場合に表示されます。この場合、データ型は DATE に変更されます。
コード例¶
入力コード¶
生成されたコード¶
ベストプラクティス¶
さらにサポートが必要な場合は、 snowconvert-support@snowflake.com までメールでお問い合わせください
SSC-FDM-0011¶
列名はSnowflake予約キーワードです。
注釈
このFDM は非推奨です。[SSC-EWI-0045](../conversion-issues/generalEWI.md#ssc-ewi-0045)のドキュメントを参照してください。
説明¶
ソース言語では有効だが、Snowflakeでは予約キーワードとなる列名。
コード例¶
入力コード(Oracle):¶
生成されたコード:¶
ベストプラクティス¶
Snowflakeでサポートされていない名前を使用している列名の変更を検討してください。
さらにサポートが必要な場合は、 snowconvert-support@snowflake.com までメールでお問い合わせください
SSC-FDM-0012¶
一部の制約の制約名がサポートされていません。
説明¶
このメッセージは、制約の型がNull、Not Null、またはdefaultであり、名前で定義されている場合に追加されます。Snowflakeはこれらの制約の名前をサポートしていません。そのため、SnowConvert AI はそれを削除してコメントを追加します。
コード例¶
入力コード¶
生成されたコード¶
ベストプラクティス¶
エンドユーザーによる操作は必要ありません。
さらにサポートが必要な場合は、 snowconvert-support@snowflake.com までメールでお問い合わせください
SSC-FDM-0013¶
タイムゾーン式がマッピングできませんでした
説明¶
This FDM message is added to indicate scenarios where the actual value of a timezone expression cannot be determined, and therefore, the translated results might be different. When the timezone value used is a literal string, SnowConvert AI can take it and map it to its corresponding timezone value in Snowflake. However, when this value is specified by an expression, SnowConvert AI cannot get the timezone value that will be used at runtime and, therefore, cannot map this value to its corresponding Snowflake equivalent.
コード例¶
入力コード(Oracle)¶
生成されたコード¶
入力コード(Teradata)¶
生成されたコード¶
¶
注釈
Oracleにおけるタイムゾーンの互換性
Oracleのタイムゾーン名式の大部分はSnowflakeで直接サポートされており、この場合、移行は問題なく実行されます。さらに、現時点ではSnowflakeでサポートされていないため、機能差のメッセージが表示されるもののリストを以下に示します。
アフリカ/ドゥアラ
アジア/ウランバートル
アジア/エカテリンブルグ
カナダ/東サスカチュワン州
CST
PST
US /パシフィックニュー
ベストプラクティス¶
エンドユーザーによる操作は必要ありません。
さらにサポートが必要な場合は、 snowconvert-support@snowflake.com までメールでお問い合わせください
SSC-FDM-0014¶
チェックステートメントはサポートされていません。
注釈
このFDM は非推奨です。[SSC-EWI-0035](../conversion-issues/generalEWI.md#ssc-ewi-0035)のドキュメントを参照してください。
説明¶
CHECK 制約はSnowflakeではサポートされていませんが、機能的には影響ありません。
コード例¶
入力コードOracle:¶
生成コード: ¶
入力コードTeradata: ¶
生成コード: ¶
入力コード SqlServer¶
生成されたコード:¶
ベストプラクティス¶
さらにサポートが必要な場合は、 snowconvert-support@snowflake.com までメールでお問い合わせください
SSC-FDM-0015¶
クエリで参照されているカスタム型が見つかりません。
説明¶
このエラーは、カスタム型の定義が見つからなかったか、Oracleの組み込みデータ型が SnowConvert で認識されなかった場合に発生します。
コード例¶
入力コード(Oracle):¶
生成されたコード:¶
ベストプラクティス¶
参照されたデータ型が入力コードで定義されていることを確認します。
Snowflakeのデータ型の[ドキュメント](https://docs.snowflake.com/ja/sql-reference/data-types.html)で、同等のデータ型をご確認ください。
さらにサポートが必要な場合は、 snowconvert-support@snowflake.com までメールでお問い合わせください
SSC-FDM-0016¶
定数はSnowflakeスクリプトではサポートされていません。変数に変換されました。
説明¶
Snowflakeスクリプトは定数をサポートしていません。 したがって、Snowflake スクリプトフラグが有効な場合、プロシージャー内の定数はすべて変数に変換されます。
コード例¶
Oracle:¶
Snowflakeスクリプト:¶
ベストプラクティス¶
エンドユーザーの操作は必要ありません。
さらにサポートが必要な場合は、 snowconvert-support@snowflake.com までメールでお問い合わせください
SSC-FDM-0017¶
WITH SYSTEM VERSIONING 句はSnowflakeではサポートされていません
説明¶
ANSI SQL のWITH SYSTEM VERSIONING 句は、テーブルのシステムバージョニングを有効にするために使用され、テーブルのデータに対する変更の履歴を保持することができます。この句はSnowflakeではサポートされていません。
コード例¶
入力コード:¶
生成されたコード:¶
ベストプラクティス¶
You can use Time Travel in Snowflake, Time Travel enables accessing historical data (that is, data that has been changed or deleted) at any point within a defined period. It serves as a powerful tool for performing the following tasks:
誤ってまたは意図的に削除された可能性のあるデータ関連オブジェクト(テーブル、スキーマ、およびデータベース)の復元。
過去の重要なポイントからのデータの複製とバックアップ。
指定された期間のデータ使用量/操作の分析。
さらにサポートが必要な場合は、 snowconvert-support@snowflake.com までメールでお問い合わせください
SSC-FDM-0018¶
CHARACTER SET 句はSnowflakeではサポートされていません。
説明¶
列オプション CHARACTER SET は、列に格納できる文字の許容セットを決定します。この句はSnowflakeではサポートされていません。
コード例¶
入力コード:¶
生成されたコード:¶
ベストプラクティス¶
さらにサポートが必要な場合は、 snowconvert-support@snowflake.com までメールでお問い合わせください
SSC-FDM-0019¶
Semantic information could not be loaded.
説明¶
この警告は、SnowConvert AI が特定のオブジェクトのセマンティック情報をロードできなかったことをユーザーに知らせます。これは、同じ名前のオブジェクトが重複している場合、SnowConvert AI がこのオブジェクトのセマンティック情報をロードできず、分析を完了できないために発生すると考えられます。
コード例¶
入力コード:¶
生成コード: ¶
ベストプラクティス¶
セマンティック情報の読み込みに影響を与える可能性があるため、入力コードに重複したオブジェクトがないか確認します。
さらにサポートが必要な場合は、 snowconvert-support@snowflake.com までメールでお問い合わせください
SSC-FDM-0020¶
複数の結果セットが仮テーブルに返されます
説明¶
Snowflakeスクリプトプロシージャでは、1つのプロシージャにつき1つの結果セットしか返すことができません。
Teradataの動作を再現するために、返す結果セットが2つ以上ある場合、それらは仮テーブルに格納されます。Snowflakeスクリプトプロシージャは、仮テーブルの名前を含む配列を返します。
コード例¶
入力コード(Teradata):¶
生成されたコード:¶
ベストプラクティス¶
結果セットを取得するには、プロシージャが返した仮テーブルの名前でSELECT クエリを実行する必要があります。
複数の結果セットを返すようなプロシージャは可能な限り避け、より直接的な結果を得るために単一の責任を持つプロシージャにします。
さらにサポートが必要な場合は、 snowconvert-support@snowflake.com までメールでお問い合わせください
SSC-FDM-0021¶
インデックス作成はサポートされていません
説明¶
アーキテクチャ上の理由により、Snowflakeはインデックスをサポートしていないため、SnowConvert AI はインデックスの作成に関連するすべてのコードをコメントアウトします。Snowflakeは、各テーブルに、 DML 操作のパフォーマンスを高速化するマイクロパーティションを自動的に作成します。ユーザーはこれらのマイクロパーティションの作成や管理を心配する必要はありません。
通常、これだけで非常に優れたクエリパフォーマンスが得られますが、データクラスタリングキーを作成することで改善する方法もあります。[Snowflakeの公式ページ](https://docs.snowflake.com/ja/user-guide/tables-clustering-micropartitions.html)には、マイクロパーティションとデータクラスタリングに関する詳細な情報が掲載されています。
コード例¶
入力コード(Oracle):¶
生成されたコード:¶
ベストプラクティス¶
データクラスタリングは、テーブルのクエリパフォーマンスを高速化する方法の1つです。
さらにサポートが必要な場合は、 snowconvert-support@snowflake.com までメールでお問い合わせください
SSC-FDM-0022¶
ウィンドウフレームユニットが行に変更されました
重大性¶
低
説明¶
この警告は、サポートされていないウィンドウフレームユニットが行に変更され、出力に差異が生じた場合に追加されます。その一例として、GROUPS ユニットはSnowflakeではサポートされていません。
このメッセージは、RANGE ユニットのように、ウィンドウフレームユニットが 部分的に サポートされておらず、変更される場合にも使用されることに注意してください。
コード例¶
以下のデータを例に挙げて説明します。
C_NAME |
C_BIRTH_DAY |
|---|---|
USA |
1 |
USA |
4 |
ポーランド |
9 |
カナダ |
10 |
USA |
5 |
カナダ |
12 |
コスタリカ |
3 |
ポーランド |
4 |
USA |
2 |
コスタリカ |
7 |
コスタリカ |
10 |
Oracle:¶
コード¶
SELECT
C_NAME,
SUM(C_BIRTH_DAY)
OVER (ORDER BY C_BIRTH_DAY
RANGE BETWEEN UNBOUNDED PRECEDING AND 1 PRECEDING) AS MAX1
FROM WINDOW_TABLE;
結果¶
C_NAME |
MAX1 |
|---|---|
USA |
- |
USA |
1 |
コスタリカ |
3 |
USA |
6 |
ポーランド |
6 |
USA |
14 |
コスタリカ |
19 |
ポーランド |
26 |
カナダ |
35 |
コスタリカ |
35 |
カナダ |
55 |
Snowflake:¶
コード¶
結果¶
C_NAME |
MAX1 |
|---|---|
USA |
- |
USA |
1 |
コスタリカ |
3 |
USA |
6 |
ポーランド |
10 |
USA |
14 |
コスタリカ |
19 |
ポーランド |
26 |
カナダ |
35 |
コスタリカ |
45 |
カナダ |
55 |
ベストプラクティス¶
Snowflakeで実行する場合、決定論的な出力を保証するために、行の決定論的な順序を保証してください。
さらにサポートが必要な場合は、 snowconvert-support@snowflake.com までメールでお問い合わせください
SSC-FDM-0023¶
グローバル仮テーブルが参照されています。
重大性¶
中
説明¶
SnowConvert AI はグローバル仮テーブルを通常のテーブル作成に変換します。これらのテーブルへの参照は、予想とは異なる動作をする可能性があります。
コード例¶
入力¶
出力¶
ベストプラクティス¶
さらにサポートが必要な場合は、 snowconvert-support@snowflake.com までメールでお問い合わせください
SSC-FDM-0024¶
機能は現在、Snowflakeスクリプトではサポートされていません
注釈
このFDM は非推奨です。[SSC-EWI-0058](../conversion-issues/generalEWI.md#ssc-ewi-0058)のドキュメントを参照してください。
説明¶
このエラーは、作成プロシージャで使用されるステートメントが現在Snowflakeスクリプトでサポートされていない場合に発生します。
コード例¶
入力コード(Oracle):¶
生成されたコード:¶
ベストプラクティス¶
エンドユーザーの操作は必要ありません。
さらにサポートが必要な場合は、 snowconvert-support@snowflake.com までメールでお問い合わせください
SSC-FDM-0025¶
Unexpected end of statement
説明¶
This message is reported when SnowConvert AI encounters an unexpected end of statement during conversion. This typically occurs when the parser reaches the end of the source code while still expecting additional tokens to complete a statement. The EWI includes the line number of the original source code where the issue was detected.
コード例¶
入力コード:¶
生成されたコード:¶
ベストプラクティス¶
Check the specified line in the original source code for missing semicolons or incomplete statements.
Ensure all statements are properly terminated.
さらにサポートが必要な場合は、 snowconvert-support@snowflake.com までメールでお問い合わせください
SSC-FDM-0026¶
Snowflakeがサポートしていない型
注釈
このFDM は非推奨です。[SSC-EWI-0028](../conversion-issues/generalEWI.md#ssc-ewi-0028)のドキュメントを参照してください。
説明¶
このメッセージは、型がSnowflakeでサポートされていない場合に表示されます。
例¶
入力コード(Oracle):¶
生成されたコード:¶
ベストプラクティス¶
さらにサポートが必要な場合は、 snowconvert-support@snowflake.com までメールでお問い合わせください
SSC-FDM-0027¶
Removed next statement, not applicable in Snowflake.
注釈
わかりやすくするため、出力コードの一部を省略しています。
説明¶
このメッセージは、特定のステートメントがSnowflakeで適用されない場合に表示されます。これは、このステートメントに相当するSnowflakeが存在せず、そのステートメントが不要になったことを意味し、そのためソースコードから削除されます。しかし、SnowConvert AI は最後のコメントの一部として元のステートメントを残しています。
コード例¶
入力コード: ¶
生成コード: ¶
ベストプラクティス¶
さらにサポートが必要な場合は、 snowconvert-support@snowflake.com までメールでお問い合わせください
SSC-FDM-0028¶
サポート対象外です。
注釈
このFDM は非推奨です。[SSC-EWI-0021](../conversion-issues/generalEWI.md#ssc-ewi-0021)ドキュメントを参照してください。
説明¶
このメッセージは、ソースコードの特定のノードまたはステートメントがSnowflakeサポートされていない場合に表示されます。
コード例¶
入力コード: ¶
生成されたコード:¶
ベストプラクティス¶
If this error happens, it is because there is no Snowflake equivalent for the node that is being converted.
さらにサポートが必要な場合は、 snowconvert-support@snowflake.com までメールでお問い合わせください
SSC-FDM-0029¶
ユーザー定義関数がSnowflakeプロシージャに変換されました。
警告
このEWI は非推奨です。[SSC-EWI-0068](../conversion-issues/generalEWI.md#ssc-ewi-0068)ドキュメントを参照してください
重大性¶
低
説明¶
Snowflakeユーザー定義関数は、Oracle や SQL サーバーと同じ機能をサポートしていません。機能の等価性を維持するために、関数はSnowflakeストアドプロシージャに変換されます。これはクエリでの使用にも影響します。
コード例¶
SQL Server:¶
入力コード¶
生成されたコード¶
Oracle:¶
入力コード¶
生成されたコード¶
ベストプラクティス¶
同じロジックを維持するために、内部のクエリを分離します。
ソースコードは、Snowflakeユーザー定義関数[アプローチ](https://docs.snowflake.com/ja/sql-reference/user-defined-functions.html#udfs-user-defined-functions)に適合するように再構築する必要がある場合があります。
さらにサポートが必要な場合は、 snowconvert-support@snowflake.com までメールでお問い合わせください
SSC-FDM-0030¶
新しい識別子の無効な文字を置き換えました
説明¶
指定された識別子は、出力言語に対して無効な文字を持っています。これらの文字は、UTF -8コードに置き換えられました。
コード例¶
入力コード(Oracle):¶
生成されたコード:¶
ベストプラクティス¶
エンドユーザーの操作は必要ありません。
さらにサポートが必要な場合は、 snowconvert-support@snowflake.com までメールでお問い合わせください
SSC-FDM-0031¶
デフォルトで設定されている動的テーブルの必須パラメーター
説明¶
マテリアライズドビュー(およびTeradataの場合は結合インデックスも)は、Snowflakeの動的テーブルに移行されます。動的テーブルには2つのパラメーターを設定する必要があります: TARGET_LAG and WAREHOUSE
これらのパラメータが設定オプションで設定されていない場合、変換時にデフォルトで設定されます。
[動的テーブルの必須パラメータはこちら](https://docs.snowflake.com/ja/sql-reference/sql/create-dynamic-table#required-parameters)をご覧ください。
コード例¶
入力コード(Oracle):¶
生成されたコード:¶
ベストプラクティス¶
必要に応じて、動的テーブルの必要なパラメーターを設定します。
さらにサポートが必要な場合は、 snowconvert-support@snowflake.com までメールでお問い合わせください
SSC-FDM-0032¶
パラメーターがリテラル値でないため、変換を完全に適用できませんでした。
説明¶
複数の変換を行う場合、SnowConvert AI はパラメーターの内容を検証する必要が生じることがあります。これは、パラメーターがリテラル値である場合にのみ可能です。
このメッセージは、SnowConvert AI がパラメーターが参照によって渡されたため値を取得できず、関数やステートメントの変換が完了しなかったことを警告するために生成されます。
コード例¶
入力コード(Redshift):¶
生成されたコード:¶
ベストプラクティス¶
指定されたパラメーターをリテラル値として提供してみてください。
さらにサポートが必要な場合は、 snowconvert-support@snowflake.com までメールでお問い合わせください
SSC-FDM-0033¶
SnowflakeではSample句の動作が異なります。
説明¶
This message is generated to showcase the functional difference while sampling rows in Snowflake. The differences are related to the quantity of rows retrieved. When in Teradata there is the same quantity of rows in the non-deterministic output, it may change in Snowflake and return a few rows more or less. This is because a probability related topic and it is expected to behaves like that in Snowflake.
If there is a requirement of retrieving the same values and the same quantity, a deterministic output, it is recommended to use a seed in the Snowflake query.
コード例¶
入力コード(Teradata):¶
生成されたコード:¶
ベストプラクティス¶
決定論的な出力が必要な場合は、クエリのシード部分を使用するようにしてください。
さらにサポートが必要な場合は、 snowconvert-support@snowflake.com までメールでお問い合わせください
SSC-FDM-0034¶
構造体が VARIANT に変換されました。使用方法によっては機能上の違いがある場合があります。
説明¶
Snowflakeは STRUCT データ型をネイティブにサポートしていません。SnowConvert AI は自動的にSTRUCT をVARIANT に変換します。INSERT ステートメントで使用される場合、STRUCT データは OBJECT_CONSTRUCT を使用して処理されます。この変換は、いくつかのユースケースにおいて機能的な違いをもたらす可能性があることに注意してください。
コード例¶
入力コード:¶
BigQuery¶
生成されたコード:¶
Snowflake¶
ベストプラクティス¶
さらにサポートが必要な場合は、 snowconvert-support@snowflake.com までメールでお問い合わせください
SSC-FDM-0035¶
INFER_SCHEMA 関数は、テーブルテンプレートを生成するためにワイルドカードを含まないファイルパスを必要とするので、FILE_PATH プレースホルダーをそれに置き換えます
説明¶
[INFER_SCHEMA](https://docs.snowflake.com/ja/sql-reference/functions/infer_schema)関数は、ファイルの構造に基づいてテーブルの列定義を生成するためにSnowflakeで使用されます。この関数は、テーブルの列を構築するために使用されるファイルまたはフォルダーのパスを指定する LOCATION パラメーターを必要とします。ただし、このパスは正規表現に対応していないため、ワイルドカード* 文字はサポートされません。
テーブルに列がない場合、SnowConvert AI はすべてのURIS をチェックして、ワイルドカードを使用していないものを見つけ、INFER _SCHEMA 関数で使用する。このような条件を満たすURI がない場合、このFDM と、FILE_PATH プレースホルダーが生成されます。このプレースホルダーは、テーブルの列を生成するために、外部テーブルによって参照されるいずれかのファイルのパスに置き換える必要があります。
コード例¶
入力コード:¶
BigQuery¶
生成されたコード:¶
Snowflake¶
ベストプラクティス¶
さらにサポートが必要な場合は、 snowconvert-support@snowflake.com までメールでお問い合わせください
SSC-FDM-0036¶
変換された数値/日付形式は、Snowflakeでは異なる動作をする可能性があります。
説明¶
Snowflake に変換された数値形式は 固定位置フォーマット を使用します。数値の整数部分の桁数がフォーマット内の桁位置の数より多い場合、変換されたフォーマットは失敗し、異なる出力を生成する可能性があります。その場合、すべての桁はオーバーフローを示す#として印刷されます。
注釈
For SQL Server migrations: If you are converting SQL Server code that uses custom single-character date format specifiers (for example, %y, %M, %d, %H, %h, %m, %s) or advanced numeric format specifiers (for example, P, N, %), consider enabling the --enableFormatSpecifiersPreview preview flag. This flag enables access to new Snowflake format specifiers that provide more accurate translations of these formats. See Preview Features Settings for more details.
Note: This requires requesting preview access in your Snowflake account through this form.
コード例¶
入力コード:¶
SQL サーバー¶
生成されたコード:¶
Snowflake¶
結果¶
ベストプラクティス¶
数値の桁数が形式に収まらない場合は、入力可能なデータ値に基づいて桁数を追加して形式を更新してください。
SSC-FDM-0037¶
統計関数はSnowflakeでは必要ありません。
説明¶
DROP 、 COLLECT 、または HELP 統計は、Snowflakeでは必要ありません。Snowflakeはすでに、クエリの自動最適化に使用される統計情報を収集しています。
コード例¶
入力コード:¶
生成されたコード¶
ベストプラクティス¶
さらにサポートが必要な場合は、 snowconvert-support@snowflake.com までメールでお問い合わせください
SSC-FDM-0038¶
すべてのSnowflakeテーブルでマイクロパーティションが自動的に実行されます。
説明¶
このメッセージは、PARTITION BY 句がある場合、CREATE TABLE ステートメントに追加されます。一部のデータベースでテーブルのパーティショニングを制御するPARTITION BY 句は、Snowflakeではサポートされていません。
Snowflakeでは、すべてのテーブルが自動的にマイクロパーティション(50MB から500MB の非圧縮データの範囲のストレージの連続単位)に分割されます。このアーキテクチャは、数百万のマイクロパーティションで構成されるような大規模なテーブルを、非常にきめ細かく刈り込むことを可能にします。
Snowflakeは、次のような各マイクロパーティションのメタデータを自動的に保存します。
マイクロパーティションの各列の値の範囲。
個別の値の数。
最適化と効率的なクエリ処理の両方に使用される追加のプロパティ。
テーブルのパーティショニングは、データの挿入やロードの順序に基づいて透過的に行われます。詳しくは[マイクロパーティショニングの利点](https://docs.snowflake.com/ja/user-guide/tables-clustering-micropartitions#benefits-of-micro-partitioning)を参照してください。
コード例¶
入力コード:¶
生成されたコード¶
ベストプラクティス¶
さらにサポートが必要な場合は、 snowconvert-support@snowflake.com までメールでお問い合わせください
SSC-FDM-0039¶
SQLWARNING may not be captured as an exception in Snowflake.
説明¶
In source databases such as Teradata, SQLWARNING can be caught in exception handlers. Snowflake's exception handling may not capture SQLWARNING in the same way. When a handler is configured to catch SQLWARNING, SnowConvert AI translates it, but the behavior in Snowflake may differ.
コード例¶
入力コード:¶
生成されたコード:¶
ベストプラクティス¶
Review exception handling logic that catches SQLWARNING; the handler may not be invoked in Snowflake for the same conditions.
さらにサポートが必要な場合は、 snowconvert-support@snowflake.com までメールでお問い合わせください
SSC-FDM-0040¶
REGEXP_SUBSTR / REGEXP_INSTR function may fail if regex argument is not POSIX
説明¶
When translating regex-based functions (such as REGEXP_SUBSTR, REGEXP_INSTR) from source dialects to Snowflake, the regex argument must be valid POSIX syntax. Source dialects may support extended regex features that Snowflake does not. If the regex pattern uses non-POSIX syntax, the function may fail at runtime or produce different results.
コード例¶
入力コード:¶
生成されたコード:¶
ベストプラクティス¶
Ensure regex patterns use POSIX-compliant syntax.
Test regex functions with sample data after conversion.
さらにサポートが必要な場合は、 snowconvert-support@snowflake.com までメールでお問い合わせください
SSC-FDM-0041¶
Default parameters were reordered to the end of the parameter list.
説明¶
Snowflake requires all parameters with default values to appear after all non-default parameters. When SnowConvert AI detects a procedure whose default parameters are not at the end of the parameter list, it automatically reorders them. Code not provided to SnowConvert AI that uses positional arguments may need to be updated to match the new parameter order.
注釈
This FDM replaces the deprecated SSC-EWI-0002, which previously only warned about the issue without performing the reorder.
コード例¶
Input Code (SQL Server):¶
Generated Code (SQL Server):¶
入力コード(Oracle):¶
Generated Code (Oracle):¶
Positional Call Site Conversion¶
When callers use positional arguments and the parameters have been reordered, SnowConvert AI automatically converts them to named arguments:
ベストプラクティス¶
Review all callers of the affected procedure. If positional arguments are used, update them to match the new parameter order or convert them to named arguments.
Consider using named arguments (e.g.,
param1 => value) instead of positional arguments to avoid issues with parameter ordering.さらにサポートが必要な場合は、 snowconvert-support@snowflake.com までメールでお問い合わせください