Oracle 临时表详解(temporary table)
2021/10/4 19:40:56
本文主要是介绍Oracle 临时表详解(temporary table),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
文章目录
- 1 概述
- 2 分类
-
- 2.1 事务级临时表
- 2.2 会话级临时表
1 概述
1. 作用:用来 '临时' 存储数据 (1) 当一个事务或会话结束的时候,这个临时表中的 '数据' 会被数据库自动清空 (2) 但 '表结构' 依旧保留 2. 分类: '生命周期的不同' (1) 事务级临时表: on commit delete rows; commit 时 '删除' 记录(默认) (2) 会话级临时表: on commit preserve rows; commit 时 '保存' 记录,结束会话时 '删除' 记录 3. 注意 (1) 临时表处理的效率高于普通表 <1> 不记录 '日志' <2> 只能当前用户使用,不会产生 '锁' (2) 和普通表操作方式一样 4. 以下测试中,创建临时表后,信息查询 select t.owner, t.table_name, t.tablespace_name, -- 所属表空间 t.logging, -- 是否记录日志 t.duration --生命周期 from dba_tables t where t.owner = 'SCOTT' and t.table_name in ('TRANSACTION_TEMP', 'SESSION_TEMP');
2 分类
2.1 事务级临时表
create global temporary table transaction_temp ( tid number(3), tname varchar2(30) ) on commit delete rows; -- on commit delete rows 可省略(默认)
验证:事务中,数据可以查询,事务结束后(commit、rollback)后,数据被清空
insert into transaction_temp(tid, tname) values(1, 'a'); insert into transaction_temp(tid, tname) values(2, 'b'); -- commit; select * from transaction_temp;
查询截图:
2.2 会话级临时表
create global temporary table session_temp ( tid number(3), tname varchar2(30) ) on commit preserve rows;
验证:commit 时,保存数据至表中,会话结束后,数据被清空
insert into session_temp(tid, tname) values(1, 'a'); insert into session_temp(tid, tname) values(2, 'b'); commit; select * from session_temp;
结束会话有以下办法:(上述测试,立马就结束了,执行很快哦)
1. 自然结束(执行完成) -- sql_text => begin :id := sys.dbms_transaction.local_transaction_id; end; select t1.sid, t1.serial#, t2.sql_text, t2.action from v$session t1, v$sql t2 where t2.sql_id = t1.prev_sql_id and t1.username = 'SCOTT'; 2. 手动删除 (1) alter system kill session 'sid,serial#';
再新建一个会话,查询:数据被清空了
这篇关于Oracle 临时表详解(temporary table)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-05-15PingCAP 黄东旭参与 CCF 秀湖会议,共探开源教育未来
- 2024-05-13PingCAP 戴涛:构建面向未来的金融核心系统
- 2024-05-09flutter3.x_macos桌面os实战
- 2024-05-09Rust中的并发性:Sync 和 Send Traits
- 2024-05-08使用Ollama和OpenWebUI在CPU上玩转Meta Llama3-8B
- 2024-05-08完工标准(DoD)与验收条件(AC)究竟有什么不同?
- 2024-05-084万 star 的 NocoDB 在 sealos 上一键起,轻松把数据库编程智能表格
- 2024-05-08Mac 版Stable Diffusion WebUI的安装
- 2024-05-08解锁CodeGeeX智能问答中3项独有的隐藏技能
- 2024-05-08RAG算法优化+新增代码仓库支持,CodeGeeX的@repo功能效果提升