目前在學習SQL的rollback的用法
在網路上找到了在新增.更新.刪除時
只要有一筆更新失敗或是要更新.刪除的數量不正確就rollback的方法
http://aixo.pixnet.net/blog/post/38747309-%5Bt-sql%5D-transaction-%E7%94%A8%E6%B3%95
跟
http://blog.xuite.net/danny72.chen/blog/22966476-+%E8%B3%87%E6%96%99%E5%BA%AB+SQL+Server+%E9%80%B2%E9%9A%8E%E6%A6%82%E5%BF%B5+
我依照範例去改
在MSSQL(SQL SERVER2000)的資料庫測試是成功的
但是ORACLE資料庫宣告跟指令的方式不同
網路上只有找到變數宣告給值DECLARE chk NUMBER(1);
--宣告chk := 0
--給值
但是IF @@Error <> 0
這個判斷在ORACLE中有什麼方法可以代替@@ERROR
另外更改.刪除的地方則是使用IF @@Error <> 0
跟@@ROWCOUNT <>
要更新或刪除的筆數
當作判斷@@ROWCOUNT
在ORACLE又有什麼能夠代替的
DECLARE
v_num1 INTEGER := 10;
v_num2 INTEGER := 0;
v_result NUMBER;
BEGIN
v_result := v_num1 / v_num2;
DBMS_OUTPUT.PUT_LINE ('v_result:' || v_result);
EXCEPTION
WHEN ZERO_DIVIDE
THEN
DBMS_OUTPUT.PUT_LINE ('Divided by zero');
END;