ORCAL 临时创建表与删除表

作者:最爱白开水 时间:2023-07-12 19:30:05 

一.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;

来源:https://www.cnblogs.com/guo-zi/p/15099952.html

标签:ORCAL,创建表,删除表
0
投稿

猜你喜欢

  • Python3.6实现根据电影名称(支持电视剧名称),获取下载链接的方法

    2023-06-15 21:26:42
  • 利用Python连接Oracle数据库的基本操作指南

    2024-01-20 05:10:30
  • Python实现方便使用的级联进度信息实例

    2021-04-22 12:31:18
  • Vue使用vux-ui自定义表单验证遇到的问题及解决方法

    2024-05-10 14:18:07
  • ASP格式化日期的函数(输出13种样式)

    2011-07-12 20:22:00
  • 学习ASP和编程的28个观点

    2008-06-27 12:57:00
  • 在ASP.NET 2.0中操作数据之五十六:使用ObjectDataSource缓存数据

    2024-05-11 09:26:18
  • Python 5种常见字符串去除空格操作的方法

    2023-12-18 18:52:58
  • python中Switch/Case实现的示例代码

    2021-09-18 22:03:39
  • 浅谈PyQt5中异步刷新UI和Python多线程总结

    2023-08-22 01:37:18
  • Go编写定时器与定时任务详解(附第三方库gocron用法)

    2024-05-09 09:40:19
  • Python类中__init__() 和self的详细解析

    2021-04-22 22:05:06
  • selenium中常见的表单元素操作方法总结

    2021-06-15 23:54:32
  • python TCP Socket的粘包和分包的处理详解

    2021-06-14 16:49:50
  • 解决使用export_graphviz可视化树报错的问题

    2022-06-10 18:35:59
  • Python下使用Psyco模块优化运行速度

    2022-08-13 13:01:09
  • 移除Selenium中window.navigator.webdriver值

    2023-07-11 16:21:36
  • Ubuntu 18.04配置mysql以及配置远程连接的步骤

    2024-01-14 14:54:39
  • 如何利用Python动态展示排序算法

    2022-03-06 17:23:48
  • 关于Python3爬虫利器Appium的安装步骤

    2022-06-04 15:30:59
  • asp之家 网络编程 m.aspxhome.com