在Oracle数据库中的临时表的用法汇总

弱水三千jie

弱水三千jie

2016-02-19 20:20

下面这个在Oracle数据库中的临时表的用法汇总教程由图老师小编精心推荐选出,过程简单易学超容易上手,喜欢就要赶紧get起来哦!

说明:下文中的一些说明和示例代码摘自CSDN,恕不一一指明出处,在此一并对相关作者表示感谢!

  1 语法

  在Oracle中,可以创建以下两种临时表:

  1) 会话特有的临时表

  CREATE GLOBAL TEMPORARY ( )

  ON COMMIT PRESERVE ROWS;

(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/bianchengyuyan/)

  2) 事务特有的临时表

  CREATE GLOBAL TEMPORARY ( )

  ON COMMIT DELETE ROWS;

  CREATE GLOBAL TEMPORARY TABLE MyTempTable

  所建的临时表虽然是存在的,但是如果insert 一条记录然后用别的连接登上去select,记录是空的。  

  --ON COMMIT DELETE RO 
WS 说明临时表是事务指定,每次提交后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  

  PL/SQL 过程已成功完成。  

  已用时间: 00: 00: 00.79

(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/bianchengyuyan/)

  15:24:08 SQL desc t_temp;

  ERROR:

  ORA-04043: 对象 t_temp 不存在  

  3 特性和性能(与普通表和视图的比较)

    临时表只在当前连接内有效

  临时表不建立索引,所以如果数据量比较大或进行多次查询时,不推荐使用

  数据处理比较复杂的时候时表快,反之视图快点

  在仅仅查询数据的时候建议用游标: open cursor for 'sql clause';

展开更多 50%)
分享

猜你喜欢

在Oracle数据库中的临时表的用法汇总

编程语言 网络编程
在Oracle数据库中的临时表的用法汇总

Oracle中的临时表用法汇总

编程语言 网络编程
Oracle中的临时表用法汇总

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

Oracle数据库中序列用法讲解

编程语言 网络编程
Oracle数据库中序列用法讲解

Oracle 数据库 临时数据的处理方法

编程语言 网络编程
Oracle 数据库 临时数据的处理方法

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

在Oracle中实现数据库的复制

编程语言 网络编程
在Oracle中实现数据库的复制

更改Oracle数据库表的表空间

编程语言 网络编程
更改Oracle数据库表的表空间

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

莪不要山寨的爱情

莪不要山寨的爱情

C++中几个比较不常用的关键字

C++中几个比较不常用的关键字
下拉加载更多内容 ↓