1、oracle推不推荐使用临时表,为什么?
2、临时表有几种类型,有没有可以自动删除的?
3、如果不使用临时表,有什么替代的方案。
---------------------------------------------------------------
推荐使用临时表
临时表示Oracle用于存储所有临时表的所在
类似于数据库白纸或草稿纸
Oracle工作时也需要使用一些临时的磁盘空间
当特定事件发生时 Oracle需要用这些磁盘空间管理有关的事务
---------------------------------------------------------------
不使用临时表
可以自己建一个表
然后每次使用该表时做一个判断
之后再做操作
---------------------------------------------------------------
在Oracle8i中,可以创建以下两种临时表:
1。会话特有的临时表
CREATE GLOBAL TEMPORARY
1<table_name> (<column specification=""> )
2ON COMMIT PRESERVE ROWS;
3
42。事务特有的临时表
5CREATE GLOBAL TEMPORARY <table_name> (<column specification=""> )
6ON COMMIT DELETE ROWS;
7CREATE GLOBAL TEMPORARY TABLE MyTempTable
8所建的临时表虽然是存在的,但是你试一下insert 一条记录然后用别的连接登上去select,记录是空的,明白了吧。
9下面两句话再贴一下:
10\--ON COMMIT DELETE ROWS 说明临时表是事务指定,每次提交后ORACLE将截断表(删除全部行)
11\--ON COMMIT PRESERVE ROWS 说明临时表是会话指定,当中断会话时ORACLE将截断表。
12
13临时表也值得使用,它占用临进表空间。
14不使用临时表,那可使用游标.</column></table_name></column></table_name>