Oracle COMMIT語(yǔ)句(提交事務(wù))

2022-03-09 17:33 更新

在 Oracle 中,COMMIT 語(yǔ)句可以用來(lái)提交當(dāng)前事務(wù)的所有更改。提交后,其他用戶(hù)將能夠看到您的更改。本文要為大家?guī)?lái)的就是 COMMIT 語(yǔ)句的用法。

COMMIT語(yǔ)句語(yǔ)法:

Oracle / PLSQL 中 COMMIT 語(yǔ)句的語(yǔ)法是:

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

參數(shù)

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

注意

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

COMMIT語(yǔ)句示例

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

COMMIT;

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

COMMIT WORK WRITE WAIT IMMEDIATE;

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

添加備注

我們來(lái)看一個(gè)顯示如何使用 COMMENT 子句的 COMMIT 示例:

例如,您可以通過(guò)兩種方式使用注釋編寫(xiě) COMMIT:

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

或者 -

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

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


強(qiáng)制

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

例如,可以通過(guò)兩種方式編寫(xiě)可疑事務(wù)的 COMMIT:

COMMIT FORCE '22.14.67';

或者 -

COMMIT WORK FORCE '22.14.67';

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


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

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)