17.10 - CREATE PROCEDUREおよびREPLACE PROCEDURE構文要素(外部形式) - Advanced SQL Engine - Teradata Database

Teradata Vantage™ - SQLデータ定義言語 構文規則および例

Product
Advanced SQL Engine
Teradata Database
Release Number
17.10
Published
2021年7月
Content Type
プログラミング リファレンス
Publication ID
B035-1144-171K-JPN
Language
日本語 (日本)
Last Update
2021-09-23
database_name
デフォルト以外のデータベースでプロシージャを作成または置換する場合に指定する、オプションのデータベース名。
データベース名を指定しない場合、Vantageでは現行データベース内でプロシージャを作成または置換します。
user_name
デフォルト以外のユーザーでプロシージャを作成または置換する場合に指定する、オプションのユーザー名。
ユーザー名を指定しない場合、Vantageでは現在のユーザー内でプロシージャを作成または置換します。
procedure_name
外部プロシージャの呼び出し名。
名前にマルチバイト文字を含むオブジェクトがデータベースのUDFライブラリにある場合、新規オブジェクト名に1バイト文字のみが含まれる場合でも、シングルバイトのセッション文字セットを使用して、新たなUDF、UDT、メソッド、またはJavaストアド プロシージャのオブジェクトを作成することはできません。作成しようとすると、Vantageはそのリクエストをアボートし、要求元にエラーを返します。代わりにマルチバイトのセッション文字セットを使用します。
データベース オブジェクトの命名ルールについては、<Teradata Vantage™ - SQLの基本、B035-1141>を参照してください。
プロシージャ名は、すべての外部プロシージャで必須です。
external_procedure_nameを指定しない場合、procedure_nameはC、C++、またはJavaのプロシージャ名のスペルと大文字小文字の区別を正確に一致させる必要があります。これは、プロシージャの定義のみで、プロシージャの使用には当てはまりません。
number_of_sets
動的結果セットのnumber_of_setsが返されるように指定します。
number_of_setsの有効値の範囲は、0から15です。
external_procedure_name
プロシージャ オブジェクトのエントリ ポイント。
外部プロシージャの名前は、オブジェクトの命名ルールに準拠している必要があります。<Teradata Vantage™ - SQLの基本、B035-1141>を参照してください。
文字の大小は有意であり、CまたはC++プロシージャ名と一致していなければなりません。
このオプションは、Java外部プロシージャでは無効です。 代わりにEXTERNAL NAME external_Java_reference_stringオプションを指定する必要があります。
EXTERNAL SECURITY
オペレーティング システムI/O操作を実行するプロシージャには、この句の使用が推奨されます。これにより関数を実行する特定のOSユーザーを指定できるためです。この句を使用しないと、汎用ユーザーtdatuserでよって保護モードのプロシージャが実行されます。
CREATE AUTHORIZATIONおよびREPLACE AUTHORIZATIONも参照してください。
DEFINER
UDFが、この目的で作成された関連するセキュリティ許可オブジェクトのクライアント ユーザー コンテキストで実行します。このオブジェクトはプロシージャと同じデータベースに含まれています。
  • 許可名を指定する場合、プロシージャを呼び出す前にその名前で許可オブジェクトを定義する必要があります。
  • 許可名を指定しない場合は、デフォルトのDEFINER許可オブジェクトを定義する必要があります。
デフォルトの許可オブジェクトは、ユーザーがプロシージャを実行する前に定義しておく必要があります。
指定された許可名がプロシージャの作成時に存在しない場合は、許可名が存在しないことを示す警告がVantageより報告されます。
それでもプロシージャを実行しようとすると、リクエストはアボートし、システムはリクエスト元にエラーを返します。
authorization_name
CREATE AUTHORIZATIONによって定義されたのと同じ、このDEFINERのオプションの許可名を指定します。
INVOKER
プロシージャは、関数を実行するログオン ユーザーに関連付けられているINVOKER許可を使用して実行します。