临时表概述

临时表概述临时表保存仅在事务或会话期间存在的数据 。临时表中的数据是会话私有的。每个会话只能查看和修改自己的数据。可以创建全局临时表或私有临时表。下表显示了它们之间的本质区别。TemporaryTableCharacteristicsCharacteristicGlobalPrivate

大家好,欢迎来到IT知识分享网。临时表概述

临时表保存仅在事务或会话期间存在的数据 

临时表中的数据是会话私有的。每个会话只能查看和修改自己的数据。

可以创建全局临时表私有临时表下表显示了它们之间的本质区别。

 

Temporary Table Characteristics

Characteristic Global Private
Naming rules Same as for permanent tables与永久表相同 Must be prefixed with ORA$PTT_ 必须以ORA$PTT为前缀_
Visibility of table definition All sessions Only the session that created the table
Storage of table definition Disk Memory only
Types Transaction-specific (ON COMMIT DELETE ROWS) or session-specific (ON COMMIT PRESERVE ROWS) Transaction-specific (ON COMMIT DROP DEFINITION) or session-specific (ON COMMIT PRESERVE DEFINITION)

第三种类型的临时表,即游标持续时间临时表,由数据库为某些类型的查询自动创建。A third type of temporary table, known as a cursor-duration temporary table, is created by the database automatically for certain types of queries.

临时表的目的

临时表在必须缓冲结果集的应用程序中很有用。

例如,日程安排应用程序使大学生能够创建可选的学期课程安排。全局临时表中的一行代表每个计划。在会话期间,计划数据是私有的。当学生选择一个时间表时,应用程序将所选时间表的行移动到一个永久表中。在会话结束时,数据库会自动删除全局临时表中的计划数据。

私有临时表对于动态报告应用程序很有用。例如,客户资源管理 (CRM) 应用程序可能无限期地以同一用户的身份连接,同时多个会话处于活动状态。每个会话创建一个ORA$PTT_crm为每个新事务命名的私有临时表。应用程序可以为每个会话使用相同的表名,但要更改定义。数据和定义仅对会话可见。表定义一直持续到事务结束或手动删除表。

临时表中的段分配

与永久表一样,全局临时表是在数据字典中静态定义的持久对象。对于私有临时表,元数据只存在于内存中,但可以驻留在磁盘上的临时表空间中。

对于全局和私有临时表,数据库会在会话首次插入数据时分配临时段。在会话中加载数据之前,该表显示为空。对于特定于事务的临时表,数据库在事务结束时释放临时段。对于特定于会话的临时表,数据库会在会话结束时释放临时段。

临时表创建

CREATE ... TEMPORARY TABLE语句创建一个临时表。

 

指定“全局临时表”或“专用临时表”。在这两种情况下,ONCOMMIT子句指定表数据是特定于事务(默认)还是特定于会话。您可以为数据库本身创建临时表,而不是为每个PL/SQL存储过程创建临时表。

可以使用create INDEX语句为全局(非私有)临时表创建索引。这些索引也是临时的。索引中的数据与临时表中的数据具有相同的会话或事务范围。还可以在全局临时表上创建视图或触发器。

 

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/30646.html

(0)

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

关注微信