美文网首页
Oracle临时表

Oracle临时表

作者: 看看你的肥脸 | 来源:发表于2019-03-27 21:14 被阅读0次

Oracle临时表

临时表分为两种

会话级别(ON COMMIT PRESERVE ROWS;

CREATE GLOBAL TEMPORARY <TABLE_NAME> ( <column specification> ) 
ON COMMIT PRESERVE ROWS;

会话级临时表是指临时表中的数据只在会话生命周期之中存在,当用户退出会话结束的时候,Oracle自动清除临时表中数据。即切换到另外一个窗口查询时,数据将被清空。

事务级别(ON COMMIT DELETE ROWS;

CREATE GLOBAL TEMPORARY <TABLE_NAME> ( <column specification> ) 
ON COMMIT DELETE ROWS;

用户提交commit和回滚rollback事务的时候,临时表的数据自动清空。

创建临时表时,可以使用TYPE快捷创建,操作如下

CREATE GLOBAL TEMPORARY TABLE TEMP_TABLE OF TYPE_NAME ON COMMIT DELETE ROWS;

删除临时表

TRUNCATE TABLE <TABLE_NAME>;
DROP TABLE <TABLE_NAME>;

删除临时表时,偶尔会出现ORA-14452的错误,意思是有资源还在占用临时表,无法删除。需要找到临时表的会话,手动杀掉。

-- 查找还在使用临时表的会话

SELECT sid, serial# 
FROM v$session 
WHERE sid = (SELECT sid FROM v$lock 
WHERE id1 = (SELECT object_id  FROM dba_objects 
WHERE object_name = UPPER('临时表名')));

-- 使用上面查出的sid和serial#,杀掉会话

ALTER system kill session 'sid,serial#';

相关文章

  • oracle临时表

    临时表 ORACLE数据库除了可以保存永久表外,还可以建立临时表temporary tables。这些临时表用来保...

  • Oracle临时表

    Oracle临时表 临时表分为两种 会话级别(ON COMMIT PRESERVE ROWS;) 会话级临时表是指...

  • Oracle临时表

    有两种类型的临时表: 会话级的临时表 事务级的临时表 1) 会话级的临时表因为这这个临时表中的数据和你的当前会话有...

  • 临时表的合理运用

    oracle 可以创建两种临时表 1. 会话持有的临时表 CREATE GLOBAL TEMPORARY ( ...

  • Oracle12c创建用户

    首先以Oracle管理员用户登录系统,并使用sys用户登录Oracle 创建临时表空间 创建数据表空间 创建用户 ...

  • oracle-临时表,临时表空间,pga区

    表如其名,临时的,意思就是不会永久存在,只在某一个时间段存在的表。而临时表空间就是专门用来建立这类表开辟的表空间。...

  • oracle操作临时表空间

    1、查看临时表空间 (dba_temp_files视图)(v_$tempfile视图) selectt ables...

  • Oracle创建表空间创建用户和用户授权

    Oracle创建表空间创建用户和用户授权 --创建表空间 --创建临时表空间 --创建用户 --用户授权grant...

  • 【MySQL】浅析临时表和永久表同名引发的问题

    在ORACLE中,无论是永久表还是临时表,在同一个Schema中,只能有一个表名,不会存在临时表和永久表同名的问题...

  • oracle临时表空间相关知识介绍 ORA-01652 错误的原

    临时表空间作用 Oracle临时表空间主要用来做查询和存放一些缓冲区数据。临时表空间消耗的主要原因是需要对查询的中...

网友评论

      本文标题:Oracle临时表

      本文链接:https://www.haomeiwen.com/subject/qxntbqtx.html