不知火舞的被虐|伊人天伊人天天综合网|博洛尼亚天气|任你懆这里只有精品4|久久美日韩精品久久|掌中之物漫画免费阅读观看|0丨d老妇

請教各位高手 oracle 存儲過程 如何將獲得捕獲異常的內容寫入一張表里?

瀏覽:1557 回答:2

請教各位高手 oracle 存儲過程 如何將獲得捕獲異常的內容寫入一張表里
例如  DBMS_OUTPUT.PUT_LINE(SUBSTR(SQLERRM, 1, 200));
將SUBSTR(SQLERRM, 1, 200)寫人
insert into t_log_error values('1','2','3',SUBSTR(SQLERRM, 1, 200),'%$%&',sysdate);
是不是沒法實現啊。

create or replace procedure p_testone is
 v number(2);
 
begin
 select 1 / 0 into v from dual;
insert into t_log_error values('1','2','3',SUBSTR(SQLERRM, 1, 200),'%$%&',sysdate);
 --異常處理
 EXCEPTION WHEN OTHERS THEN ROLLBACK;
 DBMS_OUTPUT.PUT_LINE(SUBSTR(SQLERRM, 1, 200));
end;
收起

存儲過程編譯都沒過去


邀請回答 我來回答

全部回答

(2)
默認 最新
瘋狂的玩具

可以先定義個變量,發生異常的時候將異常信息賦值給變量,插入表的時候用變量,

日志表沒給表結構,我自己重新定義了一個,測試ok。

CREATE TABLE T_LOG_ERROR

(ERR_ID NUMBER,

ERR_TIME   DATE,

ERR_CODE   NUMBER,

ERR_INFOR  VARCHAR2(4000)

);


create or replace procedure p_testone is

  v number(2);

  v_sqlcode number;

  v_sqlerrm varchar2(4000);

begin

  select 1 / 0 into v from dual;


  --異常處理

  EXCEPTION WHEN OTHERS THEN 

    ROLLBACK;

    v_sqlcode :=sqlcode;

    v_sqlerrm :=SUBSTR(sqlerrm, 1, 2000);

  insert into t_log_error values(1,sysdate,v_sqlcode,v_sqlerrm);

  commit;

  DBMS_OUTPUT.PUT_LINE(SUBSTR(SQLERRM, 1, 200));

end;


執行存儲過程后就可以把異常信息記錄到表t_log_error了。


2017年10月23日
已采納 評論 點贊
瘋狂的玩具
可以先定義個變量,發生異常的時候將異常信息賦值給變量,插入表的時候用變量,





日志表沒給表結構,我自己重新定義了一個,測試ok。





CREATE TABLE T_LOG_ERROR





(ERR_ID NUMBER,





ERR_TIME   DATE,





ERR_CODE   NUMBER,





ERR_INFOR  VARCHAR2(4000)





);












create or replace procedure p_testone is





  v number(2);





  v_sqlcode number;





  v_sqlerrm varchar2(4000);





begin





  select 1 / 0 into v from dual;












  --異常處理





  EXCEPTION WHEN OTHERS THEN 





    ROLLBACK;





    v_sqlcode :=sqlcode;





    v_sqlerrm :=SUBSTR(sqlerrm, 1, 2000);





  insert into t_log_error values(1,sysdate,v_sqlcode,v_sqlerrm);





  commit;





  DBMS_OUTPUT.PUT_LINE(SUBSTR(SQLERRM, 1, 200));





end;












執行存儲過程后就可以把異常信息記錄到表t_log_error了。






2017年10月23日
評論 點贊

沒解決?試試專家一對一服務

換一批
    App下載
    技術鄰APP
    工程師必備
    • 項目客服
    • 培訓客服
    • 平臺客服

    TOP