成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Oracle臨時表在實際開發中的應用詳解

數據庫 Oracle
本文我們詳細介紹了Oracle臨時表在實際開發中的應用,并介紹了C#中調用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的臨時表中的數據。

//在數據庫建立一個臨時表:

 

  1. CREATE GLOBAL TEMPORARY TABLE ESPS.ESPS_EMP_RANK_TEMP  
  2. (  
  3. COM                VARCHAR2(20 BYTE),  
  4. EMPNO             VARCHAR2(20 BYTE),  
  5. EMPNAME          VARCHAR2(100 BYTE),  
  6. DEPTNAME         VARCHAR2(300 BYTE),  
  7. AMOUNT            NUMBER,  
  8. APPROVED_AMOUNT  NUMBER,  
  9. FOLDING_AMOUNT   NUMBER,  
  10. BENEFIT          NUMBER,  
  11. EXECUTED_RATE    NUMBER,  
  12. FOLDING_RANK     NUMBER,  
  13. BENEFIT_RANK     NUMBER,  
  14. RANK             NUMBER,  
  15. TOTAL_RANK       NUMBER  
  16. )  
  17. //ON COMMIT PRESERVE ROWS         --這里代表的是事務級臨時表  
  18. ON COMMIT PRESERVE ROWS          --這里代表的是會話級臨時表 

 

在實際的操作中,我就驗證過上面所說的。一開始我使用了事務級臨時表,將數據插入到臨時表時,使用commit操作,結果臨時表的內容清空了。例如是:INSERT INTO ESPS_EMP_RANK_TEMP select * from table;commint;執行這兩段SQL后,相當于沒有插入數據。

如果我們使用會話級臨時表,即使使用了commit,臨時表中的內容還是存在的。直到會話斷開時,臨時表中的內容才真正的清空。所以,在實際的開發過程中,我們因該結合場景,使用不同類型的臨時表。

在建議提案系統開發的過程中,我使用了會話級的臨時表。將查詢的數據插入到臨時表中,并且讀取臨時表的內容,會話斷開時,臨時表中的內容自動清空。 

在C#里面調用的三大步驟:

//C#里面定義的一個String類型的變量,存儲一段動態SQL,存儲過程為:

  1. ESPS_EMP_RANK_STATISTIS({0},'{1}')  
  2. public static string I_EMP_RANK_STATISTIS = "BEGIN ESPS_EMP_RANK_STATISTIS({0},'{1}'); END;"

 

//執行存儲過程,把結果集插入到臨時表ESPS_EMP_RANK_TEMP

 

  1. WAF.COM.Core.OracleHelper. ExecuteNonQuery(conn, CommandType.Text, string.Format(SqlCollector.I_EMP_RANK_STATISTIS, 2,’2011’)); 

 

//讀取臨時表中保存的結果集

 

  1. Oracle DataReader dr = WAF.COM.Core.OracleHelper. ExecuteReader(“select * from ESPS_EMP_RANK_TEMP”) 

 

關于Oracle臨時表在實際開發中的應用的相關知識就介紹到這里了,希望本次介紹能夠對您有所收獲!

【編輯推薦】

  1. Oracle 11g R2數據庫示例用戶安裝說明
  2. Oracle 11g數據庫審計功能應用實例解析
  3. Oracle 11g數據庫默認審計選項說明詳解
  4. Oracle 11g數據庫使用XML Table的BUG解決
  5. PowerDesigner15連接Oracle出錯的解決方案
責任編輯:趙鵬 來源: CSDN博客
相關推薦

2010-04-29 13:53:42

Oracle臨時表

2010-04-02 18:01:39

Oracle清理

2010-03-29 15:33:18

Oracle EXP

2010-04-06 16:00:19

Oracle更改表

2009-11-09 11:21:32

路由策略

2010-05-31 15:49:29

MySQL臨時表

2018-11-06 10:51:07

Redis開發存儲系統

2010-03-29 11:06:22

Oracle Spat

2010-05-06 16:02:42

Oracle SQL

2009-12-30 10:23:30

VLAN技術

2010-01-27 13:37:05

Oracle臨時表

2010-04-30 17:50:25

2010-04-15 09:36:42

2011-04-13 13:56:52

Oracle臨時表

2010-05-07 12:19:38

Oracle刪除用戶表

2010-05-06 10:09:44

Oracle in

2011-07-04 10:33:45

臨時表空間排序

2011-03-16 09:42:27

Oracle臨時表

2021-04-29 08:11:11

SQL優化作用

2010-03-29 11:17:33

Oracle Spat
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 99精彩视频 | 亚洲激情一级片 | 国产区精品 | 中文字幕第十五页 | 欧美成ee人免费视频 | 亚洲欧美第一视频 | 国产 91 视频 | 欧洲一级毛片 | 精久久久 | 国产福利在线视频 | 国产综合av| 久久午夜国产精品www忘忧草 | 中文字幕不卡在线观看 | 国产精品久久久久婷婷二区次 | 超碰婷婷| 国产1区2区在线观看 | 成人在线小视频 | 91久久久久久久久久久久久 | 亚洲精品1 | 国产日韩一区二区三免费高清 | 国产精品久久国产愉拍 | 国产精品成人国产乱一区 | 高清久久 | 欧美日韩国产一区二区 | 亚洲一区二区三区四区五区午夜 | 亚洲综合二区 | av天天澡天天爽天天av | 日批日韩在线观看 | 免费xxxx大片国产在线 | 亚洲在线免费观看 | 国产精品99久久久久久久久久久久 | 九色91视频| 成人欧美在线 | 色视频网站 | 一区二区在线不卡 | 中文在线一区二区 | 91社区在线观看高清 | 国产精品毛片一区二区在线看 | 黄片毛片免费看 | 精品国产视频在线观看 | 成人精品毛片 |