首页 > 解决方案 > 使用 Oracle 撤销事务

问题描述

我正在尝试使用此脚本撤销与 Oracle 12c 的事务:

DECLARE
v_xid   SYS.xid_array;
BEGIN
v_xid := sys.xid_array ('0700200003030000');
DBMS_FLASHBACK.transaction_backout (numtxns => 1, xids => v_xid, options => 
DBMS_FLASHBACK.cascade);
END;
/

我收到此错误:

ORA-06550: Ligne 2, colonne 9 :
PLS-00201: l'identificateur 'SYS.XID_ARRAY' doit être déclaré

我怎样才能解决这个问题?

标签: oracle

解决方案


您是否与DBA特权相关联?如果没有,您确定您拥有与SYS对象交互的必要权限吗?SYS作为普通用户,除非明确授予您访问权限,否则您将无法与某些对象进行交互。PUBLIC如果您在组织的数据库中工作,则尤其如此,因为从角色中撤消所有授权是很常见的。

如果这是权限问题,那么您无法自行修复它。如果您有访问权限,您可以尝试连接该SYSDBA角色。如果您没有该访问权限,则需要向DBA管理数据库的人员请求。

如果这是您用于测试/学习的数据库并且您不确定,我建议您通过以下链接查看 Oracle 的角色文档:https ://docs.oracle.com/database/121/DBSEG/授权.htm#DBSEG004

这里还有一篇很棒的 ask tom 文章,其中谈到了SYS架构和SYSDBA角色。 https://asktom.oracle.com/pls/asktom/f?p=100:11:0%3A%3A%3A%3AP11_QUESTION_ID:2659418700346202574


推荐阅读