想不想get新技能酷炫一下,今天图老师小编就跟大家分享个简单的Oracle中的临时表用法汇总教程,一起来看看吧!超容易上手~
【 tulaoshi.com - 编程语言 】
说明:下文中的一些说明和示例代码摘自CSDN,恕不一一指明出处,在此一并对相关作者表示感谢!
1 语法
在Oracle中,可以创建以下两种临时表:
1) 会话特有的临时表
(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/bianchengyuyan/)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将截断表。
2 动态创建
  create or replace procedure pro_temp(v_col1 varchar2,v_col2 varchar2) as 
  v_num number; 
  begin 
  select count(*) into v_num from user_tables where table_name='T_TEMP';   
  --create temporary table 
  if v_num1 then 
  execute immediate 'CREATE GLOBAL TEMPORARY TABLE T_TEMP ( 
  COL1 VARCHAR2(10), 
  COL2 VARCHAR2(10) 
  ) ON COMMIT delete ROWS'; 
  end if;   
  --insert data 
  execute immediate 'insert into t_temp values('''  v_col1  ''','''  v_col2  ''')';   
  execute immediate 'select col1 from t_temp' into v_num; 
  dbms_output.put_line(v_num); 
  execute immediate 'delete from t_temp'; 
  commit; 
  execute immediate 'drop table t_temp'; 
  end pro_temp;   
  测试:   
  15:23:54 SQL set serveroutput on 
15:24:01 SQL exec pro_temp('11','22');
11
(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/bianchengyuyan/)  PL/SQL 过程已成功完成。   
  已用时间: 00: 00: 00.79 
15:24:08 SQL desc t_temp;
  ERROR: 
  ORA-04043: 对象 t_temp 不存在   
  3 特性和性能(与普通表和视图的比较) 
  临时表只在当前连接内有效 
  临时表不建立索引,所以如果数据量比较大或进行多次查询时,不推荐使用 
  数据处理比较复杂的时候时表快,反之视图快点 
  在仅仅查询数据的时候建议用游标: open cursor for 'sql clause'; 
来源:http://www.tulaoshi.com/n/20160219/1621807.html
看过《Oracle中的临时表用法汇总》的人还看了以下文章 更多>>