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

Oracle 交易處理完整指南:事務控制、鎖機制、只讀事務與常用函數速查

     編輯:Oracle 資料庫基礎

事務核心概念

事務確保資料一致性,由一組相關 DML 組成,**全部成功或全部失敗**(ACID)。執行 DML 時 Oracle 自動加鎖,防止結構變更。

事務控制語句

SAVEPOINT a1;        -- 設定存檔點
ROLLBACK TO a1;      -- 回滾至存檔點
ROLLBACK;            -- 取消整個事務
COMMIT;              -- 提交事務

只讀事務

適用於報表/統計場景,確保查詢看到特定時間點的一致性快照,不受其他會話提交影響。

SET TRANSACTION READ ONLY;
-- 執行查詢...
COMMIT;  -- 結束只讀事務
例:機票代售點 18:00 統計銷售,設定只讀事務後,即使其他會話新增訂單,本統計仍見舊數據。

常用 SQL 函數速查表

字串函數

函數說明範例
LOWER/UPPER大小寫轉換UPPER('abc') → 'ABC'
LENGTH字串長度LENGTH('中文') → 2
SUBSTR(str,m,n)子串(m 從 1 起)SUBSTR('Oracle',1,3) → 'Ora'
INSTR(str,sub,n,m)子串位置INSTR('Oracle','ra') → 3
REPLACE(str,old,new)替換REPLACE('JACK','J','B') → 'BACK'
\|\|串接'A'\|\|'B' → 'AB'

數學函數

函數說明範例
ROUND(n,m)四捨五入,m 為負表小數點左側ROUND(220,-2) → 200
TRUNC(n,m)截斷不捨入TRUNC(3.1415,2) → 3.14
MOD(m,n)取餘MOD(10,3) → 1
FLOOR/CEIL向下/向上取整FLOOR(3.9)=3, CEIL(3.1)=4

日期函數

函數說明
SYSDATE當前系統日期時間
ADD_MONTHS(d,n)加減月份
LAST_DAY(d)該月最後一天
MONTHS_BETWEEN兩日期月份差

轉換函數(TO_CHAR 格式元素)

元素含義
YYYY-MM-DD HH24:MI:SS完整日期時間
9數字,前導零不顯示
0數字,前導零補齊
L本地貨幣符號
C國際貨幣符號
G/D群組/小數分隔符
TO_CHAR(SAL,'L99,999.99') → 'NT$1,234.56'
TO_CHAR(HIREDATE,'YYYY-MM-DD HH24:MI:SS')

系統上下文函數

SELECT SYS_CONTEXT('USERENV','DB_NAME') FROM DUAL;      -- 資料庫名
SELECT SYS_CONTEXT('USERENV','SESSION_USER') FROM DUAL; -- 當前用戶
SELECT SYS_CONTEXT('USERENV','CURRENT_SCHEMA') FROM DUAL; -- 當前 Schema

SYS vs SYSTEM 差異

項目SYSSYSTEM
儲存內容資料字典基表、動態視圖次級內部資料、工具中繼資料
權限DBA、SYSDBA、SYSOPERDBA、SYSDBA
登入方式必須 AS SYDBA/SYSOPER可 NORMAL 或 AS SYSDBA

邏輯備份/恢復(EXP/IMP)

-- 導出整庫
EXP USERID=SYSTEM/PASS FULL=Y FILE=FULL.DMP
-- 導出單表
EXP USERID=SCOTT/TIGER TABLES=EMP FILE=EMP.DMP
-- 導入忽略已存在表
IMP USERID=SCOTT/TIGER TABLES=EMP FILE=EMP.DMP IGNORE=Y

數據字典與動態視圖

  • USER_*:當前用戶物件
  • ALL_*:可訪問物件
  • DBA_*:全資料庫物件(需 DBA 權限)
  • V$*:動態效能視圖,Instance 啟動時建立,關閉消失

表空間管理基礎

CREATE TABLESPACE DATA01
  DATAFILE 'D:\SP001.DBF' SIZE 20M
  UNIFORM SIZE 128K;

CREATE TABLE MY_TABLE (...) TABLESPACE DATA01;

表空間由一或多個資料檔組成,邏輯結構:表空間 → 段 → 區 → 塊。

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