16.20 - ストアド プロシージャの再コンパイル - Teradata Vantage NewSQL Engine

Teradata Vantage™ SQL ストアド プロシージャおよび埋め込みSQL

prodname
Teradata Database
Teradata Vantage NewSQL Engine
vrm_release
16.20
category
プログラミング リファレンス
featnum
B035-1148-162K-JPN

メジャー リリースにアップグレードまたは移行するときには、ストアド プロシージャを必ず再コンパイルする必要があります。ストアド プロシージャの再コンパイルには、ALTER PROCEDURE文を使用します。

SQLプロシージャのAT TIME ZONEオプション

SQLプロシージャを作成すると、Teradata Databaseは、そのプロシージャの定義と一緒に現在のセッションのタイムゾーンを格納します。その結果、そのプロシージャに含まれているSQL制御言語要素とSQL文を常に同じタイムゾーンで実行し、常に一貫性のある結果を生成することが可能になります。ただし、プロシージャに入力パラメータとして渡される時刻データまたはタイムスタンプ データでは、プロシージャの作成時のタイムゾーンではなく、実行時セッションのタイムゾーンが使用されます。

AT TIME ZONEオプションを使用すると、プロシージャを再コンパイルする際にSQLプロシージャのすべてのSQL要素に関するタイムゾーンをリセットできます。その後、Teradata Databaseは新しく指定されたタイムゾーンを、プロシージャの作成時タイムゾーンとして格納します。

AT TIME ZONEを指定できるのは、COMPILE [ONLY]オプションを指定する場合に限られます。さらに、COMPILE [ONLY]の指定の後に記述する必要もあります。それ以外の場合は、Teradata Databaseがリクエストをアボートし、リクエスト側にエラーを返します。

タイムゾーン文字列の使用に関する制約

標準Teradata Databaseシステム タイムゾーン文字列を使用するときに、タイムゾーン ルール(例えば、DST(Daylight Saving Time)シフト)は、1986年以前には適用されません。Teradata Database標準タイムゾーン文字列の有効な年は、1987年から9999年までです。

Teradata Database標準タイムゾーン文字列が要件を満たさない場合、新しいカスタム タイムゾーン文字列を追加することができます。または、ルールを変更するか、新規ルールをGetTimeZoneDisplacementに追加することによって既存の文字列を変更することもできます。

ALTER PROCEDUREの詳細については、<Teradata Vantage™ SQLデータ定義言語の構文規則および例、B035-1144>の「ALTER PROCEDURE (SQL形式)」を参照してください。