在PL / SQL中记录运算符类型。 (Oracle)的

时间:2015-09-16 18:24:24

标签: oracle plsql error-handling exception-handling

下午好,堆栈溢出。我是PL / SQL和oracle的初学者。我之前发布过这个社区,这个社区帮助我从批判我的代码和设计中学到了很多东西。所以我又来了。我创建了一个与write_error_log过程同步的error_log表。将在其他包中的异常处理程序中调用该过程,并在该包/过程中记录错误并将其记录到error_log表中。我相信我几乎完成了我的目标,但我缺少一个方面。我还需要记录运算符类型。目前,我的过程只记录时间戳,错误消息/数字以及错误发生的行。在显示我的初始设计后,我的上级希望我通过记录操作符类型来记录错误发生的原因。什么是最好的方法来解决这个问题。

下面是我的write_error_log程序。

CREATE OR REPLACE procedure 
        APMS.write_error_log ( errstr varchar2, errline varchar2) 
    IS
        pragma autonomous_transaction; 
        -- this procedure stays in its own new private transaction
    begin                         
              INSERT INTO error_log
                   (err_tmsp,
                          err_msg,
                          err_line_no)
              values (systimestamp,
                      errstr,
                      errline);
              COMMIT;  -- this commit does not interfere with the caller's transaction.
        end write_error_log;
/

这是一个调用write_error_log过程来记录错误的过程示例。

CREATE OR REPLACE procedure APMS.mock_data_inserts
 -- add parameters here to test procedure for more complex issue 
as 
 BEGIN
        INSERT INTO mockdata
           VALUES ('textstring', '', 'mockcity');

      exception when others then             
        write_error_log(sqlerrm,dbms_utility.format_error_backtrace);
        raise; 
     END   mock_data_inserts;
/

此外,这是一个侧面问题,如果它无法回答我明白:)但如果我要在上面的程序中添加一些参数,我会从哪里开始?或者更确切地说,是否有人知道一些研究参数的好资源?还在试图找出'IN,OUT,INOUT'

干杯!

0 个答案:

没有答案