内部データと外部データ - Advanced SQL Engine - Teradata Database

Teradata Vantage™ - SQL外部ルーチン プログラミング

Product
Advanced SQL Engine
Teradata Database
Release Number
17.05
17.00
Published
2020年6月
Language
日本語
Last Update
2021-03-30
dita:mapPath
ja-JP/qwr1571437338192.ditamap
dita:ditavalPath
ja-JP/qwr1571437338192.ditaval
dita:id
B035-1147
Product Category
Software
Teradata Vantage

すべてのデータはプロシージャに対してローカルです。プロシージャの呼び出しの間でグローバル データは保持されません。ただし、GLOPデータだけは例外です。GLOPデータについて詳しくは、グローバル持続データを参照してください。

プロシージャに静的変数を含めることはできません。プロシージャには、静的定数を含めることができます。

CREATE PROCEDURE/REPLACE PROCEDURE文中でExternal Data Access句を指定することにより、関数や外部ストアド プロシージャとTeradata Databaseに対して外部のデータとの関係を定義することができます。

指定するオプションにより、次のことが決定されます。
  • 外部ルーチンが外部データを読み取りまたは変更できるかどうか
  • データベースの再始動後に、データベースが関数またはプロシージャに関するリクエストの再ドライブを行なうかどうか
再ドライブ保護が有効な場合、システムでは完了したSQLリクエストに対する応答を保持し、データベースの再始動時に未完了のリクエストを再実行します。ただし、外部ルーチンのEXTERNAL DATA ACCESS句がMODIFIES EXTERNAL DATAオプションで定義されている場合、データベースではその関数またはプロシージャに関するリクエストを再ドライブしません。再ドライブ機能の詳細については、次を参照してください。
  • Teradata Vantage™ - データベースの管理、B035-1093
  • <Teradata Vantage™ - データベース ユーティリティ、B035-1102>の「RedriveProtection」および「RedriveDefaultParticipation DBS」制御フィールド

EXTERNAL DATA ACCESS句を指定しない場合のデフォルトは、NO EXTERNAL DATAです。

以下のテーブルに、EXTERNAL DATA ACCESS句のオプション、およびデータベースの外部ルーチンに対するそれらのオプションの使用方法について説明します。

オプション 説明
MODIFIES EXTERNAL DATA ルーチンはデータベースの外部データを変更します。この場合、変更という語には、削除操作、挿入操作、および更新操作が含まれます。
データベース障害の発生後、データベースでは、このオプションで定義されている関数または外部ストアド プロシージャに関するリクエストを再ドライブしません。
NO EXTERNAL DATA ルーチンはデータベースの外部データにアクセスしません。これは、デフォルトです。
READS EXTERNAL DATA ルーチンはデータベースの外部データを読み取りますが、そのデータを変更することはしません。

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