oracle临时表

oracle临时表简介

--【创建会话级临时表】
--提交事务保留临时表数据
create global temporary table tmp_user_session(
       user_id number not null,
       user_name varchar(20),
       email varchar(20)
) on commit preserve rows;--提交事务保留临时表数据

select * from tmp_user_session;

insert into tmp_user_session(user_id,user_name,email) values(1,'张三','123@123.com');
insert into tmp_user_session(user_id,user_name,email) values(2,'李四','123@123.com');

commit;
--提交事务不保留临时表数据
create global temporary table tmp_user_session2(
       user_id number not null,
       user_name varchar(20),
       email varchar(20)
);
insert into tmp_user_session2(user_id,user_name,email) values(1,'张三','123@123.com');
insert into tmp_user_session2(user_id,user_name,email) values(2,'李四','123@123.com');

select * from tmp_user_session2
commit;

--【事务级临时表】
create global temporary table tmp_user_transaction(
       user_id number not null,
       user_name varchar2(30),
       email varchar2(30)
) on commit delete rows;

insert into tmp_user_transaction(user_id,user_name,email) values(1,'张三','123@123.com');
insert into tmp_user_transaction(user_id,user_name,email) values(2,'李四','123@123.com');
insert into tmp_user_transaction(user_id,user_name,email) values(3,'王五','123@123.com');

select * from tmp_user_transaction

--执行提交事务或者回滚事务都会临时表数据
commit;
rollback;

--【比较临时表和普通表的区别】
select *
from user_tables 
where table_name = 'T_USER' or table_name = 'TMP_USER_SESSION' or table_name = 'TMP_USER_TRANSACTION';

--临时表的应用场景
----------------------------------------------------------------------------
--1.大表分割:先分割为众多小的临时表操作,最后再综合处理                 ---
--2.解决并行问题:一般是锁定表,使用临时表后可以在会话层面透明,互不影响 ---
--3.作为数据缓存:例如存储过程中可以多为函数或者SQL的临时空间            ---
----------------------------------------------------------------------------
select count(*) from user_tables a;
select count(*) from all_tables a;
select count(*) from dba_tables a;

--【dual表】
select * from dual;
select 1+1 result from dual;
select sysdate from dual;
insert into dual values('X');
delete from dual;
select * from user_tables where table_name = 'DUAL'


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值