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 |
|---|---|---|
| 4 | 7 |
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