メジャー リリースにアップグレードまたは移行するときには、ストアド プロシージャを必ず再コンパイルする必要があります。ストアド プロシージャの再コンパイルには、ALTER PROCEDURE文を使用します。
SQLプロシージャのAT TIME ZONEオプション
SQLプロシージャを作成すると、Vantageは、そのプロシージャの定義と一緒に現在のセッションのタイムゾーンを格納します。その結果、そのプロシージャに含まれているSQL制御言語要素とSQL文を常に同じタイムゾーンで実行し、常に一貫性のある結果を生成することが可能になります。 ただし、プロシージャに入力パラメータとして渡される時刻とタイムスタンプのデータでは、プロシージャの作成時のタイムゾーンではなく実行時セッションのタイムゾーンが使用されます。
AT TIME ZONEオプションを使用すると、プロシージャを再コンパイルする際にSQLプロシージャのすべてのSQL要素に関するタイムゾーンをリセットできます。その後、Vantageは新しく指定されたタイムゾーンを、プロシージャの作成時タイムゾーンとして格納します。
AT TIME ZONEを指定できるのは、COMPILE [ONLY]オプションを指定する場合に限られます。さらに、COMPILE [ONLY]の指定の後に記述する必要もあります。それ以外の場合は、Vantageがリクエストをアボートし、リクエスト側にエラーを返します。
タイムゾーン文字列の使用に関する制約
標準Teradataシステム タイムゾーン文字列を使用するときに、タイムゾーン ルール(例えば、DST(Daylight Saving Time)シフト)は、1986年以前には適用されません。Teradata標準タイムゾーン文字列の有効な年は、1987年から9999年までです。
Teradata標準タイムゾーン文字列が要件を満たさない場合、新しいカスタム タイムゾーン文字列を追加することができます。または、ルールを変更するか、新規ルールをGetTimeZoneDisplacementに追加することによって既存の文字列を変更することもできます。
ALTER PROCEDUREのSQL形式の詳細については、<Teradata Vantage™ - SQLデータ定義言語-構文規則および例、B035-1144>を参照してください。