SnowConvert AI - Oracle - PACKAGES¶
説明¶
CREATEPACKAGEステートメントを使用して、ストアドパッケージの仕様を作成します。ストアドパッケージとは、関連するプロシージャ、関数、その他のプログラムオブジェクトをカプセル化してデータベースに格納したものです。パッケージ仕様では、これらのオブジェクトを宣言しています。続いて指定されるパッケージ本文がこれらのオブジェクトを定義します。(Oracle PL/SQL 言語リファレンス CREATE PACKAGE ステートメント)
SnowflakeにはOracleのパッケージに相当するものがないため、構造を維持するためにパッケージはスキーマに変換され、すべての要素がスキーマ内で定義されます。また、パッケージとその要素は、元のスキーマ名を保持するように名前が変更されます。
BODY¶
説明¶
PACKAGE BODY のヘッダーが削除され、各プロシージャや関数定義がスタンドアロンの関数やプロシージャに変換されます。
CREATE PACKAGE SYNTAX¶
サンプルソースパターン¶
注釈
以下のクエリは、 PackagesAsSchema オプションを無効にして変換されました。
Oracle¶
Snowflake¶
Snowflake¶
既知の問題¶
問題は見つかりませんでした。
定数¶
パッケージ定数の変換仕様
説明¶
PACKAGE CONSTANTS は、パッケージ宣言か PACKAGE BODY のどちらかで宣言できます。プロシージャでパッケージ定数を使用すると、定数と同じ名前と値を持つ新しい変数が宣言されるため、結果のコードは入力とほぼ同じになります。
Oracle定数宣言構文¶
サンプルソースパターン¶
補助コードのサンプル¶
Oracle¶
Snowflake¶
Oracle¶
結果¶
ID |
|---|
9999 |
Snowflake¶
結果¶
ID |
|---|
9999 |
注釈
なお、 PROCEDURE の定義はSnowflakeでは必要ないため、削除されます。
既知の問題¶
問題は見つかりませんでした。
関連 EWIs¶
SSC-FDM-0006:数値型の列はSnowflakeでは同様の動作をしない場合があります。
DECLARATION¶
説明¶
宣言はスキーマに変換されるので、各内部要素はこのスキーマの中で宣言されます。パッケージ内に存在するすべての要素は、適切な変換を持つ VARIABLES を除いてコメントされています。
CREATE PACKAGE SYNTAX¶
サンプルソースパターン¶
注釈
以下のクエリは、 PackagesAsSchema オプションを無効にして変換されました。
Oracle¶
Snowflake¶
注釈
なお、 FUNCTION と PROCEDURE の定義はSnowflakeでは必要ないため、削除されます。
既知の問題¶
問題は見つかりませんでした。
関連 EWIs¶
関連 EWIs はありません。
VARIABLES¶
パッケージ変数の変換仕様
説明¶
PACKAGE VARIABLES は、パッケージ宣言か PACKAGE BODY のどちらかで宣言できます。その動作により、これらの変数は Snowflakeセッション変数 に変換されるため、各使用または割り当てはSnowflakeの等価なものに翻訳されます。
Oracle変数宣言構文¶
サンプルソースパターン¶
補助コードのサンプル¶
Oracle¶
Snowflake¶
変数宣言¶
Oracle¶
Snowflakeスクリプト¶
変数の使用¶
パッケージ変数の使用は、セッション変数の現在値にアクセスするSnowflake GETVARIABLE 関数に変換されます。これらの変数が使用される操作において機能的等価性を維持するために、元の変数のデータ型に明示的なキャストが追加されます。
Oracle¶
結果¶
ID |
|---|
100 |
Snowflake¶
結果¶
ID |
|---|
100 |
注釈
パッケージ内の PROCEDURE 定義は、Snowflakeでは必要ないため削除されることに注意してください。
変数レギュラー割り当て¶
パッケージ変数が := 演算子を使って割り当てられている場合、割り当てはUPDATE_PACKAGE_VARIABLE_STATEというSnowConvert AI UDFに置き換えられます。これは、Snowflake SETVARIABLE 関数の抽象化です。
Oracle
Oracle¶
結果¶
ID |
|---|
200 |
Snowflake¶
結果¶
ID |
|---|
200 |
注釈
パッケージ内の PROCEDURE 定義は、Snowflakeでは必要ないため削除されることに注意してください。
出力引数としての変数割り当て¶
パッケージ変数が出力引数として使用される場合、プロシージャ内部で新しい変数が宣言され、この変数がプロシージャの出力引数値をキャッチし、前述のUPDATE_PACKAGE_VARIABLE_STATEを使用してパッケージ変数を参照するセッション変数を更新するために使用されます。
Oracle¶
結果¶
ID |
|---|
1000 |
Snowflake¶
結果¶
ID |
|---|
1000 |
注釈
パッケージ内の PROCEDURE 定義は、Snowflakeでは必要ないため削除されることに注意してください。
既知の問題¶
問題は見つかりませんでした。
関連 EWIs¶
SSC-FDM-0006:数値型の列はSnowflakeでは同様の動作をしない場合があります。