ORACLE、DB2临时表简介
来源:互联网 发布:通达信趋势浪指标源码 编辑:程序博客网 时间:2024/05/17 02:39
ORACLE
ORACLE临时表有两种类型:会话级的临时表和事务级的临时表。
1)
CREATE GLOBAL TEMPORARY <TABLE_NAME> (<column specification>)
ON COMMIT DELETE ROWS;
CREATE GLOBAL TEMPORARY TABLE <TABLE_NAME>;
它是临时表的默认参数,这种类型的临时表与事务有关,当进行事务提交或者事务回滚的时候,临时表的数据将自行截断,即当COMMIT或ROLLBACK时,临时表的暂时段将被自动截断(TRUNCATE),但是临时表的结构以及元数据还存储在用户的数据字典中。如果临时表完成它的使命后,最好删除临时表,否则数据库会残留临时表的表结构和元数据。
2)
CREATE GLOBAL TEMPORARY <TABLE_NAME> (<column specification>)
ON COMMIT PRESERVE ROWS;
它表示临时表的内容可以跨事物而存在,当前SESSION不退出的情况下,临时表中的数据会一直存在,临时表的数据只有在当前SESSION退出的时候才被截断(TRUNCATE TABLE)。但是临时表的结构以及元数据还存储在用户的数据字典中。
3)临时表只对当前会话或事务可见。每个会话只能查看和修改自己的数据。
注意事项:
1)临时表可以创建临时的索引、视图、触发器。
2)如果要DROP会话级别的临时表,并且临时表中包含数据时,必须先截断其中的数据,否则会报错。
> TRUNCATE TABLE TMP_TEST;
> DROP TABLE TMP_TEST PURGE;
在ORACLE中,应用程序需要的临时表应该在程序安装时创建,而不是在程序运行时创建。(这是与ms sqlserver或sybase的使用的不同)
临时表在数据库中只需创建一次,不必在每个存储过程中创建一次。临时表总是存在的,除非手动的删除它。临时表作为对象存在数据字典中,并且总是保持为空,直到有会话在其中放入数据。
DB2
可使用 DECLARE GLOBAL TEMPORARY TABLE 语句来定义临时表。
定义了临时表后,我们可以像使用普通表一样使用临时表。临时表只对定义它的用户有效,不同用户可以在同一时间定义同名的临时表,他们之间互不影响。临时表的生命周期是当前SESSION,当SESSION关闭时,临时表将自动删除,这也是临时表的模式名只能为SESSION的原因。此外,我们还可以给临时表定义索引。
可以通过以下三种方式定义临时表:
--方法1:
DECLARE GLOBAL TEMPORARY TABLE SESSION.EMP (<column specification>)
ON COMMIT DELETE ROWS;
--方法2:
DECLARE GLOBAL TEMPORARY TABLE SESSION.EMP
LIKE STUDENTTABLEINCLUDING COLUMN DEFAULTS
WITH REPLACE
ON COMMIT PRESERVE ROWS;
--方法3:
DECLARE GLOBAL TEMPORARY TABLE SESSION.EMP AS
(
SELECT * FROM STUDENTTABLE WHERE<condition>
)
DEFINITION ONLY WITH REPLACE;
- ORACLE、DB2临时表简介
- DB2 临时表
- DB2 临时表
- DB2 临时表
- DB2-创建临时表
- Oracle 临时数据文件简介
- 创建db2临时表 详解
- DB2临时表的创建
- db2 系统临时表空间
- SQL临时表简介
- DB2 已声明的全局临时表
- 使用DB2数据库临时表的注意事项
- DB2临时表在SQL过程
- IBM DB2 SQL 临时表的使用
- DB2创建临时表时的错误
- oracle 临时表问题
- Oracle中临时表
- Oracle中临时表
- 点击label时click事件被触发两次的坑
- Nginx实战(四) 限速功能
- 设置oracle数据库密码永不过期(ORA-28002)
- 2016百度之星资格赛 Problem A
- 过滤git log中的合并(merge)提交
- ORACLE、DB2临时表简介
- 图片异步加载工具类
- 使用Mysql和NoSQL实现热词统计功能
- Nginx实战(五) 反向代理
- 【iOS】让我们一次性解决导航栏的所有问题
- android系统源码目录system/framework下各个jar包的用途以及部分jar包编译源码的位置
- 【C语言学习笔记】一、数据类型那些事儿
- Unity 实时显示FPS——移动端测试神器
- 已知圆弧上两点坐标及圆半径,计算圆心坐标