LogMiner的问题!

[复制链接]
查看11 | 回复9 | 2007-7-2 11:37:14 | 显示全部楼层 |阅读模式
SQL> execute dbms_logmnr_d.build('orcldict.ora', 'd:\oracle\admin\orcl\LogMiner'
);
BEGIN dbms_logmnr_d.build('orcldict.ora', 'd:\oracle\admin\orcl\LogMiner'); END;

*
ERROR 位于第 1 行:
ORA-06532: 下标超出限制
ORA-06512: 在"SYS.DBMS_LOGMNR_D", line 793
ORA-06512: 在line 1
如上所示,why?
添加过日志文件后
SQL> execute dbms_logmnr.start_logmnr(dictfilename=>'d:\oracle\admin\orcl\LogMiner\or
cldict.ora');
BEGIN dbms_logmnr.start_logmnr(dictfilename=>'d:\oracle\admin\orcl\LogMiner\or
cldict.ora'); END;



*
ERROR 位于第 1 行:
ORA-01843: 无效的月份
ORA-06512: 在line 1
如上,why?
回复

使用道具 举报

千问 | 2007-7-2 11:37:14 | 显示全部楼层
是817吗?
这是由于dbms_logmnr_d.build包有bug造成的,可以试试下面的办法:
编辑"rdbms\admin\dbmslmd.sql"文件,把其中的
TYPE col_desc_array IS VARRAY(513) OF col_description;
改成:
TYPE col_desc_array IS VARRAY(700) OF col_description;
注意,原文件中可能也不是513,甚至更小
保存文件,然后执行一遍这个脚本:
SQL> @c:\oracle\ora81\rdbms\admin\dbmslmd.sql
然后重新编译DBMS_LOGMNR_D包:
SQL> alter package DBMS_LOGMNR_D compile body;
Package body altered.
之后重新执行dbms_logmnr_d.build即可:
回复

使用道具 举报

千问 | 2007-7-2 11:37:14 | 显示全部楼层
按照楼上的说的执行后,重新创建字典文件,然后添加要分析的日志文件果然都没有错误,可是开始分析日志文件出现错误,如下所示:SQL> execute dbms_logmnr.start_logmnr(dictfilename=>'d:\oracle\admin\orcl\LogMi
er\orcldict.ora');
BEGIN dbms_logmnr.start_logmnr(dictfilename=>'d:\oracle\admin\orcl\LogMiner\orc
dict.ora'); END;


*
ERROR 位于第 1 行:
ORA-01843: ?????
ORA-06512: ?line 1
请楼上的兄台再次指点,thanks!
回复

使用道具 举报

千问 | 2007-7-2 11:37:14 | 显示全部楼层
检查NLS_DATE_FORMAT设置,并参考START_LOGMNR的语法:
DBMS_LOGMNR.START_LOGMNR(
startScn IN NUMBER default 0,
endScn
IN NUMBER default 0,
startTime
IN DATE default '01-jan-1988',
endTime
IN DATE default '01-jan-2988',
DictFileName IN VARCHAR2 default '',
Options
IN BINARY_INTEGER default 0 );
回复

使用道具 举报

千问 | 2007-7-2 11:37:14 | 显示全部楼层
我知道用alter session set nls_date_format = dd-mon-rrrr修改nls_date_format这个参数,这个值会保存么?下次我在登陆的时候还是我修改的那个值么?如果想察看这个参数的值,要访问哪儿个视图?
回复

使用道具 举报

千问 | 2007-7-2 11:37:14 | 显示全部楼层
alter session set nls_date_format = dd-mon-yyyy已经修改过了,为什么还是显示execute dbms_logmnr.start_logmnr(dictfilename=>'d:\oracle\admin\orcl\LogMi
er\orcldict.ora');
BEGIN dbms_logmnr.start_logmnr(dictfilename=>'d:\oracle\admin\orcl\LogMiner\orc
dict.ora'); END;


*
ERROR 位于第 1 行:
ORA-01843: 无效的月份
ORA-06512: 在line 1
回复

使用道具 举报

千问 | 2007-7-2 11:37:14 | 显示全部楼层
Change NLS_LANGUAGE variable to AMERICAN within the current session before running DBMS_LOGMNR.START_LOGMNR:
SQL> alter session set NLS_LANGUAGE=american;
回复

使用道具 举报

千问 | 2007-7-2 11:37:14 | 显示全部楼层
如果指定全了START_LOGMNR参数也可以的,可以用TO_DATE来转换
回复

使用道具 举报

千问 | 2007-7-2 11:37:14 | 显示全部楼层
Thanks very much!
回复

使用道具 举报

千问 | 2007-7-2 11:37:14 | 显示全部楼层
*
ERROR 位于第 1 行:
ORA-01843: 无效的月份
ORA-06512: 在line 1
这个错误我也碰见了~~然后指定全了所有参数(除option)~
结果却又产生ORA-01292~
告诉我说没有指定日志文件~奇怪~
前面我明明白白执行了dbms_logmnr.add_logfile并提示成功~~
不知各位能否给我点提示~~谢谢!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行