您现在的位置是:首页 >

Oracle中创建临时表没有数据 Oracle数据库中的临时表用法

火烧 2021-09-08 01:08:23 1046
Oracle数据库中的临时表用法   这篇文章主要介绍了Oracle数据库中的临时表用法 希望对大家的学习和工作有所帮助   一 语法  在Oracle中 可以创建以下两种临时表   ( ) 会话特有

Oracle数据库中的临时表用法  

  这篇文章主要介绍了Oracle数据库中的临时表用法 希望对大家的学习和工作有所帮助

  一 语法

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

  ( ) 会话特有的临时表

  CREATE GLOBAL TEMPORARY ( )

  ON MIT PRESERVE ROWS

  ( ) 事务特有的临时表

  CREATE GLOBAL TEMPORARY ( )

  ON MIT DELETE ROWS

Oracle中创建临时表没有数据 Oracle数据库中的临时表用法

  CREATE GLOBAL TEMPORARY TABLE MyTempTable

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

  ——ON MIT DELETE ROWS 说明临时表是事务指定 每次提交后ORACLE将截断表(删除全部行)

  ——ON MIT PRESERVE ROWS 说明临时表是会话指定 当中断会话时ORACLE将截断表

  二 动态创建

  

  create or replace procedure pro_temp(v_col varchar v_col varchar ) as v_num number; begin select count(*) into v_num from user_tables where table_name= T_TEMP ;   create temporary table if v_num< then execute immediate CREATE GLOBAL TEMPORARY TABLE T_TEMP ( COL VARCHAR ( ) COL VARCHAR ( ) ) ON MIT delete ROWS ; end if;   insert data execute immediate insert into t_temp values (   v_col      v_col    ) ;   execute immediate select col from t_temp into v_num; dbms_output put_line(v_num); execute immediate delete from t_temp ; mit; execute immediate drop table t_temp ; end pro_temp;

  测试

  

   : : SQL> set serveroutput on : : SQL> exec pro_temp( );    PL/SQL 过程已成功完成    已用时间: : : : : SQL> desc t_temp; ERROR ORA : 对象 t_temp 不存在

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

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

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

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

lishixinzhi/Article/program/Oracle/201311/16806  
永远跟党走
  • 如果你觉得本站很棒,可以通过扫码支付打赏哦!

    • 微信收款码
    • 支付宝收款码