ORA-01422: exact fetch returns more than requested number of rows ORA-06512

本文介绍了在使用Oracle数据库时遇到的错误ORA-01422(精确获取返回了超过请求的行数)和ORA-06512(在指定的行号上执行PL/SQL代码时出现错误)。通过分析错误原因,提供了解决这些问题的策略和预防措施。

开发板推荐:天空星STM32F407VET6开发板

超高性价比 STM32主控 | 超高主频 | 一板兼容百芯 | 比赛神器 | 沉金彩色丝印

1、环境
 Oracle 10.2.0.5 RAC,AIX系统

2、Oracle统计信息收集,报错:
SQL> BEGIN dbms_stats.gather_table_stats(ownname =>'A_DTB1',tabname =>'TS_ADT_01',degree=>16,cascade => true,estimate_percen
t=>dbms_stats.auto_sample_size); END;


*
ERROR at line 1:
ORA-01422: exact fetch returns more than requested number of rows
ORA-06512: at "SYS.DBMS_STATS", line 15027
ORA-06512: at "SYS.DBMS_STATS", line 15049
ORA-06512: at line 1


3、解决办法
--加了GRANULARITY=>'ALL'
exec dbms_stats.gather_table_stats(ownname=>'A_DTB1', tabname=>'TS_ADT_01', degree=>16, cascade=>true, 
estimate_percent=>dbms_stats.auto_sample_size, GRANULARITY=>'ALL');

4、学习
GRANULARITY 参数只适用于分区表:

'ALL' - gathers all (subpartition, partition, and global) statistics <

开发板推荐:天空星STM32F407VET6开发板

超高性价比 STM32主控 | 超高主频 | 一板兼容百芯 | 比赛神器 | 沉金彩色丝印

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值