存储过程监控中间结果 要监控存储过程执行时候的中间数据,有什么好的方法或工具啊 ?因为要测试的存储过程多,不可能每个都断点调试跟踪,想整个通用的,大家帮忙看看,小女谢了啊!急啊! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 使用自治存储过程(在存储过程的变量定义部分使用pragma autonomous_transaction)来记录中间数据,这样即使被监控的存储过程没有提交(commit)也能查到要监控的数据; pl/sql developor 可以对存储过程进行跟踪 pl/sql developor 可以对存储过程进行跟踪,问题是我现在需要自动记录日志,因为很多存储过程要测试。 create or replace procedure F_PUB_WRITE_EVENTLOG( pi_EventLog IN EventLog%ROWTYPE, -- 日志信息 po_returncode IN OUT VARCHAR2, -- 返回代码 po_returnmsg IN OUT VARCHAR2 -- 返回信息)IS vn_Ret PLS_INTEGER; vc_Logser EventLog.Logser%TYPE; pragma autonomous_transaction;BEGIN vn_Ret := F_GET_Sequence('******',1,po_returncode,po_returnmsg,vc_Logser); IF vn_Ret != 0 THEN rollback; return(-1); END IF;-- INSERT INTO EventLog ( LOGSER, OPTIME, OPID, SERVICEID, RETURNCODE, returnmsg, SUMMARY ) VALUES ( vc_Logser, SysDate, pi_EventLog.Opid, pi_EventLog.SERVICEID, pi_EventLog.RETURNCODE, pi_EventLog.returnmsg, pi_EventLog.Summary ); po_RETURNCODE := pi_EventLog.RETURNCODE; po_ReturnMsg := pi_EventLog.returnmsg; po_returncode := nvl(po_RETURNCODE ,'0000'); if po_returncode = '0000' then po_ReturnMsg := '成功'; end if; commit; return;EXCEPTION WHEN others THEN po_returncode := '0673'; -- 数据库错误 po_returnmsg := F_Get_ErrMsg(po_returncode)||sqlerrm; rollback; return(-1);END F_PUB_WRITE_EVENTLOG; F_GET_Sequence这个函数是干嘛的?取sequence id 的 吗?还有没有其他用途 F_GET_Sequence 这个函数是干嘛的?取sequence id 的 吗? 还有没有其他用途 建个table,让他来记录你想看到的的信息。可以观察执行到那一步了。 命令窗口执行存储过程的问题。在线等 关于rman备份的format的问题。 group by语句如何写? 求oralce入门书籍 關於時間字段設計問 询问 IMP 的问题 请大家看看这个功能是不是用这条语句? 修改表结构的问题,请教高手!!谢谢。 请大伙推荐一个优秀的建库工具 怎样对oracle包进行加密(存储过程能够加密)? 火线求助!!!VC++基于oo4o访问Oracle数据库问题!SQL脚本执行不稳定!高手请支招!!! 请问这个SQL是否正确?
问题是我现在需要自动记录日志,因为很多存储过程要测试。
(
pi_EventLog IN EventLog%ROWTYPE, -- 日志信息
po_returncode IN OUT VARCHAR2, -- 返回代码
po_returnmsg IN OUT VARCHAR2 -- 返回信息
)
IS
vn_Ret PLS_INTEGER;
vc_Logser EventLog.Logser%TYPE;
pragma autonomous_transaction;
BEGIN
vn_Ret := F_GET_Sequence('******',1,po_returncode,po_returnmsg,vc_Logser);
IF vn_Ret != 0 THEN
rollback;
return(-1);
END IF;
--
INSERT INTO EventLog
(
LOGSER,
OPTIME,
OPID,
SERVICEID,
RETURNCODE,
returnmsg,
SUMMARY
)
VALUES
(
vc_Logser,
SysDate,
pi_EventLog.Opid,
pi_EventLog.SERVICEID,
pi_EventLog.RETURNCODE,
pi_EventLog.returnmsg,
pi_EventLog.Summary
);
po_RETURNCODE := pi_EventLog.RETURNCODE;
po_ReturnMsg := pi_EventLog.returnmsg;
po_returncode := nvl(po_RETURNCODE ,'0000');
if po_returncode = '0000' then
po_ReturnMsg := '成功';
end if;
commit;
return;
EXCEPTION
WHEN others THEN
po_returncode := '0673'; -- 数据库错误
po_returnmsg := F_Get_ErrMsg(po_returncode)||sqlerrm;
rollback;
return(-1);
END F_PUB_WRITE_EVENTLOG;
这个函数是干嘛的?取sequence id 的 吗?
还有没有其他用途
这个函数是干嘛的?取sequence id 的 吗?
还有没有其他用途