Oracle ROLLBACK語(yǔ)句(回滾事務(wù))

Oracle ROLLBACK語(yǔ)句(回滾事務(wù))

在Oracle中,ROLLBACK語(yǔ)句可以用來(lái)撤銷當(dāng)前事務(wù)或有問(wèn)題的事務(wù)。本教程就將教大家如何使用ROLLBACK語(yǔ)句。

 

ROLLBACK語(yǔ)法

ROLLBACK [ WORK ] [ TO [SAVEPOINT] savepoint_name  | FORCE 'string' ];

參數(shù)

  • WORK:可選的。 它被Oracle添加為符合SQL標(biāo)準(zhǔn)。 使用或不使用WORK參數(shù)來(lái)發(fā)出ROLLBACK會(huì)導(dǎo)致相同的結(jié)果。
  • TO SAVEPOINT savepoint_name:可選的。 ROLLBACK語(yǔ)句撤消當(dāng)前會(huì)話的所有更改,直到由savepoint_name指定的保存點(diǎn)。 如果省略該子句,則所有更改都將被撤消。
  • FORCE ‘string’:可選的。它用于強(qiáng)制回滾可能已損壞或有問(wèn)題的事務(wù)。 使用此子句,可以將單引號(hào)中的事務(wù)ID指定為字符串。 可以在系統(tǒng)視圖中找到名為DBA_2PC_PENDING的事務(wù)標(biāo)識(shí)。
  • 必須擁有DBA權(quán)限才能訪問(wèn)系統(tǒng)視圖:DBA_2PC_PENDING和V$CORRUPT_XID_LIST。
  • 您無(wú)法將有問(wèn)題的事務(wù)回滾到保存點(diǎn)。

 

ROLLBACK語(yǔ)語(yǔ)法示例

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

例如:

ROLLBACK;

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

ROLLBACK WORK;

在這個(gè)例子中,隱含了WORK關(guān)鍵字,所以前面2個(gè)ROLLBACK語(yǔ)句是等價(jià)的。 這些示例將回滾當(dāng)前事務(wù)。

Savepoint

可以通過(guò)兩種方式將ROLLBACK寫入保存點(diǎn):

ROLLBACK TO SAVEPOINT savepoint1;

或者

ROLLBACK WORK TO SAVEPOINT savepoint1;

由于始終隱含著WORK關(guān)鍵字,因此這兩個(gè)ROLLBACK示例都會(huì)將當(dāng)前事務(wù)回滾到名為savepoint1的保存點(diǎn)。

Force

最后,看看ROLLBACK的一個(gè)例子,它顯示了如何強(qiáng)制回滾一個(gè)有問(wèn)題的事務(wù)。

例如,您可以通過(guò)兩種方式編寫有問(wèn)題事務(wù)的ROLLBACK:

ROLLBACK FORCE '22.14.67';

或者

ROLLBACK WORK FORCE '22.14.67';

由于始終隱含著WORK關(guān)鍵字,因此這兩個(gè)ROLLBACK示例都將強(qiáng)制回滾由事務(wù) ID “22.14.67”標(biāo)識(shí)的損壞或有問(wèn)題的事務(wù)。

下一節(jié):Oracle SET TRANSACTION語(yǔ)句(設(shè)置事務(wù))

Oracle教程

相關(guān)文章
亚洲国产精品第一区二区,久久免费视频77,99V久久综合狠狠综合久久,国产免费久久九九免费视频