临时表概述_临时表创建

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

临时表概述_临时表创建

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

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

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

 

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://bianchenghao.cn/53169.html

(0)
编程小号编程小号
上一篇 2023-08-30
下一篇 2023-08-30

相关推荐

发表回复

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