最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

oracle 臨時表詳解及實例

 更新時間:2016年09月18日 17:34:42   投稿:lqh  
這篇文章主要介紹了oracle 臨時表詳解及實例的相關(guān)資料,需要的朋友可以參考下

在Oracle8i或以上版本中,可以創(chuàng)建以下兩種臨時表:

1。會話特有的臨時表

CREATE GLOBAL TEMPORARY <TABLE_NAME> ( <column specification> )
ON COMMIT PRESERVE ROWS; 

2。事務(wù)特有的臨時表

CREATE GLOBAL TEMPORARY <TABLE_NAME> ( <column specification> )
ON COMMIT DELETE ROWS;
CREATE GLOBAL TEMPORARY TABLE MyTempTable  

所建的臨時表雖然是存在的,但是你試一下insert 一條記錄然后用別的連接登上去select,記錄是空的,明白了吧,我把下面兩句話再貼一下:

--ON COMMIT DELETE ROWS 說明臨時表是事務(wù)指定,每次提交后ORACLE將截斷表(刪除全部行)
--ON COMMIT PRESERVE ROWS 說明臨時表是會話指定,當(dāng)中斷會話時ORACLE將截斷表。

沖突的問題更本不用考慮.

臨時表只是保存當(dāng)前會話(session)用到的數(shù)據(jù),數(shù)據(jù)只在事務(wù)或會話期間存在。

通過CREATE GLOBAL TEMPORARY TABLE命令創(chuàng)建一個臨時表,對于事務(wù)類型的臨時表, 數(shù)據(jù)只是在事務(wù)期間存在,對于會話類型的臨時表,數(shù)據(jù)在會話期間存在。

會話的數(shù)據(jù)對于當(dāng)前會話私有。每個會話只能看到并修改自己的數(shù)據(jù)。DML鎖不會加到 臨時表的數(shù)據(jù)上。下面的語句控制行的存在性。

● ON COMMIT DELETE ROWS 表名行只是在事務(wù)期間可見
● ON COMMIT PRESERVE ROWS 表名行在整個會話期間可見

可以對臨時表創(chuàng)建索引,視圖,出發(fā)器,可以用export和import工具導(dǎo)入導(dǎo)出表的 定義,但是不能導(dǎo)出數(shù)據(jù)。表的定義對所有的會話可見。

Temporary Tables臨時表

1簡介

ORACLE數(shù)據(jù)庫除了可以保存永久表外,還可以建立臨時表temporary tables。這些臨時表用來保存一個會話SESSION的數(shù)據(jù),

或者保存在一個事務(wù)中需要的數(shù)據(jù)。當(dāng)會話退出或者用戶提交commit和回滾rollback事務(wù)的時候,臨時表的數(shù)據(jù)自動清空,
但是臨時表的結(jié)構(gòu)以及元數(shù)據(jù)還存儲在用戶的數(shù)據(jù)字典中。

臨時表只在oracle8i以及以上產(chǎn)品中支持。

2詳細(xì)介紹

Oracle臨時表分為 會話級臨時表 和 事務(wù)級臨時表。

會話級臨時表是指臨時表中的數(shù)據(jù)只在會話生命周期之中存在,當(dāng)用戶退出會話結(jié)束的時候,Oracle自動清除臨時表中數(shù)據(jù)。
事務(wù)級臨時表是指臨時表中的數(shù)據(jù)只在事務(wù)生命周期中存在。當(dāng)一個事務(wù)結(jié)束(commit or rollback),Oracle自動清除臨時表中數(shù)據(jù)。

臨時表中的數(shù)據(jù)只對當(dāng)前Session有效,每個Session都有自己的臨時數(shù)據(jù),并且不能訪問其它Session的臨時表中的數(shù)據(jù)。因此,

臨時表不需要DML鎖.當(dāng)一個會話結(jié)束(用戶正常退出 用戶不正常退出 ORACLE實例崩潰)或者一個事務(wù)結(jié)束的時候,Oracle對這個會話的

表執(zhí)行 TRUNCATE 語句清空臨時表數(shù)據(jù).但不會清空其它會話臨時表中的數(shù)據(jù).

你可以索引臨時表和在臨時表基礎(chǔ)上建立視圖.同樣,建立在臨時表上的索引也是臨時的,也是只對當(dāng)前會話或者事務(wù)有效.

臨時表可以擁有觸發(fā)器.

3建立臨時表

臨時表的定義對所有會話SESSION都是可見的,但是表中的數(shù)據(jù)只對當(dāng)前的會話或者事務(wù)有效.

建立方法:

1) ON COMMIT DELETE ROWS 定義了建立事務(wù)級臨時表的方法.

CREATE GLOBAL TEMPORARY TABLE admin_work_area 
(startdate DATE, 
enddate DATE, 
class CHAR(20)) 
ON COMMIT DELETE ROWS; 

EXAMPLE:

SQL> CREATE GLOBAL TEMPORARY TABLE admin_work_area 
 (startdate DATE, 
enddate DATE, 
class CHAR(20)) 
ON COMMIT DELETE ROWS; 
SQL> create table permernate( a number); 
SQL> insert into admin_work_area values(sysdate,sysdate, ‘temperary table ‘); 
SQL> insert into permernate values(1); 
SQL> commit; 
SQL> select * from admin_work_area; 
SQL> select * from permernate; 
A 
1 
 

2)ON COMMIT PRESERVE ROWS 定義了創(chuàng)建會話級臨時表的方法.

CREATE GLOBAL TEMPORARY TABLE admin_work_area 
(startdate DATE, 
enddate DATE, 
class CHAR(20)) 
ON COMMIT PRESERVE ROWS; 
EXAMPLE:

會話1:

SQL> drop table admin_work_area; 
SQL> CREATE GLOBAL TEMPORARY TABLE admin_work_area 
2 (startdate DATE, 
3 enddate DATE, 
4 class CHAR(20)) 
5 ON COMMIT PRESERVE ROWS; 
SQL> insert into permernate values(2); 
SQL> insert into admin_work_area values(sysdate,sysdate, ‘session temperary ‘); 
SQL> commit; 
SQL> select * from permernate;

A 
---------- 
1 
2

SQL> select * from admin_work_area;

STARTDATE ENDDATE CLASS 
---------- ---------- -------------------- 
17-1?? -03 17-1?? -03 session temperary

會話2:

SQL> select * from permernate;

A 
---------- 
1 
2

SQL> select * from admin_work_area;

未選擇行.

會話2看不見會話1中臨時表的數(shù)據(jù).

4 ORACLE臨時表和SQLSERVER臨時表異同

SQL SERVER臨時表

也可以創(chuàng)建臨時表。臨時表與永久表相似,但臨時表存儲在 tempdb 中,當(dāng)不再使用時會自動刪除。
有本地和全局兩種類型的臨時表,二者在名稱、可見性和可用性上均不相同。本地臨時表的名稱以單個數(shù)字符號 (#) 打頭;
它們僅對當(dāng)前的用戶連接是可見的;當(dāng)用戶從 Microsoft? SQL Server? 2000 實例斷開連接時被刪除。全局臨時表的名稱以數(shù)學(xué)符號

(##) 打頭,創(chuàng)建后對任何用戶都是可見的,當(dāng)所有引用該表的用戶從 SQL Server 斷開連接時被刪除。
例如,如果創(chuàng)建名為 employees 的表,則任何人只要在數(shù)據(jù)庫中有使用該表的安全權(quán)限就可以使用該表,除非它已刪除。
如果創(chuàng)建名為 #employees 的本地臨時表,只有您能對該表執(zhí)行操作且在斷開連接時該表刪除。如果創(chuàng)建名為 ##employees 的全局臨時表

數(shù)據(jù)表中的任何用戶均可對該表執(zhí)行操作。如果該表在您創(chuàng)建后沒有其他用戶使用,則當(dāng)您斷開連接時該表刪除。如果該表在您創(chuàng)建

后有其他用戶使用,則 SQL Server在所有用戶斷開連接后刪除該表

不同:

1. SQL SERVER臨時表是一種”內(nèi)存表”,表是存儲在內(nèi)存中的.ORACLE臨時表除非執(zhí)行DROP TABLE,否則表定義會保留在數(shù)據(jù)字典中.

2. SQL SERVER臨時表不存在類似ORACLE臨時表 事務(wù)級別 上的功能.

3 SQL SERVER本地臨時表(#) 與 ORACLE的會話級別臨時表類似,但是在會話退出的時候,ORACLE不會刪除表.

4 SQL SERVER的全局臨時表(##) 是指多個連接共享同一片內(nèi)存.當(dāng)沒有指針引用該內(nèi)存區(qū)域時,SQL SERVER自動釋放全局臨時表.

5 由于ORACLE不是一種 內(nèi)存中的數(shù)據(jù)庫. 所以如果ORACLE類似SQL SERVER 頻繁的對臨時表進(jìn)行建立和刪除,必定會影響性能.
所以O(shè)RACLE會保留臨時表的定義直到用戶DROP TABLE.

6 在ORACLE中,如果需要多個用戶共享一個表(類似SQL SERVER的全局臨時表##).則可以利用永久表,

并且在表中添加一些可以唯一標(biāo)識用戶的列.利用觸發(fā)器和視圖.當(dāng)用戶退出的時候,根據(jù)該登陸用戶的唯一信息刪除相應(yīng)的表中的數(shù)據(jù).

這種方法給ORACLE帶來了一定量的負(fù)載.

以上就是對oracle 臨時表 的資料整理,后續(xù)繼續(xù)補(bǔ)充相關(guān)資料,謝謝大家對本站的支持!

相關(guān)文章

  • 一些Oracle數(shù)據(jù)庫中的查詢優(yōu)化建議綜合

    一些Oracle數(shù)據(jù)庫中的查詢優(yōu)化建議綜合

    這篇文章主要介紹了一些Oracle數(shù)據(jù)庫中的查詢優(yōu)化建議綜合,包括in和not in的使用等一些細(xì)節(jié)上的使用建議,需要的朋友可以參考下
    2016-01-01
  • EF 配置Oracle數(shù)據(jù)庫數(shù)據(jù)庫連接字符串的實例

    EF 配置Oracle數(shù)據(jù)庫數(shù)據(jù)庫連接字符串的實例

    下面小編就為大家?guī)硪黄狤F 配置Oracle數(shù)據(jù)庫數(shù)據(jù)庫連接字符串的實例。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-04-04
  • Oracle查看表空間使用率以及爆滿解決方案詳解

    Oracle查看表空間使用率以及爆滿解決方案詳解

    在日常的oralce使用中最長遇到的問題就是oralce的表空間滿了,數(shù)據(jù)無法寫入報錯,下面這篇文章主要給大家介紹了關(guān)于Oracle查看表空間使用率以及爆滿解決的相關(guān)資料,需要的朋友可以參考下
    2022-07-07
  • Oracle數(shù)據(jù)塊實現(xiàn)原理深入解讀

    Oracle數(shù)據(jù)塊實現(xiàn)原理深入解讀

    Oracle對數(shù)據(jù)庫數(shù)據(jù)文件(datafile)中的存儲空間進(jìn)行管理的單位是數(shù)據(jù)塊(data block),本文將詳細(xì)介紹
    2012-11-11
  • Oracle 11g 數(shù)據(jù)庫的部署的圖文教程

    Oracle 11g 數(shù)據(jù)庫的部署的圖文教程

    這篇文章主要介紹了Oracle 11g 數(shù)據(jù)庫的部署,文中通過圖文示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-07-07
  • Oracle數(shù)據(jù)庫url連接最后一個orcl代表的是配置的數(shù)據(jù)庫SID

    Oracle數(shù)據(jù)庫url連接最后一個orcl代表的是配置的數(shù)據(jù)庫SID

    今天小編就為大家分享一篇關(guān)于Oracle數(shù)據(jù)庫url連接最后一個orcl代表的是配置的數(shù)據(jù)庫SID,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2018-12-12
  • Oracle date如何比較大小分析

    Oracle date如何比較大小分析

    本文將詳細(xì)介紹Oracle date如何比較大小,需要了解更多的朋友可以參考下
    2012-11-11
  • win10系統(tǒng)安裝oracle11g時遇到INS-13001環(huán)境不滿足最低要求解決辦法

    win10系統(tǒng)安裝oracle11g時遇到INS-13001環(huán)境不滿足最低要求解決辦法

    這篇文章主要介紹了win10系統(tǒng)安裝oracle11g時遇到INS-13001環(huán)境不滿足最低要求解決辦法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-09-09
  • Oracle終極徹底卸載的完整步驟

    Oracle終極徹底卸載的完整步驟

    這篇文章主要給大家介紹了關(guān)于Oracle終極徹底卸載的完整步驟,文中通過圖文介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-11-11
  • Oracle通過procedure調(diào)用webservice接口的全過程

    Oracle通過procedure調(diào)用webservice接口的全過程

    存儲過程是一組為了完成特定功能的sql語句集合,經(jīng)過編譯后存儲在數(shù)據(jù)庫中,用戶通過制定存儲過程的名字并給出參數(shù)(如果該過程帶有參數(shù))來執(zhí)行他,本文介紹了Oracle通過procedure調(diào)用webservice接口的全過程,需要的朋友可以參考下
    2024-07-07

最新評論

商城县| 阿克苏市| 丰镇市| 普定县| 肥乡县| 铁岭县| 龙海市| 扬中市| 塔城市| 沐川县| 济源市| 乌兰察布市| 淮阳县| 宜兰市| 赤水市| 宜丰县| 南昌县| 托里县| 长宁区| 兴仁县| 东港市| 增城市| 科技| 团风县| 扎兰屯市| 会东县| 家居| 义乌市| 新宾| 莆田市| 凌云县| 连云港市| 丹寨县| 中西区| 沂源县| 文昌市| 高陵县| 平顺县| 大田县| 巴东县| 蓬莱市|