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に対するUDTUSAGE権限。
- SYSUDTLIBデータベースに対するUDTUSAGE権限。
- SYSUDTLIBデータベースに対するUDTTYPE権限。
詳細については、SQLプロシージャ権限のルールを参照してください。
必要な権限: REPLACE PROCEDURE
プロシージャを置換するには、そのプロシージャ、またはそれを含むデータベースかユーザーに対するDROP PROCEDURE権限が必要です。
プロシージャが存在していない場合、そのプロシージャ、またはそれを含むデータベースかユーザーに対するCREATE PROCEDURE権限が必要です。
プロシージャを置換するユーザーには、アクセスするすべてのオブジェクトに対する権限が必要です。
プロシージャが置換された後は、その直接の所有者は置換したユーザーではなく、それを含むデータベースまたはユーザーになります。それを直接所有するデータベースには、WITH GRANT OPTIONを含めプロシージャを実行するための適切な権限がすべて必要です。
自動的に与えられる権限
新しいプロシージャを作成した場合、Vantageは自動的に以下の権限を与えます。
- DROP PROCEDURE
- EXECUTE PROCEDURE