美文网首页oracle
临时表的合理运用

临时表的合理运用

作者: 牛A和牛C之间的人 | 来源:发表于2019-01-24 16:18 被阅读0次

oracle 可以创建两种临时表

1. 会话持有的临时表

CREATE GLOBAL TEMPORARY <TABLE_NAME> ( <column specification> )

  ON COMMIT PRESERVE ROWS;

2. 事务持有的临时表

CREATE GLOBAL TEMPORARY <TABLE_NAME> ( <column specification> )

  ON COMMIT DELETE ROWS;

临时表只是保存当前会话(session)用到的数据,数据只在事务或会话期间存在。 

通过CREATE GLOBAL TEMPORARY TABLE命令创建一个临时表,对于事务类型的临时表, 

数据只是在事务期间存在,对于会话类型的临时表,数据在会话期间存在,会话的数据对于当前会话私有。每个会话只能看到并修改自己的数据。DML锁不会加到 临时表的数据上。下面的语句控制行的存在性。 

● ON COMMIT DELETE ROWS 表名行只是在事务期间可见 

● ON COMMIT PRESERVE ROWS 表名行在整个会话期间可见 

通俗的讲,就是事务持有的临时表当commit 事务结束,就自动清除数据,但对于会话持有的临时表,commit并不影响查询临时表,唯有当前会话结束,才清除临时表数据,其他会话中也查询不到当前会话临时表数据

3. Oracle sql 用with 临时表 as (子查询)建立临时表进行操作

insert into HW_RATE

    (ID,

    SUB_TYPE,

    DISTRICT_CODE,

    REGION_CODE,

    SUB_AREA_CODE,

    CREATE_DATE,

    CREATE_USER)

    with areaInfo as  //这里直接with 临时表别名.子句查询结果别名,即可

    (select o.district_code bu, o.region_code re

      from eis_user.org_office o

      where o.sub_area_code = '60487'

        and o.status = 1

        and o.year = extract(year from sysdate)

        and o.sub_type = 2)

    select sys_guid(),

          2,

          areaInfo.bu,

          areaInfo.re,

          '60487',

          sysdate,

          'ww00068'

      from areaInfo

相关文章

  • 临时表的合理运用

    oracle 可以创建两种临时表 1. 会话持有的临时表 CREATE GLOBAL TEMPORARY ( ...

  • mysql 参数调优(10)之 tmp_table_size

    外部临时表和内部临时表外部临时表是通过语句create temporary table...创建的临时表,临时表只...

  • 合理运用

    对方不理你 或者说你这不好那不好等等 这时候你的内心会怎样反应 是面对还是离开这段关系 要面对也很简单,内心不爽,...

  • 临时表!!!

    1 临时表只作用于一个session中! 临时表只作用于一个session中! 临时表只作用于一个session中...

  • 临时表

    临时表记录属于1个用户,USRNAM字段 将获取到的数据缓存到 当前用户的临时表中 离开临时表界面时对当前用户的临...

  • 临时表

    CREATE GLOBAL TEMPORARY TABLE SCOTT.test(name VARCHAR2(1...

  • 临时表

  • 【SQL】| Session、Transaction

    基于上次临时表的问题,我们提到了外部临时表的两种,基于session的临时表和基于transaction的临时表,...

  • Oracle临时表

    有两种类型的临时表: 会话级的临时表 事务级的临时表 1) 会话级的临时表因为这这个临时表中的数据和你的当前会话有...

  • 【20002】Sql Server 常用语法、常用语句

    性能检测语句 临时表 临时表在SysObjects表里是找不到的 本地临时表创建临时表和创建普通表一样,只需要给名...

网友评论

    本文标题:临时表的合理运用

    本文链接:https://www.haomeiwen.com/subject/zaqujqtx.html