この文は、ローカル・テンポラリ・テーブルを宣言するために使用します。
DECLARE LOCAL TEMPORARY TABLE table-name ( { column-definition [ column-constraint ... ] | table-constraint | pctfree }, ... ) [ ON COMMIT { DELETE | PRESERVE } ROWS | NOT TRANSACTIONAL ]
pctfree : PCTFREE percent-free-space
percent-free-space : integer
column-definition、column-constraint、table-constraint、pctfree の定義については、CREATE TABLE 文を参照してください。
ON COMMIT 句 デフォルトでは、テンポラリ・テーブルのローは COMMIT のときに削除されます。ON COMMIT 句を使用すると、COMMIT のときにローを保護できます。
NOT TRANSACTIONAL 句 この句を使用して作成されたテーブルは、COMMIT と ROLLBACK のいずれの影響も受けません。状況によっては、NOT TRANSACTIONAL 句を使用するとパフォーマンスが向上します。これは、トランザクション単位でないテンポラリ・テーブルでの操作では、ロールバック・ログにエントリが作成されないためです。たとえば、テンポラリ・テーブルを使用するプロシージャが COMMIT や ROLLBACK の介入を受けずに繰り返し呼び出される場合、NOT TRANSACTIONAL が有用です。
DECLARE LOCAL TEMPORARY TABLE 文はテンポラリ・テーブルを宣言します。
宣言されたテンポラリ・テーブルのローは、テーブルが明示的に削除されたとき、またはスコープ外になったときに削除されます。TRUNCATE または DELETE を使用して、明示的にローを削除することもできます。
複合文内で宣言されたローカル・テンポラリ・テーブルは、複合文内に存在します (複合文の使用を参照してください)。それ以外の場合、宣言されたローカル・テンポラリ・テーブルは接続の終わりまで存在します。
プロシージャの完了後も保持されるローカル・テンポラリ・テーブルをプロシージャで作成するには、代わりに CREATE LOCAL TEMPORARY TABLE 文を使用します (CREATE LOCAL TEMPORARY TABLE 文を参照してください)。
なし
なし
SQL/2003 コア SQL に含まれない SQL/基本機能。
次の例は、ストアド・プロシージャ内のテンポラリ・テーブルの宣言方法を示します。
BEGIN DECLARE LOCAL TEMPORARY TABLE TempTab ( number INT ); ... END |
Copyright © 2009, iAnywhere Solutions, Inc. - SQL Anywhere 11.0.1 |