亲宝软件园·资讯

展开

ORCAL 表创建与删除 ORCAL 临时创建表与删除表

最爱白开水 人气:0
想了解ORCAL 临时创建表与删除表的相关内容吗,最爱白开水在本文为您仔细讲解ORCAL 表创建与删除的相关知识和一些Code实例,欢迎阅读和指正,我们先划重点:ORCAL,创建表,ORCAL,删除表,下面大家一起来学习吧。

一.Orcal临时表分类

1.会话级临时表

总结:会话级临时表是指临时表中的数据只在会话生命周期之中存在,当用户退出会话结束的时候,Oracle自动清除临时表中数据。

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;

加载全部内容

相关教程
猜你喜欢
用户评论