ora06512怎么解决

发布于2021-12-17 19:10:30

在使用pl/sql测试函数(本函数是想删除表的某一条数据)时,出现错误ora06512。解决方法一:检查表是否被锁住,然后测试删除其他记录再回来删除就成功了可能原因:1.这个表被锁住2.在测试函数前,要先commit其它事务,pl/sql默

1个回答
admin
网友回答2021-12-17

在使用pl/sql测试函数(本函数是想删除表的某一条数据)时,出现错误ora06512。

解决方法一:检查表是否被锁住,然后测试删除其他记录再回来删除就成功了

可能原因:

1.这个表被锁住

2.在测试函数前,要先commit其它事务,pl/sql默认不是自动提交,只有退出程序或者手动commit才能提交。

解决方法二:

一次有一个9.2.0.8的生产数据库遇到下面问题,怀疑可能是dbms_stats这个内部pkg无法调用这个原因导致的。

SQL> exec dbms_stats.gather_table_stats(ownname => 'dbmgr',tabname => 'factuser_list');

BEGIN dbms_stats.gather_table_stats(ownname => 'dbmgr',tabname => 'factuser_list'); END;

*

ERROR at line 1:

ORA-06521: PL/SQL: Error mapping function

ORA-06512: at "SYS.DBMS_STATS", line 10502

ORA-06512: at "SYS.DBMS_STATS", line 10516

ORA-06512: at line 1

于是找了一个9.2.0.6测试库的,重建一下就OK了,解决方法过程:

SQL> @?/rdbms/admin/dbmsstat.sql

Package created.

Synonym created.

Grant succeeded.

create role gather_system_statistics

*

ERROR at line 1:

ORA-01921: role name 'GATHER_SYSTEM_STATISTICS' conflicts with another user or

role name

Grant succeeded.

Grant succeeded.

Library created.

SQL> @?/rdbms/admin/prvtstas.plb

Package created.

Package body created.

SQL>

SQL> @?/rdbms/admin/prvtstat.plb

Package body created.

SQL>

SQL> exec dbms_stats.gather_table_stats(ownname => 'dbmgr',tabname => 'factuser_list');

PL/SQL procedure successfully completed.

SQL

回到
顶部