當前位置:首頁 » 存儲配置 » 存儲過程異常

存儲過程異常

發布時間: 2024-05-05 23:24:03

① oracle存儲過程中 未找到數據 異常的問題。。。

解決這個辦法很多,按提問者的意思,異常肯定是no
data
found,這個時候你需要檢查在哪出現的這個異常,如果數據不多的話,你可以用一條一條記錄的去試,如果數據量大的話那直接在每個select前先選出count(*)
into
counts,當
counts<>
0的時候再讓它執行下邊的語句,或者直接存儲工程中加異常處理的語句,我一般遇到這種情況都是用第一種,很簡單但是很實用,屢試不爽。哈哈,如果有機會再交流交流

② mysql存儲過程執行一半出現異常會怎麼辦

如果在存儲過程調用的時候顯式的調用了事務處理,那麼,會回滾,否則執行到那裡就在哪裡生效。

③ MYSQL 存儲過程 中怎麼捕獲異常

DECLARE處理程序的使用:

DECLARE handler_type HANDLER FOR condition_value[,...] sp_statement

其中,

handler_type的取值范圍:CONTINUE | EXIT | UNDO

condition_value的取值范圍:SQLSTATE [VALUE] sqlstate_value | condition_name | SQLWARNING | NOT FOUND | SQLEXCEPTION | mysql_error_code

這個語句指定每個可以處理一個或多個條件的處理程序。如果產生一個或多個條件,指定的語句被執行。對一個CONTINUE處理程序,當前子程序的執行在執行處理程序語句之後繼續。對於EXIT處理程序,當前BEGIN...END復合語句的執行被終止。UNDO 處理程序類型語句還不被支持。

· SQLWARNING是對所有以01開頭的SQLSTATE代碼的速記。

· NOT FOUND是對所有以02開頭的SQLSTATE代碼的速記。

· SQLEXCEPTION是對所有沒有被SQLWARNING或NOT FOUND捕獲的SQLSTATE代碼的速記。

註:除了SQLSTATE值,MySQL錯誤代碼也不被支持。


例:

[sql]viewplainprint?
delimiter$$

CREATETABLE`_t1`(
`id`int(11)NOTNULLAUTO_INCREMENT,
`val1`varchar(20)DEFAULTNULL,
`val2`int(11)DEFAULTNULL,
PRIMARYKEY(`id`)
)ENGINE=InnoDBAUTO_INCREMENT=113DEFAULTCHARSET=latin1$$
[sql]viewplainprint?
DELIMITER$$

CREATEDEFINER=`abandonship`@`%`PROCEDURE`P_TestException`()
BEGIN
declare_var,_errintdefault0;
,sqlwarning,notfoundset_err=1;
insertinto_t1(val1,val2)value(2012,'abandonship');
if_err=1then
set_var=2;
endif;

selectcasewhen_var=2then'出錯了'else_varend;

調用該存儲過程將返回:出錯了

④ oracle 存儲過程異常處理

先建一個錯誤跟蹤表
create sequence s_error_id;
CREATE TABLE ERROR_RECORD
(
ERROR_ID NUMBER(10) primary key,
ERROR_CODE NUMBER(10),
ERROR_MSG VARCHAR2(2000),
ERROR_DATE DATE,
ERROR_PROGRAM VARCHAR2(200)
);
--------在過程的例外里向跟蹤表寫入錯誤信息:
create or replace procere day_task is
v_sqlcode ERROR_RECORD.ERROR_CODE%type;
v_msg ERROR_RECORD.error_msg%type;
begin
------program body
exception when others then
--記錄錯誤信息表
v_sqlcode :=sqlcode;
v_msg :=sqlerrm;
insert into error_record(error_code,error_msg,error_date,error_program)
values (v_sqlcode,v_msg,sysdate,『day_task』);
end;

⑤ mysql 存儲過程 異常 是否自動 回滾

是滴,默認是隱式的開始與提交,出現異常會默認自動回滾到開始位置,任何一個使用JDBC操作資料庫的SQL命令,在默認情況下,隱式開始與提交事務。當顯示的調用事物時,就必須顯示使用commit當使用rollback後也要進行commit;

熱點內容
開通了免密為什麼還要密碼 發布:2024-11-27 04:17:42 瀏覽:14
excel導入資料庫java 發布:2024-11-27 04:16:21 瀏覽:623
ps不能存儲bpm 發布:2024-11-27 04:04:12 瀏覽:612
jquery代碼加密 發布:2024-11-27 03:54:51 瀏覽:593
數字密碼人格是什麼原理 發布:2024-11-27 03:46:34 瀏覽:426
華為怎麼看手機的配置 發布:2024-11-27 03:27:42 瀏覽:381
php函數作用域 發布:2024-11-27 03:26:11 瀏覽:176
pythonasteval 發布:2024-11-27 03:21:14 瀏覽:563
電腦伺服器機什麼意思 發布:2024-11-27 03:18:59 瀏覽:837
本地存儲是否允許 發布:2024-11-27 03:08:02 瀏覽:411