Best Way to Handle No Data Found in a Procedure?
When it comes to data issues (too many rows, no data found, etc), in Oracle stored procedures, I am used to having exceptions raised that I then handle. PL/pgSQL does not raise exceptions for the same conditions in the same way. The Postgres docs are pretty complete though and through some reading this weekend, I discovered a new keyword.
For example, assuming that I have this table (which is empty) in both Oracle and Postgres:
CREATE TABLE empty_table ( empty_col integer );
In Oracle this procedure:
CREATE OR REPLACE PROCEDURE no_data_found_test
AS
v_int_field INTEGER;
BEGIN
SELECT empty_col
INTO v_int_field
FROM empty_table;
END;
When run:
BEGIN no_data_found_test; END;
Produces an error:
Error starting at line 1 in command: BEGIN no_data_found_test; END; Error report: ORA-01403: no data found ORA-06512: at "HR.NO_DATA_FOUND_TEST", line 6 ORA-06512: at line 2 01403.
Click to continue reading “Best Way to Handle No Data Found in a Procedure?”
Read the rest of this entry »



