在 "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;
你用TOAD應該就可以簡易看到DBMS_OUTPUT訊息。
資料庫裡會不同操作有不同的隔離層級,有可能有transaction的批量操作
更細節蠻建議參考 https://jums.gitbook.io/mysql-shi-zhan-45-jiang/03-shi-wu-ge-li-wei-shi-mo-ni-gai-le-wo-huan-kan-bu-jian