目录一.Orcal临时表分类1.会话级临时表2.事务级临时表二.临时表创建1.会话级临时表2.事务级临时表三.删除临时表四.删除时报错1.清空表,然后删除表2.杀掉进程,然后删除一.
Session
的数据。总结:会话级临时表是指临时表中的数据只在会话生命周期之中存在,当用户退出会话结束的时候,oracle自动清除临时表中数据。
总结:事务级临时表是指临时表中的数据只在事务生命周期中存在,当事务提交或则回滚的时候,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
临时创建表与删除表的文章就介绍到这了,更多相关ORCAL
表创建与删除内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!
--结束END--
本文标题: ORCAL 临时创建表与删除表
本文链接: https://www.lsjlt.com/news/154789.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
下载Word文档到电脑,方便收藏和打印~
2024-03-01
2024-03-01
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0