首页 数据库 mysql教程 Oracle中创建和删除临时表

Oracle中创建和删除临时表

Jun 07, 2016 pm 04:43 PM

CREATE GLOBAL TEMPORARY TABLE TABLENAME ( COL1 VARCHAR2(10), COL2 NUMBER ) ON COMMIT PRESERVE(DELETE) ROWS ; --O

CREATE GLOBAL TEMPORARY TABLE TABLENAME (
    COL1  VARCHAR2(10),
    COL2  NUMBER
 ) ON COMMIT PRESERVE(DELETE) ROWS ;

--ON COMMIT DELETE ROWS 说明临时表是事务指定,每次提交后Oracle将截断表(删除全部行)
---------------------------------------
在Oracle8i中,可以创建以下两种临时表:
1。会话特有的临时表
CREATE GLOBAL TEMPORARY ( )
 ON COMMIT PRESERVE ROWS;

2。事务特有的临时表
CREATE GLOBAL TEMPORARY ( )
 ON COMMIT DELETE ROWS;
CREATE GLOBAL TEMPORARY TABLE MyTempTable
所建的临时表虽然是存在的,但是你试一下insert 一条记录然后用别的连接登上去select,记录是空的,明白了吧。
 下面两句话再贴一下:
--ON COMMIT DELETE ROWS 说明临敀?表是事务指定,每次提交后ORACLE将截断表(删除全部行)
--ON COMMIT PRESERVE ROWS 说明临时表是会话指定,当中断会话时ORACLE将截断表。


procedure 执行一系列的操作
package  可以在其中定义一些量、函数、过程等;

 存储过程里不能直接使用DDL语句,,所以只能使用动态SQL语句来执行

create procedure pro
 as
 str varchar2(100);
 begin

str := 'CREATE GLOBAL TEMPORARY TABLE admin_work_area
        (startdate DATE,
          enddate DATE,
          class CHAR(20))
      ON COMMIT DELETE ROWS’;
execute immediate str;
 end;


删除:

truncate table  MyTempTable
 drop table  MyTempTable

ORA-22992: 无法使用从远程表选择的 LOB 定位器 

解决办法:
可以先创建一个临时表,然后把远程有LOB字段的表克隆到临时表中,然后再进行链接操作
1.本地创建临时表
Sql代码
 
create global temporary table photo_temp as select * from photo@photo_link where 1=2 ;

2.用database link导入远程数据到临时表
Sql代码
 
insert into photo_temp select * from photo@photo_link;--不要commit;否则临时表中数据消失

3.把临时表数据插入到永久表中:
Sql代码
insert into photo select * from photo_temp;
commit;

实例:

create global temporary table pic_temp as select * from WH_REGISTERPIC@ogdpshdb where 1=2 ;
insert into pic_temp select * from WH_REGISTERPIC@ogdpshdb;
insert into WH_REGISTERPIC select * from pic_temp;
commit;

删除临时表:

truncate table  pic_temp ;
drop table  pic_temp ;

解决普通用户在存储过程中无权建临时表问题:

在包头中加 AUTHID CURRENT_USER

例子:

create or replace package WH_Info_Output AUTHID CURRENT_USER is

  -- Author  : 
  -- Created : 2014年9月2日 15:27:25
  -- Purpose : 

  --删除原有数据导入全部数据
  procedure SP_WH_Info_Output_All(Fid in number default 1);
  -- Public type declarations
  --传入参数默认0:导入没有的数据  1:删除原有数据导入全部数据
  procedure SP_WH_Info_Output(Fid in number default 0);

  --导入WH_REGISTERPIC表(含有BLOG字段) 0:导入没有的数据  1:删除原有数据导入全部数据
  procedure SP_WH_PIC_BLOGInfo_Output(Fid in number default 0);
 
end WH_Info_Output;

 

  --导入WH_REGISTERPIC表(含有BLOG字段) 0:导入没有的数据  1:删除原有数据导入全部数据
  procedure SP_WH_PIC_BLOGInfo_Output(Fid in number default 0)
  is
  str varchar2(300);
  begin
  if Fid = 0 then
  str:='create global temporary table pic_temp as select * from WH_REGISTERPIC@ogdpshdb where 1=2'; 
  execute immediate str; 
  str:='insert into pic_temp select * from WH_REGISTERPIC@ogdpshdb w where (w.WELLID, w.PICTYPECODE, w.VERSIONNO, w.PICFILENAME) not in (select WELLID, PICTYPECODE, VERSIONNO, PICFILENAME from WH_REGISTERPIC)'; 
  execute immediate str;    ----使用动态SQL语句来执行 
  str:='insert into WH_REGISTERPIC select * from pic_temp'; 
      execute immediate str; 
  end if;
 

  end SP_WH_PIC_BLOGInfo_Output;

在CentOS 6.4下安装Oracle 11gR2(x64)

Oracle 11gR2 在VMWare虚拟机中安装步骤

Debian 下 安装 Oracle 11g XE R2

本文永久更新链接地址:

linux

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

与MySQL中使用索引相比,全表扫描何时可以更快? 与MySQL中使用索引相比,全表扫描何时可以更快? Apr 09, 2025 am 12:05 AM

全表扫描在MySQL中可能比使用索引更快,具体情况包括:1)数据量较小时;2)查询返回大量数据时;3)索引列不具备高选择性时;4)复杂查询时。通过分析查询计划、优化索引、避免过度索引和定期维护表,可以在实际应用中做出最优选择。

说明InnoDB全文搜索功能。 说明InnoDB全文搜索功能。 Apr 02, 2025 pm 06:09 PM

InnoDB的全文搜索功能非常强大,能够显着提高数据库查询效率和处理大量文本数据的能力。 1)InnoDB通过倒排索引实现全文搜索,支持基本和高级搜索查询。 2)使用MATCH和AGAINST关键字进行搜索,支持布尔模式和短语搜索。 3)优化方法包括使用分词技术、定期重建索引和调整缓存大小,以提升性能和准确性。

可以在 Windows 7 上安装 mysql 吗 可以在 Windows 7 上安装 mysql 吗 Apr 08, 2025 pm 03:21 PM

是的,可以在 Windows 7 上安装 MySQL,虽然微软已停止支持 Windows 7,但 MySQL 仍兼容它。不过,安装过程中需要注意以下几点:下载适用于 Windows 的 MySQL 安装程序。选择合适的 MySQL 版本(社区版或企业版)。安装过程中选择适当的安装目录和字符集。设置 root 用户密码,并妥善保管。连接数据库进行测试。注意 Windows 7 上的兼容性问题和安全性问题,建议升级到受支持的操作系统。

mysql:简单的概念,用于轻松学习 mysql:简单的概念,用于轻松学习 Apr 10, 2025 am 09:29 AM

MySQL是一个开源的关系型数据库管理系统。1)创建数据库和表:使用CREATEDATABASE和CREATETABLE命令。2)基本操作:INSERT、UPDATE、DELETE和SELECT。3)高级操作:JOIN、子查询和事务处理。4)调试技巧:检查语法、数据类型和权限。5)优化建议:使用索引、避免SELECT*和使用事务。

InnoDB中的聚类索引和非簇索引(次级索引)之间的差异。 InnoDB中的聚类索引和非簇索引(次级索引)之间的差异。 Apr 02, 2025 pm 06:25 PM

聚集索引和非聚集索引的区别在于:1.聚集索引将数据行存储在索引结构中,适合按主键查询和范围查询。2.非聚集索引存储索引键值和数据行的指针,适用于非主键列查询。

mysql用户和数据库的关系 mysql用户和数据库的关系 Apr 08, 2025 pm 07:15 PM

MySQL 数据库中,用户和数据库的关系通过权限和表定义。用户拥有用户名和密码,用于访问数据库。权限通过 GRANT 命令授予,而表由 CREATE TABLE 命令创建。要建立用户和数据库之间的关系,需创建数据库、创建用户,然后授予权限。

mysql 和 mariadb 可以共存吗 mysql 和 mariadb 可以共存吗 Apr 08, 2025 pm 02:27 PM

MySQL 和 MariaDB 可以共存,但需要谨慎配置。关键在于为每个数据库分配不同的端口号和数据目录,并调整内存分配和缓存大小等参数。连接池、应用程序配置和版本差异也需要考虑,需要仔细测试和规划以避免陷阱。在资源有限的情况下,同时运行两个数据库可能会导致性能问题。

说明不同类型的MySQL索引(B树,哈希,全文,空间)。 说明不同类型的MySQL索引(B树,哈希,全文,空间)。 Apr 02, 2025 pm 07:05 PM

MySQL支持四种索引类型:B-Tree、Hash、Full-text和Spatial。1.B-Tree索引适用于等值查找、范围查询和排序。2.Hash索引适用于等值查找,但不支持范围查询和排序。3.Full-text索引用于全文搜索,适合处理大量文本数据。4.Spatial索引用于地理空间数据查询,适用于GIS应用。

See all articles