您的位置:云骑士 > 使用教程 > 电脑资讯 >

ora06512怎么解决

时间:2019-08-21 09:58:05

在使用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

点击阅读全文

相关视频
相关教程
最新教程