可以在存储过程里面用LogMiner分析归档文件吗?
分析会用到 EXECUTE dbms_logmnr_d.build...等语句,我将这些语句直接写在存储过程里面编译会报错,我用EXECUTE IMMEDIATE 'EXECUTE dbms_logmnr_d.build...'; 会在调用的时候报无效SQL的错。
我对存储过程是新手,希望大家帮帮我,我应该怎么处理这样的语句呢?
先谢了!
分析会用到 EXECUTE dbms_logmnr_d.build...等语句,我将这些语句直接写在存储过程里面编译会报错,我用EXECUTE IMMEDIATE 'EXECUTE dbms_logmnr_d.build...'; 会在调用的时候报无效SQL的错。
我对存储过程是新手,希望大家帮帮我,我应该怎么处理这样的语句呢?
先谢了!
还有一个问题,我想把select的结果导出到文件或者返回,应该怎么写呢?
本来SPOOL可以导出到文本文件的,但是在存储过程里面直接用spool $file_path;不行。
IS
script_file utl_file.file_type;
temp_text VARCHAR2(1000);begin DBMS_LOGMNR.ADD_LOGFILE('D:\oracle\product\10.2.0\flash_recovery_area\ARC1_24_638118666.DBF', OPTIONS=>dbms_logmnr.NEW);
DBMS_LOGMNR.START_LOGMNR(DictFileName=>'D:\oracle\product\10.2.0\share\logmnr_dict.ora',Options=>dbms_logmnr.NO_ROWID_IN_STMT); SELECT sql_redo INTO temp_text FROM v$logmnr_contents WHERE seg_owner = 'AAA';
script_file := utl_file.fopen('D:\oracle\product\10.2.0\share\','test.txt','a');
utl_file.put_nchar(script_file, temp_text);
utl_file.fclose(script_file);
DBMS_LOGMNR.end_logmnr;end myTest;
以上是我的存储过程,编译和调用时都没报错,但是就是没有导出文件。
我在CMD里面执行过这条select语句,是有结果集的。
这个存储过程有什么问题呢?
但是有没有办法将所有的结果集一次性导出到一个文本文件呢?
谁知道吗?