zoukankan      html  css  js  c++  java
  • Oracle临时表在实际开发中的应用详解

     Oracle临时表在实际开发中的应用是本文我们主要要介绍的内容,我们知道,SQL Server 在编写查询式的存储过程的时候,一直都令我为之赞叹。Create procedure ps_procedure_name as select * from table; Select查询语句可以作为SQL Server存储过程的一部分,直接返回结果集。但在Oracle实现这种形式的存储过程是不合语法的。
      为了达到这种目的,我们需要使用Oracle临时表(这是其中一种解决方案)。
      Oracle数据库除了可以保存永久表外,还可以建立临时表temporary tables。Oracle临时表分为会话级临时表(ON COMMIT PRESERVE ROWS)和事务级临时表(ON COMMIT DELETE ROWS)。会话级临时表是指临时表中的数据只在会话生命周期之中存在,当用户退出会话结束的时候,Oracle自动清除临时表中数据。
      事务级临时表是指临时表中的数据只在事务生命周期中存在。当一个事务结束(commit or rollback),Oracle自动清除临时表中数据。临时表中的数据只对当前Session有效,每个Session都有自己的临时数据,并且不能访问其它Session的临时表中的数据。
      //在数据库建立一个临时表:

      在实际的操作中,我就验证过上面所说的。一开始我使用了事务级临时表,将数据插入到临时表时,使用commit操作,结果临时表的内容清空了。例如是:INSERT INTO ESPS_EMP_RANK_TEMP select * from table;commint;执行这两段SQL后,相当于没有插入数据。

     如果我们使用会话级临时表,即使使用了commit,临时表中的内容还是存在的。直到会话断开时,临时表中的内容才真正的清空。所以,在实际的开发过程中,我们因该结合场景,使用不同类型的临时表。
      在建议提案系统开发的过程中,我使用了会话级的临时表。将查询的数据插入到临时表中,并且读取临时表的内容,会话断开时,临时表中的内容自动清空。
      在C#里面调用的三大步骤:
      //C#里面定义的一个String类型的变量,存储一段动态SQL,存储过程为:

      //执行存储过程,把结果集插入到临时表ESPS_EMP_RANK_TEMP

      //读取临时表中保存的结果集

      关于Oracle临时表在实际开发中的应用的相关知识就介绍到这里了,希望本次介绍能够对您有所收获!

  • 相关阅读:
    shell 表达式
    manjaro 换源到中国并按照速度排序
    ORA-01950:对表空间 'USERS' 无权限
    normal 普通身份 sysdba 系统管理员身份 sysoper 系统操作员身份 dba和sysdba
    学生选课数据库SQL语句练习题
    多线程编程
    补充知识点
    输入输出
    集合作业
    银行(1)0925
  • 原文地址:https://www.cnblogs.com/wbzhao/p/2408474.html
Copyright © 2011-2022 走看看