Oracle COMMIT語句(提交事務)

2022-03-09 17:33 更新

在 Oracle 中,COMMIT 語句可以用來提交當前事務的所有更改。提交后,其他用戶將能夠看到您的更改。本文要為大家?guī)淼木褪?COMMIT 語句的用法。

COMMIT語句語法:

Oracle / PLSQL 中 COMMIT 語句的語法是:

COMMIT [ WORK ] [ COMMENT clause ] [ WRITE clause ] [ FORCE clause ];

參數(shù)

  • WORK:可選的。它被 Oracle 添加為符合 SQL 標準。使用或不使用 WORK 參數(shù)來執(zhí)行 COMMIT 將產(chǎn)生相同的結(jié)果。
  • COMMENT clause:可選的。 它用于指定與當前事務關(guān)聯(lián)的注釋。 該注釋最多可以包含在單引號中的 255 個字節(jié)的文本中。 如果出現(xiàn)問題,它將與事務ID一起存儲在名為 DBA_2PC_PENDING 的系統(tǒng)視圖中。
  • WRITE clause:可選的。 它用于指定將已提交事務的重做信息寫入重做日志的優(yōu)先級。 用這個子句,有兩個參數(shù)可以指定:
    • WAIT 或 NOWAIT (如果省略,WAIT是默認值)
    • IMMEDIATE 或 BATCH(IMMEDIATE是省略時的默認值)
  • FORCE clause:可選的。 它用于強制提交可能已損壞或有疑問的事務。 有了這個子句,可以用3種方式指定FORCE:
    • FORCE'string',[integer]或FORCE CORRUPT_XID'string' 或 FORCE CORRUPT_XID_ALL

注意

  • 必須擁有 DBA 權(quán)限才能訪問系統(tǒng)視圖 - DBA_2PC_PENDING和V$CORRUPT_XID_LIST。
  • 必須擁有 DBA 權(quán)限才能指定COMMIT語句的某些功能。

COMMIT語句示例

我們來看一個示例,演示如何使用 COMMIT 語句在 Oracle 中發(fā)出提交。

COMMIT;

此 COMMIT 示例將執(zhí)行與以下相同的操作:

COMMIT WORK WRITE WAIT IMMEDIATE;

在此示例中,隱含了 WORK 關(guān)鍵字,并且省略 WRITE 子句將缺省為 WRITE WAIT IMMEDIATE,因此它與前面的 COMMIT 語句是等效的。

添加備注

我們來看一個顯示如何使用 COMMENT 子句的 COMMIT 示例:

例如,您可以通過兩種方式使用注釋編寫 COMMIT:

COMMIT COMMENT 'This is the comment for the transaction';
SQL

或者 -

COMMIT WORK COMMENT 'This is the comment for the transaction';

由于始終隱含 WORK 關(guān)鍵字,因此這兩個 COMMIT 示例都是等效的。 如果事務出錯或存在疑問,COMMIT 會將包含在引號中的注釋與事務 ID 一起存儲在 DBA_2PC_PENDING 系統(tǒng)視圖中。


強制

最后,看一下顯示如何使用 FORCE 子句的 COMMIT 示例。

例如,可以通過兩種方式編寫可疑事務的 COMMIT:

COMMIT FORCE '22.14.67';

或者 -

COMMIT WORK FORCE '22.14.67';

由于始終隱含 WORK 關(guān)鍵字,因此這兩個 COMMIT 示例都會強制執(zhí)行由事務 ID “22.14.67”標識的已損壞或疑問事務。


以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號