Oracle中的暫存資料表用法匯總

來源:互聯網
上載者:User

說明:下文中的一些說明和範例程式碼摘自CSDN,恕不一一指明出處,在此一併對相關作者表示感謝! 如果作者有異議,請來信說明

 

1 文法
  在Oracle中,可以建立以下兩種暫存資料表:
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
所建的暫存資料表雖然是存在的,但是如果insert 一條記錄然後用別的串連登上去select,記錄是空的。

--ON COMMIT DELETE ROWS 說明暫存資料表是事務指定,每次提交後ORACLE將截斷表(刪除全部行)
--ON COMMIT PRESERVE ROWS 說明暫存資料表是會話指定,當中斷會話時ORACLE將截斷表。

2 動態建立
 

create or replace procedure pro_temp(v_col1 varchar2,v_col2 varchar2) as
v_num number;
begin
select count(*) into v_num from user_tables where table_name='T_TEMP';

--create temporary table
if v_num<1 then
execute immediate 'CREATE GLOBAL TEMPORARY TABLE T_TEMP (
COL1 VARCHAR2(10),
COL2 VARCHAR2(10)
) ON COMMIT delete ROWS';
end if;

--insert data
execute immediate 'insert into t_temp values('''||v_col1||''','''||v_col2||''')';

execute immediate 'select col1 from t_temp' into v_num;
dbms_output.put_line(v_num);
execute immediate 'delete from t_temp';
commit;
execute immediate 'drop table t_temp';
end pro_temp;

測試:

15:23:54 SQL> set serveroutput on
15:24:01 SQL> exec pro_temp('11','22');
11

PL/SQL 過程已成功完成。

經過時間: 00: 00: 00.79
15:24:08 SQL> desc t_temp;
ERROR:
ORA-04043: 對象 t_temp 不存在

 

3 特性和效能(與普通表和視圖的比較)
 
  • 暫存資料表只在當前串連內有效
  • 暫存資料表不建立索引,所以如果資料量比較大或進行多次查詢時,不推薦使用
  • 資料處理比較複雜的時候時錶快,反之視圖快點
  • 在僅僅查詢資料的時候建議用遊標: open cursor for 'sql clause';

歡迎補充!

 

作者Blog:http://blog.csdn.net/caff/

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.