DBMS_XA 系统包定义了可用于指定参数值的常量。

XA_START 函数和 XA_END 函数的 flag 字段中使用的常量

下表列出了 XA_START 函数和 XA_END 函数的 flag 字段中使用的常量。

名称

类型

取值

描述

TMNOFLAGS

PLS_INTEGER

00000000

表示未选择标志值。

TMSUCCESS

PLS_INTEGER

UTL_RAW.CAST_TO_BINARY_INTEGER (‘04000000’)

分离调用者与事务分支。

TMJOIN

PLS_INTEGER

UTL_RAW.CAST_TO_BINARY_INTEGER (‘00200000’)

调用者正加入当前的事务分支。

TMSUSPEND

PLS_INTEGER

UTL_RAW.CAST_TO_BINARY_INTEGER (‘02000000’)

调用者挂起,并没有结束关联。

TMRESUME

PLS_INTEGER

UTL_RAW.CAST_TO_BINARY_INTEGER (‘08000000’)

调用者正在与暂停的事务分支恢复关联。

DBMS_XA 可能的常量返回值

下表列出了 DBMS_XA 可能的常量返回值。

名称

类型

取值

描述

XA_RBBASE

PLS_INTEGER

100

回滚代码的下限范围

XA_RBROLLBACK

PLS_INTEGER

XA_RBBASE

由未知原因引起的回滚

XA_RBCOMMFAIL

PLS_INTEGER

XA_RBBASE+1

由通信故障引起的回滚

XA_RBDEADLOCK

PLS_INTEGER

XA_RBBASE+2

检测到死锁

XA_RBINTEGRITY

PLS_INTEGER

XA_RBBASE+3

检测到违反资源完整性的状况

XA_RBOTHER

PLS_INTEGER

XA_RBBASE+4

资源管理器 RM 回滚事务的原因未列出

XA_RBPROTO

PLS_INTEGER

XA_RBBASE+5

资源管理器 RM 出现协议错误

XA_RBTIMEOUT

PLS_INTEGER

XA_RBBASE+6

事务分支花费时间很长

XA_RBTRANSIENT

PLS_INTEGER

XA_RBBASE+7

可以重试事务分支

XA_RBEND

PLS_INTEGER

XA_RBTRANSIENT

回滚代码的上限(包括上限)

XA_NOMIGRATE

PLS_INTEGER

9

事务分支可能已经完成

XA_HEURHAZ

PLS_INTEGER

8

事务分支可能已经完成

XA_HEURCOM

PLS_INTEGER

7

事务分支可能已经提交

XA_HEURRB

PLS_INTEGER

6

事务分支可能已经回滚

XA_HEURMIX

PLS_INTEGER

5

一些事务分支可能已经提交,另一些可能已经回滚

XA_RETRY

PLS_INTEGER

4

例行返回无效,可能会补发

XA_RDONLY

PLS_INTEGER

3

事务是只读的并且已经提交

XA_OK

PLS_INTEGER

0

正常执行

XAER_ASYNC

PLS_INTEGER

-2

异步操作未解决

XAER_RMERR

PLS_INTEGER

-3

事务分支中资源管理器报错

XAER_NOTA

PLS_INTEGER

-4

XID 无效

XAER_INVAL

PLS_INTEGER

-5

给出的参数无效

XAER_PROTO

PLS_INTEGER

-6

常规调用前后关系不当

XAER_RMFAIL

PLS_INTEGER

-7

资源管理器不可用

XAER_DUPID

PLS_INTEGER

-8

XID 已存在

XAER_OUTSIDE

PLS_INTEGER

-9

资源管理器执行全局事务以外的工作