儲存過程中異常的使用 示例

2021-08-31 12:31:47 字數 959 閱讀 1450

儲存過程中異常的使用_示例

create or replace procedure update_sal(e_name in varchar2, e_sal in number) is

/** 宣告異常 */

not_found exception;

begin

/** 更改指定ename對應的工資 */

update emp e set e.sal = e_sal where lower(e.ename) = lower(e_name);

if sql%notfound then

/** 如果e_name不存在,資料回滾,並丟擲異常 */

rollback;

raise not_found;

else

/** 如果e_name存在,事務提交 */

commit;

dbms_output.put_line('update sal success');

end if;

exception

when not_found then

/** e_name不存在丟擲的異常 */

dbms_output.put_line('there is not name ' || e_name || ' exits');

when others then

dbms_output.put_line('others exception');

end;

/

儲存過程的呼叫:

1. exec update_sal('scott1',3333);

列印的資訊 : there is not name scott1 exits

2. exec update_sal('scott',3333);

列印的資訊 : update sal success

Mysql的儲存過程中的異常

以前看到一篇mysql的儲存過程,覺得很簡單 要使用mysql的儲存過程,需要 1 mysql的版本在5.0以上,低版本的海不支援儲存過程 2 資料表應該是innodb的,其他格式的不支援事務 做乙個實驗 建立兩個表,在儲存過程中向兩個表插入資料,使向第一表的插入操作執行成功,向第二個表的操作執行失...

Oracle儲存過程中的異常處理

1.問題 oracle中可以用dbms output.put line來列印提示資訊,但是很容易緩衝區就溢位了。可以用dbms output.enable 1000000 來設定緩衝區的大小。但是有大小,就有可能再溢位 程式寫得太爛,錯誤不斷,不好意思 於是想把異常資訊寫到乙個表中。2.建表 這個容...

mysql儲存過程中的異常處理

定義異常捕獲型別及處理方法 declarehandler action handler for condition value condition value statement handler action continue exit undo condition value mysql erro...