我正在尝试使用以下脚本回退与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é
我该如何解决?
答案 0 :(得分:0)
您是否拥有DBA
特权?如果不是,是否确定您具有与SYS
对象进行交互的必要权限?作为普通用户,除非明确授予您访问权限,否则您将无法与某些SYS
对象进行交互。如果您在组织的数据库中工作,则尤其如此,因为从PUBLIC
角色撤消所有拨款都是很常见的事情。
如果这是许可的情况,则您无法自己进行修复。如果有访问权限,则可以尝试使用SYSDBA
角色进行连接。如果您没有该访问权限,则需要向管理数据库的DBA
请求。
如果这是您用于测试/学习的数据库,并且不确定,我建议您通过以下链接查看有关角色的Oracle文档:https://docs.oracle.com/database/121/DBSEG/authorization.htm#DBSEG004
这也是一本很棒的tom tom文章,它简要介绍了SYS
模式和SYSDBA
角色。 https://asktom.oracle.com/pls/asktom/f?p=100:11:0%3A%3A%3A%3AP11_QUESTION_ID:2659418700346202574