您好,登录后才能下订单哦!
这篇文章将为大家详细讲解有关ORCAL如何临时创建表与删除表,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。
1).保存一个会话Session
的数据。
2).当会话退出时,临时表数据自动清空。表结构与元数据还存储在用户数据字典。
总结:会话级临时表是指临时表中的数据只在会话生命周期之中存在,当用户退出会话结束的时候,Oracle自动清除临时表中数据。
1).保存一个事务中需要的数据。
2).当事务提交或则回滚的时候,临时表数据自动清空。表结构与元数据还存储在用户数据字典。
总结:事务级临时表是指临时表中的数据只在事务生命周期中存在,当事务提交或则回滚的时候,Oracle
自动清除临时表中数据。
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...;
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:
试图创建,更改或删除正在使用的临时表中的索引
TRUNCATE TABLE test_table; drop table test_table;
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如何临时创建表与删除表”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。