17.00 - 17.05 - SQL外部ストアド プロシージャの定義 - Advanced SQL Engine - Teradata Database

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

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

外部ストアド プロシージャを実装するクラスを含むJARファイルを登録したら、CREATE PROCEDURE文またはREPLACE PROCEDURE文でSQL外部ストアド プロシージャを定義できます。

外部ストアド プロシージャのデータベース

CREATE PROCEDURE文またはREPLACE PROCEDURE文を実行して、JARファイルのクラスによって実装される外部ストアド プロシージャを定義する場合は、JARファイルが登録されているデータベースを使用する必要があります。

クラス名、メソッド名、およびJAR識別子の指定

CREATE PROCEDURE文およびREPLACE PROCEDURE文には、登録済みのJARファイルの識別子、および外部ストアド プロシージャを実装するJARファイルのクラスとメソッド名を指定するためのEXTERNAL NAME句が用意されています。

次のようなCREATE PROCEDURE文があるとします。

CREATE PROCEDURE GetReport(INOUT Str VARCHAR(120))
   LANGUAGE JAVA
   READS SQL DATA
   PARAMETER STYLE JAVA
   EXTERNAL NAME 'Report_JAR:report.getReport';

説明

EXTERNAL NAME句の文字列 指定内容
Report_JAR SQLJ.INSTALL_JARプロシージャに提供された登録済みのJARファイルの識別子。
Report Java外部ストアド プロシージャを実装する登録済みのJARファイルのクラス名。
getReport 外部ストアド プロシージャがCALL文で呼び出される際にデータベースが呼び出す、指定されたクラスのメソッド名。

データ アクセスの型の指定

外部ストアド プロシージャがSQLの実行にJDBCを使用しない場合、CREATE PROCEDURE文またはREPLACE PROCEDURE文でNO SQLデータ アクセス句を指定して、外部ストアド プロシージャがSQLを実行しないことを示すことができます。

外部ストアド プロシージャがSQLを実行する場合は、CREATE PROCEDURE文またはREPLACE PROCEDURE文は以下のデータ アクセス句のいずれかを指定しなければなりません。
  • CONTAINS SQL
  • READS SQL DATA
  • MODIFIES SQL DATA

詳細と例については、Java外部ストアド プロシージャでのSQLの実行のプロシージャが実行するSQL文の型の制限を参照してください。

デフォルト パスと一時パス

外部ストアド プロシージャを管理するため、Teradataでは外部ストアド プロシージャの作成と実行にデフォルト パスと一時パスが使用されます。これには、外部ストアド プロシージャがコンパイルされる一時ディレクトリが含まれます。

外部ストアド プロシージャのデフォルト パスおよび一時パスの名前など、詳細については、<Teradata Vantage™ - データベースの管理、B035-1093>を参照してください。

関連トピック

詳細情報 参照先
CREATE PROCEDURE文およびREPLACE PROCEDURE文 Teradata Vantage™ - SQLデータ定義言語-構文規則および例、B035-1144
外部ストアド プロシージャに適用される権限 Teradata Vantage™ - データベースの管理、B035-1093