当前位置:Gxlcms > 数据库问题 > ORACLE-临时表

ORACLE-临时表

时间:2021-07-01 10:21:17 帮助过:13人阅读

Create table 三目录监控存储过程临时表 create global temporary table L_DIAITEM_ERROR ( forgid NUMBER, --组织机构id forgname VARCHAR2(80), --组织机构名称 nccw NUMBER, --名称错误数 wdz NUMBER --未对照计数 ) on commit delete rows; --事务提交时,清空表数据 --插入一条数据 INSERT INTO L_DIAITEM_ERROR (nccw,wdz) SELECT 1,2 FROM DUAL; --查询该表数据 SELECT * FROM L_DIAITEM_ERROR

  说明:

    执行插入语句后,如果没有提交,执行查询语句,该表有数据;如果提交事务,执行查询语句,该表没数据。

  详细介绍

  参考链接:http://www.cnblogs.com/vigarbuaa/archive/2012/06/04/2534797.html  

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

    (1)会话特有的临时表

    语法:     

      CREATE GLOBAL TEMPORARY <TABLE_NAME> (<column specification>) ON COMMIT PRESERVE ROWS;

    (2)事务特有的临时表

    语法:

      CREATE GLOBAL TEMPORARY <TABLE_NAME> (<column specification>) ON COMMIT DELETE ROWS;

    举例:

      CREATE GLOBAL TEMPORARY TABLE MyTempTable

  区别:

    ON COMMIT DELETE ROWS   说明临时表是事务指定,每次提交后ORACLE将截断表(清空表数据)

    ON COMMIT DELETE ROWS   说明临时表是事务指定,每次提交后ORACLE将截断表(清空表数据)

  作用域:     

    通过CREATE GLOBAL TEMPORARY TABLE命令创建一个临时表,
    对于事务类型的临时表,数据只是在本事务期间存在;对于会话类型的临时表,数据在本会话期间存在。

  临时表的特点:

    可以对临时表创建索引,视图,触发器,可以用export和import工具导入导出表的定义,但是不能导出数据。表的定义对所有的会话可见。

    (1) 多用户操作的独立性:对于使用同一张临时表的不同用户,ORACLE都会分配一个独立的 Temp Segment,这样就避免了多个用户在对同一张临时表操作时发生交叉,从而保证了多个用户操作的并发性和独立性;

    (2) 数据的临时性:既然是临时表,顾名思义,存放在该表中的数据是临时性的。ORACLE根据你创建临时表时指定的参数(On Commit Delete Rows / On Commit Preserve Rows),自动将数据TRUNCATE掉。

 

 

ORACLE-临时表

标签:.com   清空   get   根据   监控   rom   commit   ble   独立   

人气教程排行