條款三十四,避免在 SQL 語句運行與 implicit cursor 中間使用 procedure 或是 function。
像是下面的例子,這邊先刪除了一些資料,後續要用 SQL%ROWCOUNT 去判斷刪除的筆數,但中間卻調用了其它 function,以致於 SQL%ROWCOUNT 的值不如我們的預期。
1 | CREATE PROCEDURE remove_emp_and_process (in_id IN emp.empno%TYPE) |
所以我們必須避免在 SQL 語句運行與 implicit cursor 中間使用 procedure 或是 function。