7 x 24 在线支持!
解决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补丁。