Tôi có một số thủ tục được viết bằng Oracle. Thật không may tôi không thể hiển thị mã của nó. Một nơi nào đó bên trong nó là chọn nơi thực hiện bị rơi vì thiếu dữ liệu cần thiết. Nó trông như thế nàySự khác biệt giữa gọi oracle và thực hiện trong bối cảnh lỗi khi ném
select value into l_value
from config
where code = upper(p_code);
Vì vậy, khi tôi gọi thủ tục này như thế này (trong SqlDeveloper)
execute some_package.some_procedure('CODE');
nó ném
Error report -
ORA-01403: no data found
ORA-06512: at "XXXXXXXXXXXXXXXXXXX", line 111
ORA-06512: at "XXXXXXXXXXXXXXXXXXX", line 111
ORA-06512: at line 1
01403. 00000 - "no data found"
*Cause: No data was found from the objects.
*Action: There was no data from the objects which may be due to end of fetch.
Nhưng khi tôi gọi nó là như thế này
call some_package.some_procedure('CODE');
sự cố ở lần thứ e cùng một nơi (như tôi có thể đề xuất từ kết quả, được lưu trữ trong DB), nhưng nó không ném một ngoại lệ.
some_package.some_procedure('CODE') succeeded.
Điều gì xảy ra? Và tại sao có sự khác biệt như vậy?