17.00 - 17.05 - SQL DATA ACCESS句 - Advanced SQL Engine - Teradata Database

Teradata Vantage™ - SQLデータ定義言語 詳細トピック

Product
Advanced SQL Engine
Teradata Database
Release Number
17.00
17.05
Release Date
2020年6月
Content Type
プログラミング リファレンス
Publication ID
B035-1184-170K-JPN
Language
日本語 (日本)

SQL DATA ACCESS句は、プロシージャがSQL文を発行できるかどうか、また発行できる場合はどのタイプを発行できるのかを示します。「SQL文」を含む外部プロシージャには、実際には標準SQL文自体が含まれるのではなく、文のCLIv2、ODBC、またはJDBCの呼び出しが含まれています。

SQL DATA ACCESS句とLANGUAGE句は、任意の順序で指定できます。

外部プロシージャからのSQL呼出しの実行がサポートされることにより、以下のすべてが実行可能です。
  • 外部プロシージャを作成し、クライアント アプリケーションがCLIv2呼出しを実行してSQLリクエストを実行するのと同じ方法でCLIv2またはJDBCを使用してSQLリクエストを実行できます。
  • CREATE PROCEDURE (外部形式)およびREPLACE PROCEDURE (外部形式)文を使用して、外部プロシージャから作成されたSQL呼び出しの特定の機能を定義するDATA ACCESS句を指定できます。

例えば、CLIv2外部プロシージャが、DATA ACCESS句にMODIFIES SQL DATAオプションを指定している場合、システムはプロシージャがAPIとリンクされる必要があることは認識していますが、プロシージャがどのAPIとリンクされる必要があるのかは認識していません。この状態を処理するには、EXTERNAL NAME句が明示的に、プロシージャがCLIv2ライブラリとリンクされることを指定する必要があります。

JDBCを使用する外部プロシージャの場合、EXTERNAL NAME句でリンク先のパッケージを明示的に指定することは、有効ではありません。これらのプロシージャの場合、CREATE PROCEDUREまたはREPLACE PROCEDUREリクエストに指定するLANGUAGE句とSQL DATA ACCESS句の組合わせに基づいて決定されます。

この情報を認識すると、システムは適切なライブラリの検索、そのライブラリとのリンク付け、実行時の適切な環境変数の設定を行ないます。

既存のUDFライブラリとのリンクおよび実行の衝突を避けるため、データベースは、CLIv2ベースまたはJavaベースの外部プロシージャを含む各データベースの標準UDFライブラリとは別に、動的ライブラリを維持します。