Oracle PL/SQL 如何得知 DML 是否成功與處理的筆數


在 "Insert、Update、Delete" 之後, 可利用 "SQL%RowCount", 即可滿足上述的需求.

若 "SQL%RowCount = 0", 則表示 "DML 無處理任何資料" or "DML 執行失敗".

若 "SQL%RowCount > 0", 則表示 "DML 有處理資料成功", 且 "其值" 便是處理的資料筆數.

 程式碼
-- 建立暫時 Table
create table tom1 ( aa varchar2(100) );

-- 新增測試資料
insert into tom1 values( '1' );
insert into tom1 values( '11' );
insert into tom1 values( '2' );

-- 測試
begin

-- 新增
insert into tom1 values( '3' );
dbms_output.put_line( '新增筆數 = ' || SQL%ROWCOUNT );

-- 修改
update tom1
set aa = 'test' || aa
where aa like '1%';

dbms_output.put_line( '修改筆數 = ' || SQL%ROWCOUNT );

-- 刪除
delete
from tom1;

dbms_output.put_line( '刪除筆數 = ' || SQL%ROWCOUNT );

commit;
end;

-- 移除暫時 Table
drop table tom1;

-- 結果顯示
新增筆數 = 1
修改筆數 = 2
刪除筆數 = 4



Related Posts Plugin for WordPress, Blogger...