【Oracle 学习笔记】Day 4 临时表、游标

系统 1894 0

一、临时表

今天看了下临时表,感觉比较容易,没有想象的那么复杂。

      
        --
      
      
        会话级别的
      
      
        Create
      
       Global 
      
        Temporary
      
      
        Table
      
      
         Table_Name  

(

       Col1 Type1,Col2 Type2...

) 
      
      
        On
      
      
        Commit
      
      
         Preserve Rows ;


      
      
        --
      
      
        其实翻译的也挺人性化的,会话级别的临时表,在提交事务的时候保留行
      
      
        --
      
      
        事务级别的
      
      
        Create
      
       Global 
      
        Temporary
      
      
        Table
      
      
         Table_Name  

(

       Col1 Type1,Col2 Type2...

) 
      
      
        On
      
      
        Commit
      
      
        Delete
      
      
         Rows ;


      
      
        --
      
      
        而事务级别的临时表在提交事务的时候删掉行.
      
    

我在PL/SQL里面测试的。如果说往第一个临时表里面Insert语句,然后在本窗口中提交事务后,在用SELECT语句查询这个表,仍旧能查到数据。但是如果是第二个表,当点击事务提交之后,SELECT语句就查不到数据量。当然,这两种临时表,都是针对当前连接的,有人说是SESSION的。就是如果新建一个链接,那么无论之前那个窗口的事务是否提交,都SELECT查询不到。

在实际应用中,我看了看有的ERP系统里面,用到基本上是会话级别的。但是还是具体问题具体分析。至于两者的效率,还有待分析。

这里简单提一提ORACLE和SQL Server关于临时表的区别。

1.对于SQL Server来说,可以在表名称前面加上#符号来表示一个类似于Oracle会话级的临时表的功能。

但是,对于SQL Server来说,临时表及临时表的数据在会话结束时(链接释放、Session结束)会同时释放掉;而对于Oracle来说,仅仅是将该链接对应的数据释放掉,而临时表仍旧存放在数据字典中。纠结其原因,SQL Server是内存型数据库,对于频繁的更新删除操作,SQL Server更有些优势,Oracle为了性能的考虑,选择了建立于实际表差不多的这样方式。

2.对于SQL Server 来说,可以在表名称前面加上##符号来表示一个全局的临时表,额,同Oracle的全局不是一个概念。其基本概念就是说,在建立一个带有##的临时表后,在建立该表的用户释放连接之前,除非显示的声明Drop table 之外,其他用户都可以对该表的数据操作,包括Drop table,这点对于Oracle来说,可能就得采用实际表来操作了。

3.对于数据限制方面,Primary key 都支持,foreign key 好像不支持(没咋用过,一般是用主键链接的)

 

二,游标

引用一个别人的内容,感觉比较全呢。

http://www.cnblogs.com/sc-xx/archive/2011/12/03/2275084.html

【Oracle 学习笔记】Day 4 临时表、游标


更多文章、技术交流、商务合作、联系博主

微信扫码或搜索:z360901061

微信扫一扫加我为好友

QQ号联系: 360901061

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描下面二维码支持博主2元、5元、10元、20元等您想捐的金额吧,狠狠点击下面给点支持吧,站长非常感激您!手机微信长按不能支付解决办法:请将微信支付二维码保存到相册,切换到微信,然后点击微信右上角扫一扫功能,选择支付二维码完成支付。

【本文对您有帮助就好】

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描上面二维码支持博主2元、5元、10元、自定义金额等您想捐的金额吧,站长会非常 感谢您的哦!!!

发表我的评论
最新评论 总共0条评论