用途
SQL文またはPL/SQLブロックの識別子を宣言し、他の埋込みSQL文で使用できるようにします。
前提条件
なし。
構文
キーワードおよびパラメータ
キーワードおよびパラメータ | 説明 |
---|---|
AT |
SQL文またはPL/SQLブロックが宣言されるデータベースを識別します。次のいずれかを使用してデータベースを指定します。 db_name: DECLARE DATABASE文を使用して事前に宣言したデータベース識別子。 host_variable: 値がdb_nameのホスト変数。この句を省略した場合、Oracleではデフォルトのデータベースに対してSQL文またはPL/SQLブロックが宣言されます。 |
statement_name |
文に対して宣言する識別子。 |
使用上の注意
DECLARE STATEMENT文を使用してSQL文またはPL/SQLブロックの識別子を宣言する必要があるのは、その識別子を参照するDECLARE CURSOR文の埋込みSQLプログラム内での位置が、文またはブロックを解析して識別子と対応付けるPREPARE文よりも物理的に(論理的ではなく)前になっているときのみです。
文の宣言のスコープは、カーソルの宣言と同様に、プリコンパイル・ユニット内全体です。 この文の詳細は、データ型とホスト変数およびOracle動的SQLを参照してください。
例1
この例では、DECLARE STATEMENT文の使用方法を示します。
EXEC SQL AT remote_db DECLARE my_statement STATEMENT; EXEC SQL PREPARE my_statement FROM :my_string; EXEC SQL EXECUTE my_statement;
例2
このPro*C/C++の埋込みSQLプログラムからの例では、DECLARE CURSOR文がPREPARE文の前にあるため、DECLARE STATEMENT文が必要です。
EXEC SQL DECLARE my_statement STATEMENT; EXEC SQL DECLARE emp_cursor CURSOR FOR my_statement; EXEC SQL PREPARE my_statement FROM :my_string; ...
関連項目