解决Oracle当执行DBMS_NETWORK_ACL_ADMIN.CREATE_ACL创建访问控制列表时报ORA-1410 错误

如果自己搞不定可以找诗檀软件专业ORACLE数据库修复团队成员帮您恢复!

诗檀软件专业数据库修复团队

服务热线 : 13764045638 QQ号:47079569 邮箱:service@parnassusdata.com

 

 

适用于

Oracle 数据库 – 企业版- 11.1.0.6 到 11.2.0.2 版本[Release 11.1 to 11.2]
本文档内容适应于任何平台

症状

当尝试用dbms_network_acl_admin.create_acl创建一个访问控制列表,执行过程失败,报ORA-01410错误。

SQL> begin
2  dbms_network_acl_admin.create_acl (
3  acl             => ‘Mail_UTL_Access.xml’,
4  description     => ‘Mail UTL Network Access’,
5  principal       => ‘SAGE’,
6  is_grant        => TRUE,
7  privilege       => ‘connect’,
8  start_date      => null,
9  end_date        => null
10  );
11  end;
12  /
begin
*
ERROR at line 1:
ORA-01410: ROWID invalid
ORA-06512: at “SYS.DBMS_NETWORK_ACL_ADMIN”, line 252
ORA-06512: at line 2

原因

这是因为有一个索引在XDB.XDB$ACL上是无效的或者加载状态,这意味着这个索引不能全面工作。

解决方案

删除并重新创建这个索引在XDB.XDB$ACL,如下:

As SYS:

drop index xdb.xdb$acl_xidx force;

  CREATE INDEX “XDB”.”XDB$ACL_XIDX” ON “XDB”.”XDB$ACL” (OBJECT_VALUE)

     INDEXTYPE IS “XDB”.”XMLINDEX”

    PARAMETERS

    (‘PATH TABLE XDBACL_PATH_TAB VALUE INDEX XDBACL_PATH_TAB_VALUE_IDX’);

注意!!! 注意文档1103704.1里描述的问题,可能无法删除加载状态的索引直到打好9224305补丁。

Comment

*

沪ICP备14014813号-2

沪公网安备 31010802001379号