博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[转]Oracle DB 临时表
阅读量:5308 次
发布时间:2019-06-14

本文共 1241 字,大约阅读时间需要 4 分钟。

  • 临时表
• 会话或事务处理结束时会自动清除存储数据
• 为每个会话提供专用数据存储
• 可供所有会话使用,而不影响各个会话的专用数据
 
如果需要存储专用数据以执行某一任务,而且要在执行该任务后,事务处理或会话结束时 清除数据,则可以利用临时表。临时表提供了这种功能,这样你不必在其它会话中隐藏数 据,也不必在结束时删除所生成的数据。对于某一会话来说,唯一可见的临时表数据是该 会话已经插入的数据。
临时表可专用于事务处理,也可专用于会话。对于专用于事务处理的临时表而言,数据存 在于事务处理期间;对于专用于会话的临时表而言,数据存在于会话期间。在这两种情况 下,会话插入的数据专用于会话。每个会话仅可查看和修改自己的数据。因此,临时表的 数据从不会获得DML 锁。
下列子句控制着行的生存期:
• ON COMMIT DELETE ROWS :指定插入行的生存期仅为事务处理的持续时间
• ON COMMIT PRESERVE ROWS :指定插入行的生存期为会话的持续时间
 
 
  • 临时表:注意事项
• 使用GLOBAL TEMPORARY 子句创建临时表:
CREATE GLOBAL TEMPORARY TABLE employees_temp
ON COMMIT PRESERVE ROWS
AS SELECT * FROM employees;
 
• 使用TRUNCATE TABLE 命令删除表内容。
• 在临时表中可创建下列项:
– 索引
– 视图
– 触发器
 
使用CREATE GLOBAL TEMPORARY TABLE 语句可创建临时表。在临时表中可以创建索 引、视图及触发器,还可以使用“Export and Import(导出和导入)”或“Data Pump(数 据泵)”导出和导入临时表的定义。但是,即使使用了ROWS 选项,也不会导出数据。
除了上述已经提到的会导致删除数据的事件,还可以使用TRUNCATE TABLE 命令有效地 强制删除数据。使用这个命令可删除所有已插入的数据。使用这个命令比使用DELETE 命令更有效。
 
在临时表中可以创建索引、视图及触发器。
单击“Create Table: Table Organization(创建表:表组织)页上的“Temporary(临时)” 选项,可以使用Enterprise Manager 创建临时表。单击“Continue (继续)”,在下一页 中可指定临时表是专用于会话还是专用于事务处理。“Tablespace(表空间)”字段处于 禁用状态,因为总是在用户的临时表空间中创建临时表;不能指定其它表空间。
注:GLOBAL 关键字是基于国际标准化组织(ISO)  在SQL 标准中指定的术语建立的。

 

来源:http://blog.csdn.net/rlhua/article/details/13015519

转载于:https://www.cnblogs.com/gispf/p/3760490.html

你可能感兴趣的文章
Extjs6 经典版 combo下拉框数据的使用及动态传参
查看>>
【NodeJS】http-server.cmd
查看>>
研磨JavaScript系列(五):奇妙的对象
查看>>
面试题2
查看>>
selenium+java iframe定位
查看>>
P2P综述
查看>>
第五章 如何使用Burp Target
查看>>
Sprint阶段测试评分总结
查看>>
sqlite3经常使用命令&语法
查看>>
linux下编译openjdk8
查看>>
【python】--迭代器生成器装饰器
查看>>
Pow(x, n)
查看>>
安卓当中的线程和每秒刷一次
查看>>
每日一库:Modernizr.js,es5-shim.js,es5-safe.js
查看>>
ajax连接服务器框架
查看>>
wpf样式绑定 行为绑定 事件关联 路由事件实例
查看>>
利用maven管理项目之POM文件配置
查看>>
TCL:表格(xls)中写入数据
查看>>
Oracle事务
查看>>
String类中的equals方法总结(转载)
查看>>