set serveroutput on declare type MONTH_TYPE is table of varchar(20) index by binary_integer; month_table MONTH_TYPE; begin month_table(1) := 'Jan'; month_table(2) := 'Feb'; if month_table(3) is null then dbms_output.put_line( 'March is not defined.' ); end if; end; /What you'll get? You may think the print line.
However, you'll get an error:
ERROR at line 1: ORA-01403: no data found ORA-06512: at line 9Well, associative array is working the same way as table (is that why it's defined as TABLE of ...), and month_table is similar to select value from month_table into v..., so need to have an exception handling.
set serveroutput on declare type MONTH_TYPE is table of varchar(20) index by binary_integer; month_table MONTH_TYPE; begin month_table(1) := 'Jan'; month_table(2) := 'Feb'; if month_table(3) is null then dbms_output.put_line( 'March is not defined.' ); end if; exception when NO_DATA_FOUND then dbms_output.put_line( 'March is not found.' ); end; /Then, you'll get: March is not found.