關於Oracle臨時表的使用的小經歷
關於Oracle臨時表的使用的小經歷
前幾天給同事一個建議—使用臨時表完成某些複雜邏輯的處理和輸出,今天突然告訴我說臨時表在儲存過程中用不了,所以回去特意除錯了一下,沒問題。
讓我們先看看Oracle官方文件中的說明吧
ON COMMIT
The ON COMMIT clause is relevant only if you are creating a temporary table. This clause specifies whether the data in the temporary table persists for the duration of a transaction or a session.
DELETE ROWS
Specify DELETE ROWS for a transaction-specific temporary table (this is the default). Oracle will truncate the table (delete all its rows) after each commit.
PRESERVE ROWS
Specify PRESERVE ROWS for a session-specific temporary table. Oracle will truncate the table (delete all its rows) when you terminate the session.
CREATE GLOBAL TEMPORARY TABLE T_TempTable_DeleteRows |
測試儲存過程後,可以看到遊標正常返回結果集
檢查該臨時表,發現該表並無資料,當該儲存過程的事務結束後,臨時表資料已經被清除
儲存過程中不能有COMMIT,否則遊標會無結果,顯式提交表示事務結束,所以沒有資料,倒也比較合情合理
SELECT * FROM T_TempTable_DeleteRows;
CREATE GLOBAL TEMPORARY TABLE T_TempTable_PreserveRows |
測試儲存過程後,可以看到遊標正常返回結果集,如果連續透過PL/SQL developer的test window執行多次,則發現在返回遊標的結果集中出現多次記錄
但是如果另開一個test視窗去測試,仍舊只返回一條記錄
如果檢查該臨時表,發現該表並無資料
SELECT * FROM T_TempTable_PreserveRows;
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/6517/viewspace-148384/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 關於Oracle臨時表的使用的小經歷和一點疑問?Oracle
- oracle 臨時表的使用Oracle
- 關於oracle with table as 建立臨時表的用法示例以及使用with as 的優點Oracle
- 關於 oracle 臨時表 ORA-14452Oracle
- mysql關於臨時表的總結MySql
- Oracle的臨時表Oracle
- 關於with 臨時表 as的一些用法
- oracle臨時表的經典學習資料Oracle
- oracle臨時表的用法Oracle
- Sqlserver 關於臨時表和表變數的總結SQLServer變數
- oracle臨時表空間相關Oracle
- SQLServer臨時表的使用SQLServer
- oracle的臨時表空間Oracle
- oracle臨時表的用法(轉)Oracle
- oracle臨時表Oracle
- Oracle 臨時表Oracle
- Oracle臨時表使用注意事項Oracle
- 【基礎知識】基於事物的臨時表和基於會話的臨時表會話
- ORACLE臨時表和SQLSERVER臨時表異同OracleSQLServer
- SQL SERVER臨時表的使用SQLServer
- oracle全域性臨時表的特性Oracle
- Oracle 臨時表空間的概念Oracle
- oracle 臨時表間重建的方法Oracle
- oracle臨時表的用法總結Oracle
- 27、oracle的臨時表問題Oracle
- ORACLE臨時表空間的清理Oracle
- oracle的臨時表空間使用率99.9%Oracle
- oracle11g 查詢臨時表空間的使用率和正在使用臨時表空間的使用者Oracle
- 【臨時表空間】11g中使用 SHRINK方法縮小臨時表空間和臨時檔案
- Oracle臨時表的用法總結FLOracle
- ORACLE預設的臨時表空間Oracle
- oracle的臨時表空間temporary tablespaceOracle
- goldengate對oracle臨時表的同步GoOracle
- Oracle中的臨時表用法彙總Oracle
- 建立基於事務和基於會話的臨時表及臨時表建索引的實驗會話索引
- 【臨時表空間】11g中使用 SHRINK方法縮小臨時表空間和臨時檔案(續)
- Oracle Temporary Tables(Oracle 臨時表)Oracle
- 【TEMPORARY TABLE】Oracle臨時表使用注意事項Oracle