您现在的位置是:首页 >

什么时候用到临时表 Oracle中的临时表用法汇总

火烧 2021-11-28 19:43:39 1025
Oracle中的临时表用法汇总 语法  在Oracle中 可以创建以下两种临时表    会话特有的临时表   CREATE GLOBAL TEMPORARY   ON MIT PRESERVE ROW

Oracle中的临时表用法汇总  

什么时候用到临时表 Oracle中的临时表用法汇总
语法  在Oracle中 可以创建以下两种临时表    ) 会话特有的临时表   CREATE GLOBAL TEMPORARY( )   ON MIT PRESERVE ROWS    ) 事务特有的临时表   CREATE GLOBAL TEMPORARY( )   ON MIT DELETE ROWS   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 不存在             通过查询创建临时表         create proecdure name_pro      as      str varchar ( );      begin            str:= CREATE GLOBAL TEMPORARY TABLE TABLENAME ON MIT PRESERVE ROWS as  select  *            from other_tables ;             execute immediate str;      end; 特性和性能(与普通表和视图的比较)    临时表只在当前连接内有效   临时表不建立索引 所以如果数据量比较大或进行多次查询时 不推荐使用   数据处理比较复杂的时候时表快 反之视图快点   在仅仅查询数据的时候建议用游标: open cursor for sql clause ;  lishixinzhi/Article/program/Oracle/201311/18537  
永远跟党走
  • 如果你觉得本站很棒,可以通过扫码支付打赏哦!

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