CREATEORREPLACE package my_pack as TYPE p_cursor IS REF CURSOR; end; CREATEORREPLACEprocedure server_check_report_pro(p_cursor out my_pack.p_cursor) is vlevel number; vre varchar2(3000); cursor c1 is select*from server_dbcheck_list; begin deletefrom server_check_report; for c in c1 loop server_getlogbyip(c.ip,vre,vlevel); insertinto server_check_report (ip,check_item,check_order,error_level,detail)values (c.ip,'OS DB Log Check',0,vlevel,substr(vre,1,2999)); end loop; insertinto server_check_report(ip,check_item,check_order,error_level,detail) select a.ip,'Disk Spaces Check',1,nvl(b.error_level,0),nvl(b.remark,'') from server_dbcheck_list a,server_logcheck_logs b where a.ip=b.ip(+) and error_level(+)>0 and id(+)=4; insertinto server_check_report (ip,check_item,check_order,error_level,detail) select a.ip,a.tns_name||':'||b.LOG_INFO check_item,2,nvl(b.error_level,0) error_level,decode(nvl(b.error_level,0),0,'',replace(replace(b.value_list,'####',','),'"','')) remark from server_dbcheck_list a,server_dbcheck_logs b where a.ip=b.ip(+) and a.tns_name=b.tns_name(+) and error_level(+)>0 and b.id(+)=1; commit; open p_cursor for'select * from server_check_report order by ip,check_order'; end; /