SnowConvert AI - Oracle - Select¶
In this section you could find information about the select query syntax and its conversions.
注釈
わかりやすくするため、出力コードの一部を省略しています。
全体の選択翻訳¶
単純な選択¶
Oracle:¶
Snowflake:¶
Where句¶
Oracle:¶
Snowflake:¶
Order By句¶
Oracle:¶
Snowflake:¶
Group by¶
Oracle:¶
Snowflake:¶
モデル句¶
モデル句はまだサポートされていません。
行制限句¶
Oracle:¶
Snowflake:¶
注釈
Oracleでは、SELECT に ORDER BY が指定されていない場合、FETCH / OFFSET WITH TIES は無視されます。このケースは、Snowflakeでは ONLY キーワードで FETCH / OFFSET に変換されます。Snowflakeでは ONLY キーワードは結果には影響せず、可読性のためだけに使用されることに注意してください。
ピボット¶
Snowflakeは次のステートメントをサポートしていません:\ - 列名の変更\ - 複数の列
Oracle:¶
Snowflake:¶
アンピボット¶
Snowflakeは次のステートメントをサポートしていません:\ - INCLUDE / EXCLUDE NULLS
Oracle:¶
Snowflake:¶
JOIN (+)から ANSI 構文への変換¶
危険
この翻訳は現在非アクティブ化されており、以前のバージョンのSnowConvert AI で行われた翻訳の参考用に過ぎません。現在の翻訳については、上記のセクションをご覧ください。
SnowConvert AI は、NON-ANSI の特殊な外部結合 (+) 構文を ANSI の外部結合構文に翻訳します。このサブセクションでは、いくつかの例を示します。
宛先: LEFT OUTER JOIN¶
例1:
Oracle:¶
Snowflake:¶
例2:
Oracle:¶
Snowflake:¶
例3: 複数の結合
Oracle:¶
Snowflake:¶
例4: 他の種類の条件付き結合
Oracle:¶
Snowflake:¶
例5: 関数内部での(+)による結合
Oracle:¶
Snowflake:¶
警告
LEFT OUTER JOIN に翻訳されたパターンの中には、異なる順序で行を取得するものもありますのでご注意ください。
宛先: CROSS JOIN¶
例6: CROSS JOIN の使用が必要な複雑なケース
Oracle:¶
Snowflake:¶
階層クエリ¶
Hierarchical queries in Snowflake allow you to organize and retrieve data in a tree-like structure, typically using the CONNECT BY clause. This clause joins a table to itself to process hierarchical data in the table.
サンプルソースパターン¶
Oracle:¶
Snowflake:¶
フラッシュバッククエリの選択¶
説明¶
Oracle
Oracleのフラッシュバッククエリ句は、テーブル、ビュー、またはマテリアライズドビューから過去のデータを取得します。Oracleでは、以下のような用途があります。
削除されたデータの復元や誤ったコミットの取り消し、現在のデータと以前の対応するデータの比較、特定の時刻におけるトランザクションデータの状態の確認、過去のデータに対するレポート作成ツールなど。(Oracleフラッシュバッククエリドキュメント)。
Snowflake
過去のデータをクエリするSnowflakeの同等のメカニズムは、AT | BEGIN クエリです。等価なのは AS OF ステートメントだけであることに注意してください。
さらに、Snowflakeには完全な「Time Travel」ドキュメントがあり、テーブル、ビュー、スキーマなどのクローンオブジェクトにデータをクエリすることができます。過去または削除されたデータにアクセスできる日数には制限があります(Fail-safeステータスに移行するまでの90日間)。詳細は Snowflake Time Travelドキュメント をご覧ください。
Oracle構文
Snowflake構文
注釈
クエリ ID は、14日以内に実行されたクエリを参照しなければならないことに注意してください。クエリ ID が14日以上経過したクエリを参照している場合は、次のエラーが返されます: エラー: ステートメント<query_id>が見つかりません。この制限を回避するには、参照されるクエリのタイムスタンプを使用します。(Snowflake AT | ドキュメント作成前)
サンプルソースパターン¶
以下の例では、以下のデータを使用してクエリ出力を生成しています。
Oracle¶
Snowflake¶
1.TIMESTAMP ケース付き AS OF¶
Oracle¶
Snowflake¶
2.SCN ケース付き AS OF¶
Oracle¶
Snowflake¶
既知の問題¶
SCN を使用している場合のオプションはサポートされていません。
VERSION ステートメントはSnowflakeではサポートされていません。
関連 EWIs¶
SSC-EWI-0040:ステートメントがサポートされていません。
SSC-EWI-OR0135:Current of句はSnowflakeではサポートされていません。
SSC-FDM-0006:数値型の列はSnowflakeでは同様の動作をしない場合があります。
SSC-FDM-OR0042:日付型をタイムスタンプに変換すると異なる動作をします。