Orcal临时表类型有几种,创建和删除的操作是什么
导读:这篇文章主要为大家详细介绍了Orcal临时表类型有几种,创建和删除的操作是什么,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望对大家学习或工作能有帮助。 一.Orcal临时表分类 1.会话级...
这篇文章主要为大家详细介绍了Orcal临时表类型有几种,创建和删除的操作是什么,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望对大家学习或工作能有帮助。
一.Orcal临时表分类
1.会话级临时表
- 1).保存一个会话
Session
的数据。 - 2).当会话退出时,临时表数据自动清空。表结构与元数据还存储在用户数据字典。
总结:会话级临时表是指临时表中的数据只在会话生命周期之中存在,当用户退出会话结束的时候,Oracle自动清除临时表中数据。
2.事务级临时表
- 1).保存一个事务中需要的数据。
- 2).当事务提交或则回滚的时候,临时表数据自动清空。表结构与元数据还存储在用户数据字典。
总结:事务级临时表是指临时表中的数据只在事务生命周期中存在,当事务提交或则回滚的时候,Oracle
自动清除临时表中数据。
二.临时表创建
1.会话级临时表
1).先创建后插入数据
Create Global Temporary Table Table_Name (Col1 Type1,Col2 Type2...) On Commit Preserve Rows; Insert Into Table_Name Values("","");
2).创建时直接插入数据
CREATE GLOBAL TEMPORARY TABLE Table_Name ON COMMIT PRESERVE ROWS AS select Col1, Col2 from Query_Table_Name where...;
2.事务级临时表
1).先创建后插入数据
Create Global Temporary Table Table_Name (Col1 Type1,Col2 Type2...) On Commit Delete Rows; Insert Into Table_Name Values("","");
2).创建时直接插入数据
CREATE GLOBAL TEMPORARY TABLE Table_Name ON COMMIT Delete ROWS AS select Col1, Col2 from Query_Table_Name where...;
三.删除临时表
如果创建临时表的会话没有结束,则无法删除临时表,因为临时表还在使用之中。但是结束会话(关闭创建会话级临时表的命令窗口)后就可以删除了;
Drop Table Table_name;
四.删除时报错
描述:关闭原先的命令窗口,然后执行 Drop Table Table_name;
报错:
ORA-14452:
试图创建,更改或删除正在使用的临时表中的索引
1.清空表,然后删除表
TRUNCATE TABLE test_table; drop table test_table;
2.杀掉进程,然后删除
SELECT sid, serial# FROM v$session WHERE sid = (SELECT sid FROM v$lock WHERE id1 = (SELECT object_id FROM user_objects WHERE object_name = upper('test_table')));
如果无权限则执行授权
grant select any dictionary to user;
查询到该session的sid和serial#:
然后杀掉进程:
lter system kill session 'sid,serial#';
最后进行删除
drop table test_table;
以上就是关于“Orcal临时表类型有几种,创建和删除的操作是什么”的相关知识,感谢各位的阅读,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注网络,小编每天都会为大家更新不同的知识。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Orcal临时表类型有几种,创建和删除的操作是什么
本文地址: https://pptw.com/jishu/650232.html