17.05 - CREATE PROCEDUREおよびREPLACE PROCEDURE(SQL形式) - Advanced SQL Engine - Teradata Database

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

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

SQLプロシージャ コンパイラに、残りのソース テキストのSQL文からプロシージャを作成または置換するよう命令し、プロシージャの呼び出しに使用されるSQL定義を作成します。

REPLACE PROCEDUREは、既存のSQLプロシージャの定義を置き換えるようSQLプロシージャ コンパイラに命令します。

指定されたSQLプロシージャが存在しない場合、REPLACE PROCEDUREは残りのソース テキストのSQL文から、その名前を持つ新しいプロシージャを作成します。

ANSI準拠

この文は、ANSI SQL:2011規格に対するTeradata拡張機能です。

必要な権限: CREATE PROCEDURE

プロシージャが含まれるデータベースまたはユーザーに対するCREATE PROCEDURE権限が必要です。SQLプロシージャの作成者には、WITH GRANT OPTION付きのDROP PROCEDUREおよびEXECUTE権限が自動的に与えられます。

Vantageは、プロシージャのSQL SECURITY句オプションの定義に応じて、異なる方法でSQLプロシージャ権限をチェックします。

SQLデフォルト以外のデータベースまたはユーザーに対してストアド プロシージャを作成することを許可するCREATE OWNER PROCEDURE権限が明示的に付与されていない限り、SQL SECURITY句にはOWNERオプションを指定できないことに注意してください。これはセキュリティ管理者が守らなくてはならない非常に重要な権限です。どうしてもこの権限が必要なユーザーにのみ付与する必要があります。

パラメータ型がUDTか、またはUDT構成要素の型を含むArray/Varrayの場合、以下の権限の少なくとも1つが必要です。
  • 指定されたUDTに対するUDTUSAGE権限。
  • SYSUDTLIBデータベースに対するUDTUSAGE権限。
  • SYSUDTLIBデータベースに対するUDTTYPE権限。

詳細については、SQLプロシージャ権限のルールを参照してください。

必要な権限: REPLACE PROCEDURE

プロシージャを置換するには、そのプロシージャ、またはそれを含むデータベースかユーザーに対するDROP PROCEDURE権限が必要です。

プロシージャが存在していない場合、そのプロシージャ、またはそれを含むデータベースかユーザーに対するCREATE PROCEDURE権限が必要です。

プロシージャを置換するユーザーには、アクセスするすべてのオブジェクトに対する権限が必要です。

プロシージャが置換された後は、その直接の所有者は置換したユーザーではなく、それを含むデータベースまたはユーザーになります。それを直接所有するデータベースには、WITH GRANT OPTIONを含めプロシージャを実行するための適切な権限がすべて必要です。

自動的に与えられる権限

新しいプロシージャを作成した場合、Vantageは自動的に以下の権限を与えます。

  • DROP PROCEDURE
  • EXECUTE PROCEDURE