ITPub博客

首页 > Linux操作系统 > Linux操作系统 > ORA-20000: Unable to analyze TABLE , insufficient privileges or does not exist

ORA-20000: Unable to analyze TABLE , insufficient privileges or does not exist

原创 Linux操作系统 作者:os-ora 时间:2010-12-31 14:55:37 1 删除 编辑

今天在数据库的警报日志中发现如下一条错误:

ORA-20000: Unable to analyze TABLE "yun"."tt", insufficient privileges or does not exist

查了一下,这个自动任务是oracle自己的job :GATHER_STATS_JOB

可通过dba_scheduler_jobs视图查看

dba_scheduler_job_run_details表可以获得JOB的执行情况细节

JOB任务运行的具体过程如下:
select  PROGRAM_ACTION from dba_scheduler_programs where PROGRAM_NAME = 'GATHER_STATS_PROG';
既然是oracle自己的job,那么程序上应该是不会有问题的。所以我用yun账号登录,查看有没有tt对象

使用desc tt 报对象不存在

使用select也报对象不存在

使用select * from tab查看对象存在啊!!!!!

使用select dbms_metadata.get_ddl查看这个对象的元数据,也是存在的啊!!!

从网上找到相关资料说是名称大小写的问题。以前也碰见过。比如:创建对象是,对象名称使用双引号引起来,这样创建的对象名称就和双引号内的一模一样。如果引号内有小写字母,那么你查询该对象的时候就会报对象不存在,因为oracle内部都是以大写来显示对象名的。

针对这个问题。大小写的问题是不存在的,因为我在select * from tab和查看元数据的对象的名称都是大写的。

后来想起来是不是统计信息不对称导致的呢?

试试:analyze table tt compute statistics;成功执行

在使用desc tt

既然OK了!

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/16566331/viewspace-683066/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2010-01-12

  • 博文量
    148
  • 访问量
    410398