>  기사  >  데이터 베이스  >  oracle 中的临时表

oracle 中的临时表

WBOY
WBOY원래의
2016-06-07 15:33:211149검색

临时表: 除了永久表,oracle还可以建立临时表来保存 session私有的data,这些data只存在于一个事务或者session的持续存在的期间内。 CREATE GLOBAL TEMPORARY TABLE 语句建立了一个临时表,该临时表可以是事务级别,也可以是session级别。 对于事务级别的临

临时表:

除了永久表,oracle还可以建立临时表来保存 session私有的data,这些data只存在于一个事务或者session的持续存在的期间内。


CREATE GLOBAL TEMPORARY TABLE  语句建立了一个临时表,该临时表可以是事务级别,也可以是session级别。 对于事务级别的临时表,data存在于事务的持续期间。对于session级别的临时,data存在于session的持续期间。临时表中的data 对各自的session的是私有的。每个session 只能看到并且只能修改它自己的data。dml lock 对于 临时表上的data是不需要的。lock 语句对临时表没有作用,因为每个session都有他自己的私有data。


对于在 session级别的临时表发出truncate命令,会truncate掉属于那个session的data。truncate命令不会truncate掉 使用相同表名的其他的session的数据。

临时表上的dml语句不会生成redo。但是,undo logs for the data and redo logs for the undo logs 是生成的。在session终止(user logs off 或者 session 异常终止)时,临时表中的数据会自动drop掉。

可以在临时表上使用create index语句建立索引。建立在临时表上的索引也是临时的,索引中的data 与 临时表中的data 有相同的 session 或者 事务范围。

可以建立访问临时表和永久表的view。也可以在临时表上建立触发器。

oracle 实用工具(注:exp等)可以导出和导入 临时表的定义,但是,即使你使用rows子句,临时表中的data rows也是不会被导出的。类似的,你可以复制临时表的定义,但是不能复制表中的data。

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.