SnowConvert AI - Teradata - SQL からJavaScript (プロシージャ)¶
GET DIAGNOSTICS EXCEPTION¶
Teradata GET DIAGNOSTICS EXCEPTION ステートメントをSnowflakeスクリプトに変換するための翻訳リファレンス
説明¶
GET DIAGNOSTICS は診断エリアから成功、例外、完了条件に関する情報を取得します。
For more information, see the Teradata GET DIAGNOSTICS documentation.
注釈
わかりやすくするため、出力コードの一部を省略しています。
サンプルソースパターン¶
Teradata ¶
クエリ¶
Snowflake ¶
Javascript¶
既知の問題¶
サポートされていない条件属性ステートメント
CLASS_ORIGIN
CONDITION_IDENTIFIER
CONDITION_NUMBER
MESSAGE_LENGTH
RETURNED_SQLSTATE
SUBCLASS_ORIGIN
If¶
IF ステートメント の変換は以下の通りです。
Teradata
Snowflake
Case¶
Caseステートメント の変換は以下の通りです。
Teradata
Snowflake
カーソル宣言、 OPEN 、 FETCH 、 CLOSE¶
cursorステートメント の変換は以下の通りです。
Teradata
Cursor¶
Snowflake
JavaScript カーソル¶
While¶
whileステートメント の変換は以下の通りです。
Teradata
While¶
Snowflake¶
While¶
Security¶
securityステートメント の変換は以下の通りです。
Teradata |
Snowflake |
|---|---|
SQL SECURITY CREATOR |
EXECUTE AS OWNER |
SQL SECURITY INVOKER |
EXECUTE AS CALLER |
SQL SECURITY DEFINER |
EXECUTE AS OWNER |
FOR-CURSOR-FOR loop¶
FOR-CURSOR-FOR ループ の変換は以下の通りです。
Teradata
For-Cursor-For-Loop¶
Snowflake
JavaScript For-Cursor-For-Loop¶
注意:Teradataのプロシージャに存在する FOR ループは、その機能をエミュレートするjavascript内の FOR ブロックに変換されます。
ステートメント内部で参照されるプロシージャパラメーターと変数¶
プロシージャのステートメント内で参照されるプロシージャパラメーターと変数の変換は次のようになります。
Teradata
Parameters and variables¶
Snowflake
JavaScript パラメーターと変数¶
注意: プロシージャのパラメーターまたはプロシージャの内部で宣言された変数が、変換が必要なTeradataステートメントの内部で参照されるときはいつでも、 この参照は、元の参照の機能を保持するために、結果のテキストからエスケープされます。
Leave¶
Javascriptでは、 break にパラメーターを追加することで、Teradata LEAVE ジャンプの動作をエミュレートすることができます。
ラベルは、Javascriptのラベル付きステートメントを使用してエミュレートすることもできます。
LEAVE ステートメント の変換は以下の通りです。
Teradata
終了¶
Snowflake
JavaScript Leave¶
プロシージャから結果を取得する¶
翻訳の説明¶
Teradataでは、プロシージャからデータを返す方法は2つあります。1つ目は出力パラメーターを使用する方法で、2つ目は 動的結果セット と カーソル を使用する方法です。次の例に両方を示します。それぞれの重要なポイントについて、以下に説明します。
ストアドプロシージャからデータを返す例¶
Teradata
アウトパラメーター¶
Snowflake
JavaScript アウトパラメーター¶
この変換された SQL では、いくつかの変換が行われます。
DYNAMIC RESULT SETS 2定義はDYNAMIC_RESULTS変数に変換されます。
When a cursor with an
WITH RETURNattribute is opened (and therefore a query is executed), its query ID is stored in the_OUTQUERIEScollection to be later returned. The query id is obtained by thegetQueryId()function provided in the JavaScript API for Snowflake stored procedures.最初のk-クエリ-IDs のみがコレクションに格納されます。kは
DYNAMIC_RESULTS変数の値です。これはTeradataの動作をエミュレートするためで、ストアドプロシージャ内でさらに多くのカーソルがオープンされたとしても、最初のkのオープンされたカーソルのみを返します。DECLARE CURSOR WITH RETURNとPREPAREの組み合わせは、以下のように翻訳されます。
The output parameters are supported through the return statement of the procedure. An array is created containing the value of each output parameter and the
_OUTQUERIEScollection. ThePROCRESULTSfunction deals with the creation and filling of this array. See PROCRESULTS() helper for more information.
ストアドプロシージャからデータを取得する例¶
出力パラメーターとクエリ IDs がプロシージャから返される場合、以下のように、2番目のプロシージャが1番目のプロシージャを呼び出してこれらの値を取得することができます。
Teradata
Callプロシージャ¶
Snowflake
JavaScript Callプロシージャ¶
Procedure1からの引数P1の値が返され、X変数に格納されます。Procedure1から返された_ OUTQUERIESは、resultset変数に格納されます。
注釈
この動作は、 INOUT パラメーターにも適用されます。
既知の問題¶
問題は見つかりませんでした。
関連 EWIs¶
SSC-EWI-0022: このステートメントに含まれる1つ以上の識別子がデフォルトでパラメーターとみなされていました。
SSC-EWI-0023: パフォーマンスレビュー - ループには挿入、削除、更新ステートメントが含まれます。
SSC-EWI-0026: 変数は日付、時刻、タイムスタンプにキャストする必要があります。
SSC-FDM-TD0001 :このメッセージは、 SnowConvert AI が BLOB データ型を見つけたときに表示されます。