首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> Oracle 資料庫 >> Oracle 教學

Oracle三大特殊表類型深度解析:臨時表、外部表與分區表

     編輯:Oracle 教學

Oracle特殊表類型:臨時表、外部表與分區表全面指南

臨時表:會話級與事務級的靈活數據容器

Oracle臨時表結構持久化(創建到刪除期間有效),但數據存儲於臨時表空間,僅在用戶實際插入數據時分配空間,避免與永久對象爭用儲存。分為兩類:

事務級臨時表

使用 ON COMMIT DELETE ROWS 子句創建,每次事務提交後記錄自動刪除。

CREATE GLOBAL TEMPORARY TABLE tbl_user_transcation(
  ID NUMBER, uname VARCHAR2(10), usex VARCHAR2(2), ubirthday DATE
) ON COMMIT DELETE ROWS;

會話級臨時表

使用 ON COMMIT PRESERVE ROWS 子句創建,用戶斷開連接後記錄自動刪除。

CREATE GLOBAL TEMPORARY TABLE tbl_user_session(
  ID NUMBER, uname VARCHAR2(10), usex VARCHAR2(2), ubirthday DATE
) ON COMMIT PRESERVE ROWS;

操作驗證

事務級表插入數據未COMMIT可查詢,COMMIT後數據消失;會話級表COMMIT後數據保留,斷開重連後消失。注意PL/SQL Developer默認新窗口即新Session,需設置共享Session驗證。

外部表:讀取作業系統文件的只讀橋樑

外部表數據存儲於作業系統文件系統,僅支援讀取操作。創建步驟:

  1. SYSDBA授權:GRANT CREATE ANY DIRECTORY TO siege;
  2. 創建目錄:CREATE DIRECTORY external_student AS 'D:\';
  3. 創建外部表指定文件格式與位置
CREATE TABLE tbl_external_student(
  sid NUMBER, sname VARCHAR2(10), sclass VARCHAR2(3), 
  ssubject VARCHAR2(12), sscore NUMBER
) ORGANIZATION EXTERNAL (
  TYPE oracle_loader
  DEFAULT DIRECTORY external_student
  ACCESS PARAMETERS(FIELDS TERMINATED BY ',')
  LOCATION ('student.csv')
);

查詢結果與CSV文件內容一致(如:10001,siege,304,physics,80)。

分區表:TB級數據的分而治之藝術

大型數據庫應用面對TB級數據,分區技術將表或索引分隔為獨立可管理的小部分。分區表執行DML語句與普通表無異,Oracle根據分區鍵值自動路由數據至對應分區。分區鍵可為單欄或組合欄,創建時決定。分區是資訊生命週期管理主要手段,有效應對數據增長帶來的儲存挑戰。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved