Oracle中的臨時表用法彙總
1 語法
在Oracle中,可以建立以下兩種臨時表:
1) 會話特有的臨時表
CREATE GLOBAL TEMPORARY
ON COMMIT PRESERVE ROWS;
2) 事務特有的臨時表
CREATE GLOBAL TEMPORARY
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';
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/35489/viewspace-85058/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- oracle臨時表的用法總結Oracle
- Oracle臨時表的用法總結FLOracle
- oracle臨時表的用法Oracle
- oracle臨時表的用法(轉)Oracle
- ORACLE臨時表總結Oracle
- ORACLE臨時表空間總結Oracle
- Oracle的臨時表Oracle
- oracle臨時表Oracle
- Oracle 臨時表Oracle
- oracle 臨時表的使用Oracle
- ORACLE臨時表和SQLSERVER臨時表異同OracleSQLServer
- MySQL 中的臨時表MySql
- 關於with 臨時表 as的一些用法
- 臨時表大總結
- oracle的臨時表空間Oracle
- 關於oracle with table as 建立臨時表的用法示例以及使用with as 的優點Oracle
- Oracle Temporary Tables(Oracle 臨時表)Oracle
- C#中DllImport用法彙總C#Import
- SQL server 中的臨時表SQLServer
- Oracle全域性臨時表Oracle
- oracle 臨時表空間Oracle
- oracle臨時表空間Oracle
- oracle全域性臨時表的特性Oracle
- Oracle 臨時表空間的概念Oracle
- oracle 臨時表間重建的方法Oracle
- 27、oracle的臨時表問題Oracle
- ORACLE臨時表空間的清理Oracle
- mysql關於臨時表的總結MySql
- 【轉】oracle X表彙總Oracle
- MySQL 中的兩種臨時表MySql
- Oracle 臨時表空間概念Oracle
- oracle臨時表空間組Oracle
- Oracle臨時表GLOBAL TEMPORARY TABLEOracle
- Oracle Temp 臨時表空間Oracle
- Oracle 基礎 ----臨時表和物件表Oracle物件
- ORACLE預設的臨時表空間Oracle
- oracle的臨時表空間temporary tablespaceOracle
- goldengate對oracle臨時表的同步GoOracle