次のDDL文は、SQLプロシージャで指定できません。
- ALTER CONSTRAINT
- ALTER METHOD
- ALTER PROCEDURE
- ALTER TYPE
- BEGIN QUERY LOGGING
- CREATE CONSTRAINT
- CREATE GLOP SET
- CREATE METHOD
- CREATE PROCEDURE
|
- CREATE TABLE(キュー テーブルおよびトレース テーブル形式)
- CREATE TYPE(すべての形式)
- DATABASE
- DROP CONSTRAINT
- DROP GLOP SET
- DROP TYPE
- END QUERY LOGGING
- FLUSH QUERY LOGGING
- HELP(すべての形式)
|
- REPLACE METHOD
- REPLACE PROCEDURE
- REPLACE QUERY LOGGING
- REPLACE TYPE
- SET QUERY_BAND … FOR SESSION
- SET ROLE
- SET SESSION(すべての形式)
- SET TIME ZONE
- SHOW(すべての形式)
|
行レベル セキュリティ制約の任意の部分を管理するSQLプロシージャ内のDDL文も指定できません。
上記の文は、CREATE PROCEDUREまたはREPLACE PROCEDURE DDL SQLテキスト内での指定が制限されていますが、プロシージャ定義内から動的SQLとして呼び出すことは制限されてない。動的SQLリクエストは、それを含むプロシージャのコンパイル時ではなく、実行時に解析され、バインドされます。そのため、コンパイル時のプロシージャは、コンパイル済みのプロシージャからSQLリクエストを実行するときに従う必要があるルールとは別のルールに従います。スタンドアロンの動的SQLとして呼び出すことができるSQL文は、プロシージャ定義内からも動的SQLとして呼び出すことができます。