Oracle - 一時表を作成するAdvertisement一時表の利用。
Oracleでは、一時表を利用することができる。一時表はワーク用の表のことで、トランザクション終了時、もしくはセッションの終了時までレコードを保持するが、最終的にレコードは自動的に削除される。
書式 create global temporary table [表名] [on commit delete rows|on commit preserve rows] on commit delete rows トランザクション終了時にデータを削除する on commit preserve rows セッション終了時にデータを削除する 例:一時表の作成
SQL> create global temporary table test_temp(
col1 number,
col2 number)
on commit delete rows;
表が作成されました。
SQL> insert into test_temp values(10, 10);
1行が作成されました。
SQL> insert into test_temp values(20, 20);
1行が作成されました。
SQL> select * from test_temp;
COL1 COL2
---------- ----------
10 10
20 20
SQL> commit;
コミットが完了しました。
SQL> select * from test_temp;
レコードが選択されませんでした。
SQL> drop table test_temp;
表が切り捨てられました。
SQL> create global temporary table test_temp(
col1 number,
col2 number
)on commit preserve rows;
表が作成されました。
SQL> insert into test_temp values(10, 10);
1行が作成されました。
SQL> insert into test_temp values(20, 20);
1行が作成されました。
SQL> commit;
コミットが完了しました。
SQL> select * from test_temp;
COL1 COL2
---------- ----------
1 1
2 2
SQL> disconnect
Oracle9i Enterprise Edition Release 9.0.1.3.1 - Production
JServer Release 9.0.1.3.0 - Productionとの接続が切断されました。
SQL> connect db01/db01
接続されました。
SQL> select * from test_temp;
レコードが選択されませんでした。
on commit delete rows で作成した一時表は commit の時点でレコードが削除されている。一方 on commit preserve rows で作成した一時表はセッション中はデータを維持しているが、セッションが終了するとレコードが削除されている。
Advertisement |
ショートカット・634トップページ・このカテゴリのトップページに戻る ・634ラボ UIコレクションギャラリー サイト検索Y!ログール |