G-2160
🆓Warning
Avoid initializing variables using functions in the declaration section.
Reason
If your initialization fails, you will not be able to handle the error in your exceptions block.
Example
Non-Compliant Example
declare co_department_id constant integer := 100; l_department_name departments.department_name%type := department_api.name_by_id(in_id => co_department_id); begin sys.dbms_output.put_line(l_department_name); end; /
Issues
Line | Column | Message |
---|---|---|
3 | 55 |
★★★★★
Compliant Solution -
declare co_department_id constant integer := 100; co_unkown_name constant departments.department_name%type := 'unknown'; l_department_name departments.department_name%type; begin <<init>> begin l_department_name := department_api.name_by_id(in_id => co_department_id); exception when value_error then l_department_name := co_unkown_name; end init; sys.dbms_output.put_line(l_department_name); end; /
References
- same as Trivadis G-2160