请问delete_schema_stats怎么用?

dagouaofei 2010-01-14 10:00:15
我遇到了一个oracle问题,网上查后说要执行execute dbms_stats.delete_schema_stats('zlhis');
zlhis是用户名吗?
我执行后报错:zlhis is an invalid identifier
怎么解决啊?
delete_schema_stats里面的参数到底填啥?
...全文
717 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
davidlovejava 2010-01-15
  • 打赏
  • 举报
回复
同问
lordcoohoo 2010-01-15
  • 打赏
  • 举报
回复
SQL>desc dbms_stats.delete_schema_stats
查看这个过程有哪些参数就知道如何使用了。
wuyisky84 2010-01-14
  • 打赏
  • 举报
回复
继续查看alert.log 日志

查到你怀疑的问题是什么问题

dagouaofei 2010-01-14
  • 打赏
  • 举报
回复
现在看来,只有出错表的那个用户名作为参数传入execute dbms_stats.delete_schema_stats(XXX);时会报错,其他用户名不报错
我怀疑是前两天用imp命令导入时的问题。但不知道是啥问题
owen_008 2010-01-14
  • 打赏
  • 举报
回复
非常好~~~~~~~~~~~~~~~~~~~~~~~~~~我顶

wh62592855 2010-01-14
  • 打赏
  • 举报
回复
1
查看alter.log找出出错的表名 找不到可以通过.trc文件试试
2
根据dba_tables视图找出该表所对应的schema
方法就按照楼上的那位朋友的语句可以查出
3
以这个schema名为参数再次执行语句
execute dbms_stats.delete_schema_stats();
dagouaofei 2010-01-14
  • 打赏
  • 举报
回复
我发现一个现象,我把其他用户名传进去时不报错,只有传这个用户名时报错。
前几天有人用imp用这个用户导入过数据,而且报了几个错,但是是什么错不记得了。
wuyisky84 2010-01-14
  • 打赏
  • 举报
回复
这个问题是oracle的一个bug

我用的数据库版本是win32 的 10.1.0.2 用这个命令解决了

能升级数据库就升级数据库啊,还有是正版的oracle 的话,可以下载补丁

select * from dba_tables where table_name =upper('表名')

结果中的 owner 就是表的所有者
dagouaofei 2010-01-14
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 wuyisky84 的回复:]
用system (dba)用户登录 然后 在参数中填写 出错的那个表所属的用户


不是登录的用户
[/Quote]

我怎么知道出错的表属于哪个用户?
dagouaofei 2010-01-14
  • 打赏
  • 举报
回复
我是以sys用户名sysdba身份登录的,然后执行execute dbms_stats.delete_schema_stats('zlhis');
其中那个参数'zlhis'是一个数据库里的用户名,查了也确实存在,但执行时就是报:
begin execute dbms_stats.delete_schema_stats('zlhis'); end;
ORA-20001: zlhis is an invalid identifier
ORA-06512: 在"SYS.DBMS_STATS",LINE1524
......
wuyisky84 2010-01-14
  • 打赏
  • 举报
回复
用system (dba)用户登录 然后 在参数中填写 出错的那个表所属的用户


不是登录的用户
dagouaofei 2010-01-14
  • 打赏
  • 举报
回复
我遇到的就是2楼说的问题。
但是在执行那个语句时,说我填的参数是invalid identifier.
我填的参数就是连接数据库的用户名。
schema怎么查?

我不是dba,但领导让我解决,所以抓瞎,谢谢大家了
wh62592855 2010-01-14
  • 打赏
  • 举报
回复
1
首先楼主你要说明你遇到了什么问题
最好把搜到解决方法的网站链接也发过来看看
2
dbms_stats.delete_schema_stats()存储过程的作用时删除ORACLE中针对某个schema的统计信息
3
以下是官方联机文档上对这个存储过程的解释
DELETE_SCHEMA_STATS Procedure
This procedure deletes statistics for an entire schema.

Syntax

DBMS_STATS.DELETE_SCHEMA_STATS (
ownname VARCHAR2,
stattab VARCHAR2 DEFAULT NULL,
statid VARCHAR2 DEFAULT NULL,
statown VARCHAR2 DEFAULT NULL,
no_invalidate BOOLEAN DEFAULT to_no_invalidate_type (
get_param('NO_INVALIDATE')),
force BOOLEAN DEFAULT FALSE);
wuyisky84 2010-01-14
  • 打赏
  • 举报
回复
下面是我的一个开发服务器的报错信息 在alert log 中有 报错信息,在根据
test_ora_908.trc中的信息找到 相关出错的sql 语句
Wed Dec 02 09:53:39 2009
Errors in file e:\oracle\product\10.1.0\admin\test\udump\test_ora_908.trc:
ORA-00600: internal error code, arguments: [19004], [], [], [], [], [], [], []

Wed Dec 02 09:54:14 2009
Errors in file e:\oracle\product\10.1.0\admin\test\udump\test_ora_6560.trc:
ORA-00600: internal error code, arguments: [19004], [], [], [], [], [], [], []

Wed Dec 02 09:54:15 2009
Errors in file e:\oracle\product\10.1.0\admin\test\udump\test_ora_6560.trc:
ORA-00600: internal error code, arguments: [19004], [], [], [], [], [], [], []

Wed Dec 02 09:54:16 2009
Errors in file e:\oracle\product\10.1.0\admin\test\udump\test_ora_6560.trc:
ORA-00600: internal error code, arguments: [19004], [], [], [], [], [], [], []

Wed Dec 02 09:54:21 2009
Errors in file e:\oracle\product\10.1.0\admin\test\udump\test_ora_6560.trc:
ORA-00600: internal error code, arguments: [19004], [], [], [], [], [], [], []

Wed Dec 02 09:54:24 2009
Errors in file e:\oracle\product\10.1.0\admin\test\udump\test_ora_6560.trc:
ORA-00600: internal error code, arguments: [19004], [], [], [], [], [], [], []


------------------------------------------
test_ora_6560.trc 文件部分内容

*** ACTION NAME:(SQL Window - New) 2009-12-02 09:49:58.593
*** MODULE NAME:(PL/SQL Developer) 2009-12-02 09:49:58.593
*** SERVICE NAME:(test) 2009-12-02 09:49:58.593
*** SESSION ID:(79.4766) 2009-12-02 09:49:58.593
*** 2009-12-02 09:49:58.593
ksedmp: internal or fatal error
ORA-00600: internal error code, arguments: [19004], [], [], [], [], [], [], []
Current SQL statement for this session:
select * from sic_ia_corpration_security s ,sic_ci_corporation c where s.corpid=c.corpid
----- Call Stack Trace -----
calling call entry argument values in hex
location type point (? means dubious value)
-------------------- -------- -------------------- ----------------------------
_ksedmp+524 CALLrel _ksedst+0 0
_ksfdmp.160+14 CALLrel _ksedmp+0 3
_kgeriv+139 CALLreg 00000000 CD0FB98 3
wuyisky84 2010-01-14
  • 打赏
  • 举报
回复
看alter log 日志
dagouaofei 2010-01-14
  • 打赏
  • 举报
回复
我怎么知道我报错的那个表属于哪个用户?谢谢!
wuyisky84 2010-01-14
  • 打赏
  • 举报
回复
--ORACLE 10.1 OR 10.2中所有平台都存在该问题.

<问题现像>
在进行多表关联复杂查询时出现
ORA-00600: 内部错误代码, 参数: [19004], [], [], [], [], [], [], []
错误

<解决办法>
这是一个ORACLE的BUG
处理办法1:
以DBA身份执行:
execute dbms_stats.delete_schema_stats('zlhis');

处理办法2:
如果只有个别表在查询时出现错误,可以只对出错表理行处理
execute dbms_stats.delete_table_stats('ZLHIS','病人费用记录');

wuyisky84 2010-01-14
  • 打赏
  • 举报
回复
以DBA身份执行:
execute dbms_stats.delete_schema_stats('zlhis');
zlhis 是你报错的那个表所属的oracle用户

17,377

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧