From cc5558a413891d032796da17bd17d9874311aea0 Mon Sep 17 00:00:00 2001 From: Philipp Salvisberg Date: Tue, 19 Mar 2024 11:03:36 +0000 Subject: [PATCH] Deployed 0cb490e5 to main with MkDocs 1.3.1 and mike 1.1.2 --- .../1-general/g-1010/index.html | 32 +- .../1-general/g-1020/index.html | 40 +-- .../1-general/g-1030/index.html | 16 +- .../1-general/g-1040/index.html | 20 +- .../1-general/g-1050/index.html | 16 +- .../1-general/g-1060/index.html | 8 +- .../1-general/g-1070/index.html | 16 +- .../1-general/g-1080/index.html | 10 +- .../1-general/g-2110/index.html | 8 +- .../1-general/g-2120/index.html | 8 +- .../1-general/g-2130/index.html | 8 +- .../1-general/g-2135/index.html | 12 +- .../1-general/g-2140/index.html | 8 +- .../1-general/g-2145/index.html | 8 +- .../1-general/g-2150/index.html | 8 +- .../1-general/g-2160/index.html | 10 +- .../1-general/g-2170/index.html | 16 +- .../1-general/g-2180/index.html | 16 +- .../1-general/g-2185/index.html | 16 +- .../1-general/g-2190/index.html | 8 +- .../2-numeric-data-types/g-2210/index.html | 8 +- .../2-numeric-data-types/g-2220/index.html | 8 +- .../2-numeric-data-types/g-2230/index.html | 8 +- .../3-character-data-types/g-2310/index.html | 12 +- .../3-character-data-types/g-2320/index.html | 8 +- .../3-character-data-types/g-2330/index.html | 12 +- .../3-character-data-types/g-2340/index.html | 8 +- .../4-boolean-data-types/g-2410/index.html | 20 +- .../5-large-objects/g-2510/index.html | 12 +- .../6-cursor-variables/g-2610/index.html | 10 +- .../3-dml-and-sql/1-general/g-3110/index.html | 18 +- .../3-dml-and-sql/1-general/g-3115/index.html | 8 +- .../3-dml-and-sql/1-general/g-3120/index.html | 34 +-- .../3-dml-and-sql/1-general/g-3130/index.html | 16 +- .../3-dml-and-sql/1-general/g-3140/index.html | 16 +- .../3-dml-and-sql/1-general/g-3145/index.html | 8 +- .../3-dml-and-sql/1-general/g-3150/index.html | 8 +- .../3-dml-and-sql/1-general/g-3160/index.html | 18 +- .../3-dml-and-sql/1-general/g-3170/index.html | 16 +- .../3-dml-and-sql/1-general/g-3180/index.html | 12 +- .../3-dml-and-sql/1-general/g-3182/index.html | 8 +- .../3-dml-and-sql/1-general/g-3183/index.html | 8 +- .../3-dml-and-sql/1-general/g-3185/index.html | 28 +- .../3-dml-and-sql/1-general/g-3190/index.html | 14 +- .../3-dml-and-sql/1-general/g-3195/index.html | 12 +- .../2-bulk-operations/g-3210/index.html | 12 +- .../2-bulk-operations/g-3220/index.html | 22 +- .../3-transaction-control/g-3310/index.html | 12 +- .../3-transaction-control/g-3320/index.html | 18 +- .../3-transaction-control/g-3330/index.html | 14 +- .../1-cursor/g-4110/index.html | 8 +- .../1-cursor/g-4120/index.html | 12 +- .../1-cursor/g-4130/index.html | 12 +- .../1-cursor/g-4140/index.html | 20 +- .../g-4210/index.html | 40 ++- .../g-4220/index.html | 20 +- .../g-4230/index.html | 8 +- .../g-4240/index.html | 20 +- .../g-4250/index.html | 12 +- .../g-4260/index.html | 8 +- .../g-4270/index.html | 8 +- .../3-flow-control/g-4310/index.html | 24 +- .../3-flow-control/g-4320/index.html | 72 +++-- .../3-flow-control/g-4325/index.html | 16 +- .../3-flow-control/g-4330/index.html | 12 +- .../3-flow-control/g-4340/index.html | 12 +- .../3-flow-control/g-4350/index.html | 16 +- .../3-flow-control/g-4360/index.html | 8 +- .../3-flow-control/g-4365/index.html | 8 +- .../3-flow-control/g-4370/index.html | 36 +-- .../3-flow-control/g-4375/index.html | 12 +- .../3-flow-control/g-4380/index.html | 12 +- .../3-flow-control/g-4385/index.html | 20 +- .../3-flow-control/g-4387/index.html | 20 +- .../3-flow-control/g-4390/index.html | 12 +- .../3-flow-control/g-4395/index.html | 8 +- .../5-exception-handling/g-5010/index.html | 16 +- .../5-exception-handling/g-5020/index.html | 8 +- .../5-exception-handling/g-5030/index.html | 16 +- .../5-exception-handling/g-5040/index.html | 16 +- .../5-exception-handling/g-5050/index.html | 8 +- .../5-exception-handling/g-5060/index.html | 24 +- .../5-exception-handling/g-5070/index.html | 8 +- .../5-exception-handling/g-5080/index.html | 12 +- .../6-dynamic-sql/g-6010/index.html | 8 +- .../6-dynamic-sql/g-6020/index.html | 8 +- .../1-general/g-7110/index.html | 10 +- .../1-general/g-7120/index.html | 18 +- .../1-general/g-7125/index.html | 8 +- .../1-general/g-7130/index.html | 22 +- .../1-general/g-7140/index.html | 12 +- .../1-general/g-7150/index.html | 4 +- .../1-general/g-7160/index.html | 20 +- .../1-general/g-7170/index.html | 44 +-- .../2-packages/g-7220/index.html | 12 +- .../2-packages/g-7230/index.html | 8 +- .../2-packages/g-7250/index.html | 12 +- .../3-procedures/g-7310/index.html | 8 +- .../3-procedures/g-7320/index.html | 8 +- .../3-procedures/g-7330/index.html | 12 +- .../4-functions/g-7410/index.html | 8 +- .../4-functions/g-7420/index.html | 8 +- .../4-functions/g-7430/index.html | 16 +- .../4-functions/g-7440/index.html | 8 +- .../4-functions/g-7450/index.html | 8 +- .../4-functions/g-7460/index.html | 10 +- .../g-7510/index.html | 8 +- .../7-triggers/g-7710/index.html | 20 +- .../7-triggers/g-7720/index.html | 8 +- .../7-triggers/g-7730/index.html | 12 +- .../7-triggers/g-7740/index.html | 20 +- .../8-sequences/g-7810/index.html | 8 +- .../9-sql-macros/g-7910/index.html | 8 +- .../g-8110/index.html | 8 +- .../g-8120/index.html | 14 +- .../g-8210/index.html | 12 +- .../g-8310/index.html | 16 +- .../g-8410/index.html | 16 +- .../g-8510/index.html | 8 +- .../9-function-usage/g-9010/index.html | 8 +- .../9-function-usage/g-9020/index.html | 10 +- .../9-function-usage/g-9030/index.html | 8 +- .../9-function-usage/g-9040/index.html | 8 +- .../PLSQL-and-SQL-Coding-Guidelines.pdf | Bin 3572997 -> 3583652 bytes main/search/search_index.json | 2 +- main/sitemap.xml | 276 +++++++++--------- main/sitemap.xml.gz | Bin 1275 -> 1275 bytes main/stylesheets/extra.css | 4 + 128 files changed, 997 insertions(+), 1005 deletions(-) diff --git a/main/4-language-usage/1-general/g-1010/index.html b/main/4-language-usage/1-general/g-1010/index.html index 926978e0..1377a9f5 100644 --- a/main/4-language-usage/1-general/g-1010/index.html +++ b/main/4-language-usage/1-general/g-1010/index.html @@ -3474,14 +3474,14 @@

Example (bad)

8 9 10
begin
-   begin
-      null;
-   end;
-
-   begin
-      null;
-   end;
-end;
+   begin
+      null;
+   end;
+
+   begin
+      null;
+   end;
+end;
 /
 

Example (good)

@@ -3497,16 +3497,16 @@

Example (good)

10 11 12
begin
-   <<prepare_data>>
-   begin
+   <<prepare_data>>
+   begin
       null;
-   end prepare_data;
-
-   <<process_data>>
-   begin
+   end prepare_data;
+
+   <<process_data>>
+   begin
       null;
-   end process_data;
-end good;
+   end process_data;
+end good;
 /
 
diff --git a/main/4-language-usage/1-general/g-1020/index.html b/main/4-language-usage/1-general/g-1020/index.html index 4eaffe32..47d96920 100644 --- a/main/4-language-usage/1-general/g-1020/index.html +++ b/main/4-language-usage/1-general/g-1020/index.html @@ -3511,31 +3511,31 @@

Example (bad)

<<prepare_data>> begin null; - end; - + end; + <<process_data>> begin null; - end; - + end; + i := co_min_value; <<while_loop>> while (i <= co_max_value) loop i := i + co_increment; - end loop; - + end loop; + <<basic_loop>> loop exit basic_loop when true; - end loop; - + end loop; + <<for_loop>> for i in co_min_value..co_max_value loop sys.dbms_output.put_line(i); - end loop; -end; + end loop; +end; /

Example (good)

@@ -3582,31 +3582,31 @@

Example (good)

<<prepare_data>> begin null; - end prepare_data; - + end prepare_data; + <<process_data>> begin null; - end process_data; - + end process_data; + i := co_min_value; <<while_loop>> while (i <= co_max_value) loop i := i + co_increment; - end loop while_loop; - + end loop while_loop; + <<basic_loop>> loop exit basic_loop when true; - end loop basic_loop; - + end loop basic_loop; + <<for_loop>> for i in co_min_value..co_max_value loop sys.dbms_output.put_line(i); - end loop for_loop; -end; + end loop for_loop; +end; / diff --git a/main/4-language-usage/1-general/g-1030/index.html b/main/4-language-usage/1-general/g-1030/index.html index c5490aa0..0b34e74a 100644 --- a/main/4-language-usage/1-general/g-1030/index.html +++ b/main/4-language-usage/1-general/g-1030/index.html @@ -3485,10 +3485,10 @@

Example (bad)

19
create or replace package body my_package is
    procedure my_proc is
       l_last_name      employees.last_name%type;
-      l_first_name     employees.first_name%type;
-      co_department_id constant departments.department_id%type := 10;
-      e_good           exception;
-   begin
+      l_first_name     employees.first_name%type;
+      co_department_id constant departments.department_id%type := 10;
+      e_good           exception;
+   begin
       select e.last_name
         into l_last_name
         from employees e
@@ -3526,15 +3526,15 @@ 

Example (good)

procedure my_proc is l_last_name employees.last_name%type; co_department_id constant departments.department_id%type := 10; - e_good exception; - begin + e_good exception; + begin select e.last_name into l_last_name from employees e where e.department_id = co_department_id; - raise e_good; - exception + raise e_good; + exception when no_data_found then null; -- handle_no_data_found; when too_many_rows then diff --git a/main/4-language-usage/1-general/g-1040/index.html b/main/4-language-usage/1-general/g-1040/index.html index 30cf48d2..b0cfa2e7 100644 --- a/main/4-language-usage/1-general/g-1040/index.html +++ b/main/4-language-usage/1-general/g-1040/index.html @@ -3507,23 +3507,23 @@

Example (bad)

41
declare
    co_dept_purchasing constant departments.department_id%type := 30;
 begin
-   if 2 = 3 then -- dead code detection works with literals only
-      null; -- some dead code here
+   if 2 = 3 then -- dead code detection works with literals only
+      null; -- some dead code here
    end if;
 
    null; -- some enabled code here
 
    <<my_loop>>
    loop
-      exit my_loop when true;
-      null; -- some dead code here
+      exit my_loop when true;
+      null; -- some dead code here
    end loop my_loop;
 
    null; -- some other enabled code here
 
    case
-      when 1 = 1 and 'x' = 'y' then -- dead code detection works with literals only
-         null; -- some dead code here
+      when 1 = 1 and 'x' = 'y' then -- dead code detection works with literals only
+         null; -- some dead code here
       else
          null; -- some further enabled code here
    end case;
@@ -3534,15 +3534,15 @@ 

Example (bad)

from employees where department_id = co_dept_purchasing or commission_pct is not null - and 5 = 6 -- dead code detection works with literals only - ) + and 5 = 6 -- dead code detection works with literals only + ) -- "or commission_pct is not null" is dead code loop sys.dbms_output.put_line(r_emp.last_name); end loop my_loop2; - return; - null; -- some dead code here + return; + null; -- some dead code here end; /
diff --git a/main/4-language-usage/1-general/g-1050/index.html b/main/4-language-usage/1-general/g-1050/index.html index 5d9d3338..ac5cee52 100644 --- a/main/4-language-usage/1-general/g-1050/index.html +++ b/main/4-language-usage/1-general/g-1050/index.html @@ -3472,10 +3472,10 @@

Example (bad)

4 5 6
begin
-   some_api.setup(in_department_id => 10);
-   some_api.process(in_department_id => 10);
-   some_api.teardown(in_department_id => 10);
-end;
+   some_api.setup(in_department_id => 10);
+   some_api.process(in_department_id => 10);
+   some_api.teardown(in_department_id => 10);
+end;
 /
 

Example (good)

@@ -3495,10 +3495,10 @@

Example (good)

/ begin - some_api.setup(in_department_id => constants_up.co_dept_admin); - some_api.process(in_department_id => constants_up.co_dept_admin); - some_api.teardown(in_department_id => constants_up.co_dept_admin); -end; + some_api.setup(in_department_id => constants_up.co_dept_admin); + some_api.process(in_department_id => constants_up.co_dept_admin); + some_api.teardown(in_department_id => constants_up.co_dept_admin); +end; /
diff --git a/main/4-language-usage/1-general/g-1060/index.html b/main/4-language-usage/1-general/g-1060/index.html index 2142bd84..8a13071a 100644 --- a/main/4-language-usage/1-general/g-1060/index.html +++ b/main/4-language-usage/1-general/g-1060/index.html @@ -3483,13 +3483,13 @@

Example (bad)

employee_id ,last_name ,first_name - ,rid - ) + ,rid + ) select employee_id ,last_name ,first_name - ,rowid - from employees; + ,rowid + from employees; end; / diff --git a/main/4-language-usage/1-general/g-1070/index.html b/main/4-language-usage/1-general/g-1070/index.html index b9cada7a..3aef7ee6 100644 --- a/main/4-language-usage/1-general/g-1070/index.html +++ b/main/4-language-usage/1-general/g-1070/index.html @@ -3471,10 +3471,10 @@

Example (bad)

5 6 7
begin
-   /* comment one -- nested comment two */
-   null;
-   -- comment three /* nested comment four */
-   null;
+   /* comment one -- nested comment two */
+   null;
+   -- comment three /* nested comment four */
+   null;
 end;
 /
 
@@ -3486,10 +3486,10 @@

Example (good)

5 6 7
begin
-   /* comment one, comment two */
-   null;
-   -- comment three, comment four
-   null;
+   /* comment one, comment two */
+   null;
+   -- comment three, comment four
+   null;
 end;
 /
 
diff --git a/main/4-language-usage/1-general/g-1080/index.html b/main/4-language-usage/1-general/g-1080/index.html index b7328a8e..9322ede4 100644 --- a/main/4-language-usage/1-general/g-1080/index.html +++ b/main/4-language-usage/1-general/g-1080/index.html @@ -3485,9 +3485,9 @@

Example (bad)

,emp.salary ,emp.hire_date from employees emp - where emp.salary > co_max_salary - or emp.salary > co_max_salary - order by emp.last_name,emp.first_name; + where emp.salary > co_max_salary + or emp.salary > co_max_salary + order by emp.last_name,emp.first_name; end; / @@ -3511,8 +3511,8 @@

Example (good)

,emp.salary ,emp.hire_date from employees emp - where emp.salary > co_max_salary - order by emp.last_name,emp.first_name; + where emp.salary > co_max_salary + order by emp.last_name,emp.first_name; end; / diff --git a/main/4-language-usage/2-variables-and-types/1-general/g-2110/index.html b/main/4-language-usage/2-variables-and-types/1-general/g-2110/index.html index 0e0b10be..c15cbb07 100644 --- a/main/4-language-usage/2-variables-and-types/1-general/g-2110/index.html +++ b/main/4-language-usage/2-variables-and-types/1-general/g-2110/index.html @@ -3484,8 +3484,8 @@

Example (bad)

16 17
create or replace package body my_package is
    procedure my_proc is
-      l_last_name  varchar2(20 char);
-      co_first_row constant integer := 1;
+      l_last_name  varchar2(20 char);
+      co_first_row constant integer := 1;
    begin
       select e.last_name
         into l_last_name
@@ -3519,8 +3519,8 @@ 

Example (good)

16 17
create or replace package body my_package is
    procedure my_proc is
-      l_last_name  employees.last_name%type;
-      co_first_row constant integer := 1;
+      l_last_name  employees.last_name%type;
+      co_first_row constant integer := 1;
    begin
       select e.last_name
         into l_last_name
diff --git a/main/4-language-usage/2-variables-and-types/1-general/g-2120/index.html b/main/4-language-usage/2-variables-and-types/1-general/g-2120/index.html
index 049ee639..6a6558d9 100644
--- a/main/4-language-usage/2-variables-and-types/1-general/g-2120/index.html
+++ b/main/4-language-usage/2-variables-and-types/1-general/g-2120/index.html
@@ -3478,8 +3478,8 @@ 

Example (bad)

9 10
create or replace package body my_package is
    procedure my_proc is
-      subtype big_string_type is varchar2(1000 char);
-      l_note big_string_type;
+      subtype big_string_type is varchar2(1000 char);
+      l_note big_string_type;
    begin
       l_note := some_function();
       do_something(l_note);
@@ -3508,8 +3508,8 @@ 

Example (good)

create or replace package body my_package is procedure my_proc is - l_note types_up.big_string_type; - begin + l_note types_up.big_string_type; + begin l_note := some_function(); do_something(l_note); end my_proc; diff --git a/main/4-language-usage/2-variables-and-types/1-general/g-2130/index.html b/main/4-language-usage/2-variables-and-types/1-general/g-2130/index.html index bda0ce9c..f02cf1f6 100644 --- a/main/4-language-usage/2-variables-and-types/1-general/g-2130/index.html +++ b/main/4-language-usage/2-variables-and-types/1-general/g-2130/index.html @@ -3504,8 +3504,8 @@

Example (bad)

8 9
create or replace package body my_package is
    procedure my_proc is
-      l_note varchar2(1000 char);
-   begin
+      l_note varchar2(1000 char);
+   begin
       l_note := some_function();
       do_something(l_note);
    end my_proc;
@@ -3533,8 +3533,8 @@ 

Example (good)

create or replace package body my_package is procedure my_proc is - l_note types_up.big_string_type; - begin + l_note types_up.big_string_type; + begin l_note := some_function(); do_something(l_note); end my_proc; diff --git a/main/4-language-usage/2-variables-and-types/1-general/g-2135/index.html b/main/4-language-usage/2-variables-and-types/1-general/g-2135/index.html index 01edd899..9b0b61fb 100644 --- a/main/4-language-usage/2-variables-and-types/1-general/g-2135/index.html +++ b/main/4-language-usage/2-variables-and-types/1-general/g-2135/index.html @@ -3498,8 +3498,8 @@

Example (bad)

from employees emp where emp.employee_id = co_employee_id; - l_message := co_hello || l_last_name; - exception + l_message := co_hello || l_last_name; + exception when no_data_found then null; -- handle_no_data_found; when too_many_rows then @@ -3543,10 +3543,10 @@

Example (good)

from employees emp where emp.employee_id = co_employee_id; - l_message := co_hello || l_last_name; - - message_api.send_message(l_message); - exception + l_message := co_hello || l_last_name; + + message_api.send_message(l_message); + exception when no_data_found then null; -- handle_no_data_found; when too_many_rows then diff --git a/main/4-language-usage/2-variables-and-types/1-general/g-2140/index.html b/main/4-language-usage/2-variables-and-types/1-general/g-2140/index.html index fcb429eb..9a746f75 100644 --- a/main/4-language-usage/2-variables-and-types/1-general/g-2140/index.html +++ b/main/4-language-usage/2-variables-and-types/1-general/g-2140/index.html @@ -3472,8 +3472,8 @@

Example (bad)

4 5 6
declare
-   l_note big_string_type := null;
-begin
+   l_note big_string_type := null;
+begin
    sys.dbms_output.put_line(l_note);
 end;
 /
@@ -3485,8 +3485,8 @@ 

Example (good)

4 5 6
declare
-   l_note big_string_type;
-begin
+   l_note big_string_type;
+begin
    sys.dbms_output.put_line(l_note);
 end;
 /
diff --git a/main/4-language-usage/2-variables-and-types/1-general/g-2145/index.html b/main/4-language-usage/2-variables-and-types/1-general/g-2145/index.html
index b6ad7c95..c8dfa978 100644
--- a/main/4-language-usage/2-variables-and-types/1-general/g-2145/index.html
+++ b/main/4-language-usage/2-variables-and-types/1-general/g-2145/index.html
@@ -3484,8 +3484,8 @@ 

Example (bad)

begin l_function_result := maintenance.get_config(co_parallel_degree); if l_function_result is not null then - l_parallel_degree := l_parallel_degree; - do_something(l_parallel_degree); + l_parallel_degree := l_parallel_degree; + do_something(l_parallel_degree); end if; end; / @@ -3509,8 +3509,8 @@

Example (good)

begin l_function_result := maintenance.get_config(co_parallel_degree); if l_function_result is not null then - l_parallel_degree := l_function_result; - do_something(l_parallel_degree); + l_parallel_degree := l_function_result; + do_something(l_parallel_degree); end if; end; / diff --git a/main/4-language-usage/2-variables-and-types/1-general/g-2150/index.html b/main/4-language-usage/2-variables-and-types/1-general/g-2150/index.html index fbcd20cb..bd7629ae 100644 --- a/main/4-language-usage/2-variables-and-types/1-general/g-2150/index.html +++ b/main/4-language-usage/2-variables-and-types/1-general/g-2150/index.html @@ -3476,8 +3476,8 @@

Example (bad)

8
declare
    l_value integer;
 begin
-   if l_value = null then
-      null;
+   if l_value = null then
+      null;
    end if;
 end;
 /
@@ -3493,8 +3493,8 @@ 

Example (good)

8
declare
    l_value integer;
 begin
-   if l_value is null then
-      null;
+   if l_value is null then
+      null;
    end if;
 end;
 /
diff --git a/main/4-language-usage/2-variables-and-types/1-general/g-2160/index.html b/main/4-language-usage/2-variables-and-types/1-general/g-2160/index.html
index fbf26c85..c46523e5 100644
--- a/main/4-language-usage/2-variables-and-types/1-general/g-2160/index.html
+++ b/main/4-language-usage/2-variables-and-types/1-general/g-2160/index.html
@@ -3475,9 +3475,9 @@ 

Example (bad)

7 8
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
+   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;
 /
@@ -3505,8 +3505,8 @@ 

Example (good)

begin <<init>> begin - l_department_name := department_api.name_by_id(in_id => co_department_id); - exception + 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; diff --git a/main/4-language-usage/2-variables-and-types/1-general/g-2170/index.html b/main/4-language-usage/2-variables-and-types/1-general/g-2170/index.html index 9226dd47..82b2ac6e 100644 --- a/main/4-language-usage/2-variables-and-types/1-general/g-2170/index.html +++ b/main/4-language-usage/2-variables-and-types/1-general/g-2170/index.html @@ -3490,12 +3490,12 @@

Example (bad)

co_main constant user_objects.object_name%type := 'test_main'; co_sub constant user_objects.object_name%type := 'test_sub'; co_sep constant user_objects.object_name%type := ' - '; - l_variable user_objects.object_name%type := co_main; - begin + l_variable user_objects.object_name%type := co_main; + begin <<sub>> declare - l_variable user_objects.object_name%type := co_sub; - begin + l_variable user_objects.object_name%type := co_sub; + begin sys.dbms_output.put_line(l_variable || co_sep || main.l_variable); @@ -3529,12 +3529,12 @@

Example (good)

co_main constant user_objects.object_name%type := 'test_main'; co_sub constant user_objects.object_name%type := 'test_sub'; co_sep constant user_objects.object_name%type := ' - '; - l_main_variable user_objects.object_name%type := co_main; - begin + l_main_variable user_objects.object_name%type := co_main; + begin <<sub>> declare - l_sub_variable user_objects.object_name%type := co_sub; - begin + l_sub_variable user_objects.object_name%type := co_sub; + begin sys.dbms_output.put_line(l_sub_variable || co_sep || l_main_variable); diff --git a/main/4-language-usage/2-variables-and-types/1-general/g-2180/index.html b/main/4-language-usage/2-variables-and-types/1-general/g-2180/index.html index 9841a51b..11e37f70 100644 --- a/main/4-language-usage/2-variables-and-types/1-general/g-2180/index.html +++ b/main/4-language-usage/2-variables-and-types/1-general/g-2180/index.html @@ -3478,10 +3478,10 @@

Example (bad)

10 11 12
declare
-   "sal+comm"     integer;               -- violates also naming conventions (G-9102)
-   "my constant"  constant integer := 1; -- violates also naming conventions (G-9114)
-   "my exception" exception;             -- violates also naming conventsion (G-9113)
-begin
+   "sal+comm"     integer;               -- violates also naming conventions (G-9102)
+   "my constant"  constant integer := 1; -- violates also naming conventions (G-9114)
+   "my exception" exception;             -- violates also naming conventsion (G-9113)
+begin
    "sal+comm" := "my constant";
    do_something("sal+comm");
 exception
@@ -3503,10 +3503,10 @@ 

Example (good)

10 11 12
declare
-   l_sal_comm     integer;
-   co_my_constant constant integer := 1;
-   e_my_exception exception;
-begin
+   l_sal_comm     integer;
+   co_my_constant constant integer := 1;
+   e_my_exception exception;
+begin
    l_sal_comm := co_my_constant;
    do_something(l_sal_comm);
 exception
diff --git a/main/4-language-usage/2-variables-and-types/1-general/g-2185/index.html b/main/4-language-usage/2-variables-and-types/1-general/g-2185/index.html
index 0a4415bb..1ff3b045 100644
--- a/main/4-language-usage/2-variables-and-types/1-general/g-2185/index.html
+++ b/main/4-language-usage/2-variables-and-types/1-general/g-2185/index.html
@@ -3478,10 +3478,10 @@ 

Example (bad)

10 11 12
declare
-   i integer;
-   c constant integer := 1; -- violates also naming conventions (G-9114)
-   e exception;             -- violates also naming conventions (G-9113)
-begin
+   i integer;
+   c constant integer := 1; -- violates also naming conventions (G-9114)
+   e exception;             -- violates also naming conventions (G-9113)
+begin
    i := c;
    do_something(i);
 exception
@@ -3503,10 +3503,10 @@ 

Example (good)

10 11 12
declare
-   l_sal_comm     integer;
-   co_my_constant constant integer := 1;
-   e_my_exception exception;
-begin
+   l_sal_comm     integer;
+   co_my_constant constant integer := 1;
+   e_my_exception exception;
+begin
    l_sal_comm := co_my_constant;
    do_something(l_sal_comm);
 exception
diff --git a/main/4-language-usage/2-variables-and-types/1-general/g-2190/index.html b/main/4-language-usage/2-variables-and-types/1-general/g-2190/index.html
index 4635c553..d97a699c 100644
--- a/main/4-language-usage/2-variables-and-types/1-general/g-2190/index.html
+++ b/main/4-language-usage/2-variables-and-types/1-general/g-2190/index.html
@@ -3481,8 +3481,8 @@ 

Example (bad)

begin update departments set department_name = l_department_name - where rowid = l_rowid; -end; + where rowid = l_rowid; +end; /

Example (good)

@@ -3500,8 +3500,8 @@

Example (good)

begin update departments set department_name = l_department_name - where department_id = l_department_id; -end; + where department_id = l_department_id; +end; /
diff --git a/main/4-language-usage/2-variables-and-types/2-numeric-data-types/g-2210/index.html b/main/4-language-usage/2-variables-and-types/2-numeric-data-types/g-2210/index.html index 43acb9de..556757a8 100644 --- a/main/4-language-usage/2-variables-and-types/2-numeric-data-types/g-2210/index.html +++ b/main/4-language-usage/2-variables-and-types/2-numeric-data-types/g-2210/index.html @@ -3470,8 +3470,8 @@

Example (bad)

2 3 4
create or replace package types_up is
-   subtype salary_type is number;
-end types_up;
+   subtype salary_type is number;
+end types_up;
 /
 

Example (good)

@@ -3479,8 +3479,8 @@

Example (good)

2 3 4
create or replace package types_up is
-   subtype salary_type is number(5,1);
-end types_up;
+   subtype salary_type is number(5,1);
+end types_up;
 /
 
diff --git a/main/4-language-usage/2-variables-and-types/2-numeric-data-types/g-2220/index.html b/main/4-language-usage/2-variables-and-types/2-numeric-data-types/g-2220/index.html index f81695e8..4806c6a0 100644 --- a/main/4-language-usage/2-variables-and-types/2-numeric-data-types/g-2220/index.html +++ b/main/4-language-usage/2-variables-and-types/2-numeric-data-types/g-2220/index.html @@ -3485,8 +3485,8 @@

Example (bad)

12 13 14
declare
-   l_result       number(9,0)          := 0;   -- violates also G-2130, G-2230
-   co_upper_bound constant pls_integer := 1e8;
+   l_result       number(9,0)          := 0;   -- violates also G-2130, G-2230
+   co_upper_bound constant pls_integer := 1e8;
 begin
    <<burning_cpu>>
    for i in 1..co_upper_bound
@@ -3514,8 +3514,8 @@ 

Example (good)

12 13 14
declare
-   l_result       pls_integer          := 0;
-   co_upper_bound constant pls_integer := 1e8;
+   l_result       pls_integer          := 0;
+   co_upper_bound constant pls_integer := 1e8;
 begin
    <<burning_less_cpu>>
    for i in 1..co_upper_bound
diff --git a/main/4-language-usage/2-variables-and-types/2-numeric-data-types/g-2230/index.html b/main/4-language-usage/2-variables-and-types/2-numeric-data-types/g-2230/index.html
index 03f8d6db..605b0af2 100644
--- a/main/4-language-usage/2-variables-and-types/2-numeric-data-types/g-2230/index.html
+++ b/main/4-language-usage/2-variables-and-types/2-numeric-data-types/g-2230/index.html
@@ -3481,8 +3481,8 @@ 

Example (bad)

12 13 14
declare
-   l_result       number(9,0)          := 0;   -- violates also G-2130, G-2220
-   co_upper_bound constant pls_integer := 1e8;
+   l_result       number(9,0)          := 0;   -- violates also G-2130, G-2220
+   co_upper_bound constant pls_integer := 1e8;
 begin
    <<burning_cpu>>
    for i in 1..co_upper_bound
@@ -3510,8 +3510,8 @@ 

Example (good)

12 13 14
declare
-   l_result       simple_integer       := 0;
-   co_upper_bound constant pls_integer := 1e8;
+   l_result       simple_integer       := 0;
+   co_upper_bound constant pls_integer := 1e8;
 begin
    <<burning_cpu>>
    for i in 1..co_upper_bound
diff --git a/main/4-language-usage/2-variables-and-types/3-character-data-types/g-2310/index.html b/main/4-language-usage/2-variables-and-types/3-character-data-types/g-2310/index.html
index 76ff1c62..7c0e207f 100644
--- a/main/4-language-usage/2-variables-and-types/3-character-data-types/g-2310/index.html
+++ b/main/4-language-usage/2-variables-and-types/3-character-data-types/g-2310/index.html
@@ -3472,8 +3472,8 @@ 

Example (bad)

4 5
create or replace package types_up
 is
-   subtype description_type is char(200);
-end types_up;
+   subtype description_type is char(200);
+end types_up;
 /
 

Unexpected trailing spaces can lead to wrong results.

@@ -3488,8 +3488,8 @@

Example (bad)

9
with
    dept as (
       select cast(department_name as varchar2(30 char)) as dname_vc2
-            ,cast(department_name as char(30 char)) as dname_char
-        from departments
+            ,cast(department_name as char(30 char)) as dname_char
+        from departments
    )
 select count(*)
   from dept
@@ -3508,8 +3508,8 @@ 

Example (good)

4 5
create or replace package types_up
 is
-   subtype description_type is varchar2(200 char);
-end types_up;
+   subtype description_type is varchar2(200 char);
+end types_up;
 /
 
diff --git a/main/4-language-usage/2-variables-and-types/3-character-data-types/g-2320/index.html b/main/4-language-usage/2-variables-and-types/3-character-data-types/g-2320/index.html index b624936d..d404a9f0 100644 --- a/main/4-language-usage/2-variables-and-types/3-character-data-types/g-2320/index.html +++ b/main/4-language-usage/2-variables-and-types/3-character-data-types/g-2320/index.html @@ -3470,8 +3470,8 @@

Example (bad)

2 3 4
create or replace package types_up is
-   subtype description_type is varchar(200);
-end types_up;
+   subtype description_type is varchar(200);
+end types_up;
 /
 

Example (good)

@@ -3479,8 +3479,8 @@

Example (good)

2 3 4
create or replace package types_up is
-   subtype description_type is varchar2(200 char);
-end types_up;
+   subtype description_type is varchar2(200 char);
+end types_up;
 /
 
diff --git a/main/4-language-usage/2-variables-and-types/3-character-data-types/g-2330/index.html b/main/4-language-usage/2-variables-and-types/3-character-data-types/g-2330/index.html index 094ca128..2e6b4c4c 100644 --- a/main/4-language-usage/2-variables-and-types/3-character-data-types/g-2330/index.html +++ b/main/4-language-usage/2-variables-and-types/3-character-data-types/g-2330/index.html @@ -3477,14 +3477,14 @@

Example (bad)

9 10 11
create or replace package body constants_up is
-   co_null_string constant types_up.text := '';
-
+   co_null_string constant types_up.text := '';
+
    function null_string return varchar2
       deterministic
    is
    begin
-      return co_null_string;
-   end null_string;
+      return co_null_string;
+   end null_string;
 end constants_up;
 /
 
@@ -3502,8 +3502,8 @@

Example (good)

deterministic is begin - return null; - end empty_string; + return null; + end empty_string; end constants_up; /
diff --git a/main/4-language-usage/2-variables-and-types/3-character-data-types/g-2340/index.html b/main/4-language-usage/2-variables-and-types/3-character-data-types/g-2340/index.html index 6290f929..54656cb2 100644 --- a/main/4-language-usage/2-variables-and-types/3-character-data-types/g-2340/index.html +++ b/main/4-language-usage/2-variables-and-types/3-character-data-types/g-2340/index.html @@ -3471,8 +3471,8 @@

Example (bad)

2 3 4
create or replace package types_up is
-   subtype description_type is varchar2(200);
-end types_up;
+   subtype description_type is varchar2(200);
+end types_up;
 /
 

Example (good)

@@ -3480,8 +3480,8 @@

Example (good)

2 3 4
create or replace package types_up is
-   subtype description_type is varchar2(200 char);
-end types_up;
+   subtype description_type is varchar2(200 char);
+end types_up;
 /
 
diff --git a/main/4-language-usage/2-variables-and-types/4-boolean-data-types/g-2410/index.html b/main/4-language-usage/2-variables-and-types/4-boolean-data-types/g-2410/index.html index d39b781d..8ef0407d 100644 --- a/main/4-language-usage/2-variables-and-types/4-boolean-data-types/g-2410/index.html +++ b/main/4-language-usage/2-variables-and-types/4-boolean-data-types/g-2410/index.html @@ -3495,8 +3495,8 @@

Example (bad)

13
declare
    co_newfile constant pls_integer := 1000;
    co_oldfile constant pls_integer := 500;
-   l_bigger   pls_integer;
-begin
+   l_bigger   pls_integer;
+begin
    if co_newfile < co_oldfile then
       l_bigger := constants_up.co_numeric_true;
    else
@@ -3522,10 +3522,10 @@ 

Example (better)

13
declare
    co_newfile constant pls_integer := 1000;
    co_oldfile constant pls_integer := 500;
-   l_bigger   boolean;
-begin
-   if co_newfile < co_oldfile then
-      l_bigger := true;
+   l_bigger   boolean;
+begin
+   if co_newfile < co_oldfile then
+      l_bigger := true;
    else
       l_bigger := false;
    end if;
@@ -3545,10 +3545,10 @@ 

Example (good)

9
declare
    co_newfile constant pls_integer := 1000;
    co_oldfile constant pls_integer := 500;
-   l_bigger   boolean;
-begin
-   l_bigger := nvl(co_newfile < co_oldfile,false);
-   do_something(l_bigger);
+   l_bigger   boolean;
+begin
+   l_bigger := nvl(co_newfile < co_oldfile,false);
+   do_something(l_bigger);
 end;
 /
 
diff --git a/main/4-language-usage/2-variables-and-types/5-large-objects/g-2510/index.html b/main/4-language-usage/2-variables-and-types/5-large-objects/g-2510/index.html index 75d883b9..ae206b43 100644 --- a/main/4-language-usage/2-variables-and-types/5-large-objects/g-2510/index.html +++ b/main/4-language-usage/2-variables-and-types/5-large-objects/g-2510/index.html @@ -3475,9 +3475,9 @@

Example (bad)

6 7 8
declare
-   l_long long;     -- violates also G-2130
-   l_raw  long raw; -- violates also G-2130
-begin
+   l_long long;     -- violates also G-2130
+   l_raw  long raw; -- violates also G-2130
+begin
    do_something(l_long);
    do_something(l_raw);
 end;
@@ -3492,9 +3492,9 @@ 

Example (good)

6 7 8
declare
-   l_long clob;
-   l_raw  blob;
-begin
+   l_long clob;
+   l_raw  blob;
+begin
    do_something(l_long);
    do_something(l_raw);
 end;
diff --git a/main/4-language-usage/2-variables-and-types/6-cursor-variables/g-2610/index.html b/main/4-language-usage/2-variables-and-types/6-cursor-variables/g-2610/index.html
index d1a67a15..8c300a80 100644
--- a/main/4-language-usage/2-variables-and-types/6-cursor-variables/g-2610/index.html
+++ b/main/4-language-usage/2-variables-and-types/6-cursor-variables/g-2610/index.html
@@ -3481,9 +3481,9 @@ 

Example (bad)

13 14 15
declare
-   type local_weak_cursor_type is ref cursor;
-   c_data local_weak_cursor_type;
-begin
+   type local_weak_cursor_type is ref cursor;
+   c_data local_weak_cursor_type;
+begin
    if configuration.use_employee then
       open c_data for
          select e.employee_id,e.first_name,e.last_name
@@ -3511,8 +3511,8 @@ 

Example (good)

12 13 14
declare
-   c_data sys_refcursor;
-begin
+   c_data sys_refcursor;
+begin
    if configuration.use_employee then
       open c_data for
          select e.employee_id,e.first_name,e.last_name
diff --git a/main/4-language-usage/3-dml-and-sql/1-general/g-3110/index.html b/main/4-language-usage/3-dml-and-sql/1-general/g-3110/index.html
index ef5af3a6..a854a9f1 100644
--- a/main/4-language-usage/3-dml-and-sql/1-general/g-3110/index.html
+++ b/main/4-language-usage/3-dml-and-sql/1-general/g-3110/index.html
@@ -3481,8 +3481,8 @@ 

Example (bad)

13
create or replace package body dept_api is
    procedure ins_dept(in_dept_row in dept%rowtype) is
    begin
-      insert into departments
-      values (
+      insert into departments
+      values (
          departments_seq.nextval
         ,in_dept_row.department_name
         ,in_dept_row.manager_id
@@ -3513,13 +3513,13 @@ 

Example (good)

18
create or replace package body dept_api is
    procedure ins_dept(in_dept_row in dept%rowtype) is
    begin
-      insert into departments (
-         department_id
-        ,department_name
-        ,manager_id
-        ,location_id
-      )
-      values (
+      insert into departments (
+         department_id
+        ,department_name
+        ,manager_id
+        ,location_id
+      )
+      values (
          departments_seq.nextval
         ,in_dept_row.department_name
         ,in_dept_row.manager_id
diff --git a/main/4-language-usage/3-dml-and-sql/1-general/g-3115/index.html b/main/4-language-usage/3-dml-and-sql/1-general/g-3115/index.html
index c182a65b..010e6c1b 100644
--- a/main/4-language-usage/3-dml-and-sql/1-general/g-3115/index.html
+++ b/main/4-language-usage/3-dml-and-sql/1-general/g-3115/index.html
@@ -3469,13 +3469,13 @@ 

Reason

Example (bad)

1
 2
update employees
-   set first_name = first_name;
-
+ set first_name = first_name; +

Example (good)

1
 2
update employees
-   set first_name = initcap(first_name);
-
+ set first_name = initcap(first_name); +
diff --git a/main/4-language-usage/3-dml-and-sql/1-general/g-3120/index.html b/main/4-language-usage/3-dml-and-sql/1-general/g-3120/index.html index 61133aa2..55aee9f2 100644 --- a/main/4-language-usage/3-dml-and-sql/1-general/g-3120/index.html +++ b/main/4-language-usage/3-dml-and-sql/1-general/g-3120/index.html @@ -3487,10 +3487,10 @@

Example (bad)

4 5 6 -7
select last_name
-      ,first_name
-      ,department_name
-  from employees
+7
select last_name
+      ,first_name
+      ,department_name
+  from employees
   join departments
  using (department_id)
  where extract(month from hire_date) = extract(month from sysdate);
@@ -3507,8 +3507,8 @@ 

Example (bad)

,first_name from employees where employee_id in ( - select employee_id - from jobs + select employee_id + from jobs where job_title like '%Manager%' -- NOSONAR: G-1050 literal is ok for a standalone query );
@@ -3519,10 +3519,10 @@

Example (better)

4 5 6 -7
select e.last_name
-      ,e.first_name
-      ,d.department_name
-  from employees e
+7
select e.last_name
+      ,e.first_name
+      ,d.department_name
+  from employees e
   join departments d
     on (e.department_id = d.department_id)
  where extract(month from e.hire_date) = extract(month from sysdate);
@@ -3535,10 +3535,10 @@ 

Example (good)

4 5 6 -7
select emp.last_name
-      ,emp.first_name
-      ,dept.department_name
-  from employees emp
+7
select emp.last_name
+      ,emp.first_name
+      ,dept.department_name
+  from employees emp
   join departments dept
     on (emp.department_id = dept.department_id)
  where extract(month from emp.hire_date) = extract(month from sysdate);
@@ -3555,9 +3555,9 @@ 

Example (good)

,emp.first_name from employees emp where emp.employee_id in ( - select j.employee_id - from jobs j - where j.job_title like '%Manager%' -- NOSONAR: G-1050 literal is ok for a standalone query + select job.employee_id + from jobs job + where job.job_title like '%Manager%' -- NOSONAR: G-1050 literal is ok for a standalone query );
diff --git a/main/4-language-usage/3-dml-and-sql/1-general/g-3130/index.html b/main/4-language-usage/3-dml-and-sql/1-general/g-3130/index.html index fa13fcf7..ed00d8cf 100644 --- a/main/4-language-usage/3-dml-and-sql/1-general/g-3130/index.html +++ b/main/4-language-usage/3-dml-and-sql/1-general/g-3130/index.html @@ -3477,10 +3477,10 @@

Example (bad)

,e.last_name ,e.first_name ,d.department_name - from employees e - ,departments d - where e.department_id = d.department_id - and extract(month from e.hire_date) = extract(month from sysdate); + from employees e + ,departments d + where e.department_id = d.department_id + and extract(month from e.hire_date) = extract(month from sysdate);

Example (good)

1
@@ -3494,10 +3494,10 @@ 

Example (good)

,emp.last_name ,emp.first_name ,dept.department_name - from employees emp - join departments dept - on dept.department_id = emp.department_id - where extract(month from emp.hire_date) = extract(month from sysdate); + from employees emp + join departments dept + on dept.department_id = emp.department_id + where extract(month from emp.hire_date) = extract(month from sysdate);
diff --git a/main/4-language-usage/3-dml-and-sql/1-general/g-3140/index.html b/main/4-language-usage/3-dml-and-sql/1-general/g-3140/index.html index ca49076e..89cf98f3 100644 --- a/main/4-language-usage/3-dml-and-sql/1-general/g-3140/index.html +++ b/main/4-language-usage/3-dml-and-sql/1-general/g-3140/index.html @@ -3493,13 +3493,13 @@

Example (bad)

l_last_name employees.last_name%type; begin open c_employees; - fetch c_employees into l_employee_id,l_first_name,l_last_name; - <<process_employees>> + fetch c_employees into l_employee_id,l_first_name,l_last_name; + <<process_employees>> while c_employees%found loop -- do something with the data - fetch c_employees into l_employee_id,l_first_name,l_last_name; - end loop process_employees; + fetch c_employees into l_employee_id,l_first_name,l_last_name; + end loop process_employees; close c_employees; end; / @@ -3528,13 +3528,13 @@

Example (good)

r_employee c_employees%rowtype; begin open c_employees; - fetch c_employees into r_employee; - <<process_employees>> + fetch c_employees into r_employee; + <<process_employees>> while c_employees%found loop -- do something with the data - fetch c_employees into r_employee; - end loop process_employees; + fetch c_employees into r_employee; + end loop process_employees; close c_employees; end; / diff --git a/main/4-language-usage/3-dml-and-sql/1-general/g-3145/index.html b/main/4-language-usage/3-dml-and-sql/1-general/g-3145/index.html index d5aae37a..8e34ad22 100644 --- a/main/4-language-usage/3-dml-and-sql/1-general/g-3145/index.html +++ b/main/4-language-usage/3-dml-and-sql/1-general/g-3145/index.html @@ -3484,8 +3484,8 @@

Example (bad)

15
begin
    <<raise_salary>>
    for r_employee in (
-      select *
-        from employees
+      select *
+        from employees
    )
    loop
       employee_api.calculate_raise_by_seniority(
@@ -3515,8 +3515,8 @@ 

Example (good)

15
begin
    <<raise_salary>>
    for r_employee in (
-      select id,salary,hiredate
-        from employees
+      select id,salary,hiredate
+        from employees
    )
    loop
       employee_api.calculate_raise_by_seniority(
diff --git a/main/4-language-usage/3-dml-and-sql/1-general/g-3150/index.html b/main/4-language-usage/3-dml-and-sql/1-general/g-3150/index.html
index f86bfcd6..a65e94c7 100644
--- a/main/4-language-usage/3-dml-and-sql/1-general/g-3150/index.html
+++ b/main/4-language-usage/3-dml-and-sql/1-general/g-3150/index.html
@@ -3514,8 +3514,8 @@ 

Example (bad)

before insert on locations for each row begin - :new.location_id := location_seq.nextval; -end; + :new.location_id := location_seq.nextval; +end; /

Example (good)

@@ -3525,8 +3525,8 @@

Example (good)

4 5 6
create table locations (
-   location_id        number(10)  generated always as identity
-  ,location_name      varchar2(60 char) not null
+   location_id        number(10)  generated always as identity
+  ,location_name      varchar2(60 char) not null
   ,city               varchar2(30 char) not null
   ,constraint locations_pk primary key (location_id))
 /
diff --git a/main/4-language-usage/3-dml-and-sql/1-general/g-3160/index.html b/main/4-language-usage/3-dml-and-sql/1-general/g-3160/index.html
index bd696a5e..e4bc4d3a 100644
--- a/main/4-language-usage/3-dml-and-sql/1-general/g-3160/index.html
+++ b/main/4-language-usage/3-dml-and-sql/1-general/g-3160/index.html
@@ -3506,16 +3506,16 @@ 

Example (bad)

r_employee.salary := r_employee.salary * constants_up.small_increase(); update employees - set row = r_employee - where employee_id = co_id; + set row = r_employee + where employee_id = co_id; end; /
1
 2
 3
Error report -
-ORA-54017: update operation disallowed on virtual columns
-ORA-06512: at line 9
+ORA-54017: update operation disallowed on virtual columns
+ORA-06512: at line 9
 

Example (good)

 1
@@ -3535,9 +3535,9 @@ 

Example (good)

15 16 17
alter table employees
-   add total_salary invisible generated always as
-      (salary + nvl(commission_pct,0) * salary)
-/
+   add total_salary invisible generated always as
+      (salary + nvl(commission_pct,0) * salary)
+/
 
 declare
    r_employee employees%rowtype;
@@ -3547,8 +3547,8 @@ 

Example (good)

r_employee.salary := r_employee.salary * constants_up.small_increase(); update employees - set row = r_employee - where employee_id = co_id; + set row = r_employee + where employee_id = co_id; end; /
diff --git a/main/4-language-usage/3-dml-and-sql/1-general/g-3170/index.html b/main/4-language-usage/3-dml-and-sql/1-general/g-3170/index.html index 0d4bd52e..9631fb92 100644 --- a/main/4-language-usage/3-dml-and-sql/1-general/g-3170/index.html +++ b/main/4-language-usage/3-dml-and-sql/1-general/g-3170/index.html @@ -3496,8 +3496,8 @@

Example (bad)

8 9
create table null_test (
    test_case        number(2) not null
-  ,column_defaulted varchar2(10 char) default 'Default')
-/
+  ,column_defaulted varchar2(10 char) default 'Default')
+/
 insert into null_test(test_case,column_defaulted) values (1,'Value'); -- NOSONAR: G-1050 literal is ok for a standalone insert
 insert into null_test(test_case,column_defaulted) values (2,default); -- NOSONAR: G-1050 literal is ok for a standalone insert
 insert into null_test(test_case,column_defaulted) values (3,null);    -- NOSONAR: G-1050 literal is ok for a standalone insert
@@ -3512,8 +3512,8 @@ 

Example (bad)

--------- ----------- 1 Value 2 Default - 3 -

+ 3 +

Example (good)

1
 2
@@ -3525,8 +3525,8 @@ 

Example (good)

8 9
create table null_test (
    test_case        number(2) not null
-  ,column_defaulted varchar2(10 char) default on null 'Default')
-/
+  ,column_defaulted varchar2(10 char) default on null 'Default')
+/
 insert into null_test(test_case,column_defaulted) values (1,'Value'); -- NOSONAR: G-1050 literal is ok for a standalone insert
 insert into null_test(test_case,column_defaulted) values (2,default); -- NOSONAR: G-1050 literal is ok for a standalone insert
 insert into null_test(test_case,column_defaulted) values (3,null);    -- NOSONAR: G-1050 literal is ok for a standalone insert
@@ -3541,8 +3541,8 @@ 

Example (good)

---------- ---------- 1 Value 2 Default - 3 Default -

+ 3 Default +

diff --git a/main/4-language-usage/3-dml-and-sql/1-general/g-3180/index.html b/main/4-language-usage/3-dml-and-sql/1-general/g-3180/index.html index ef655e03..4b30e10c 100644 --- a/main/4-language-usage/3-dml-and-sql/1-general/g-3180/index.html +++ b/main/4-language-usage/3-dml-and-sql/1-general/g-3180/index.html @@ -3476,8 +3476,8 @@

Example (bad)

,salary ,hire_date from employees - order by 4,1,3; -
+ order by 4,1,3; +

Example (good)

1
 2
@@ -3491,10 +3491,10 @@ 

Example (good)

,salary ,hire_date from employees - order by hire_date - ,first_name - ,salary; -
+ order by hire_date + ,first_name + ,salary; +
diff --git a/main/4-language-usage/3-dml-and-sql/1-general/g-3182/index.html b/main/4-language-usage/3-dml-and-sql/1-general/g-3182/index.html index 1d862bc5..8189d206 100644 --- a/main/4-language-usage/3-dml-and-sql/1-general/g-3182/index.html +++ b/main/4-language-usage/3-dml-and-sql/1-general/g-3182/index.html @@ -3491,8 +3491,8 @@

Example (bad)

5
select job_id
       ,sum(salary) as sum_salary
   from employees
- group by job_id,2
- order by job_id;
+ group by job_id,2
+ order by job_id;
 

Example (good)

1
@@ -3502,8 +3502,8 @@ 

Example (good)

5
select job_id
       ,sum(salary) as sum_salary
   from employees
- group by job_id
- order by job_id;
+ group by job_id
+ order by job_id;
 
diff --git a/main/4-language-usage/3-dml-and-sql/1-general/g-3183/index.html b/main/4-language-usage/3-dml-and-sql/1-general/g-3183/index.html index e7a18f9c..220ca872 100644 --- a/main/4-language-usage/3-dml-and-sql/1-general/g-3183/index.html +++ b/main/4-language-usage/3-dml-and-sql/1-general/g-3183/index.html @@ -3490,8 +3490,8 @@

Example (bad)

5
select lower(job_id) as job
       ,sum(salary) as sum_salary
   from employees
- group by lower(job_id)
- order by job;
+ group by lower(job_id)
+ order by job;
 

Example (good)

1
@@ -3501,8 +3501,8 @@ 

Example (good)

5
select lower(job_id) as job
       ,sum(salary) as sum_salary
   from employees
- group by job
- order by job;
+ group by job
+ order by job;
 
diff --git a/main/4-language-usage/3-dml-and-sql/1-general/g-3185/index.html b/main/4-language-usage/3-dml-and-sql/1-general/g-3185/index.html index 14802c6f..ffdccdc9 100644 --- a/main/4-language-usage/3-dml-and-sql/1-general/g-3185/index.html +++ b/main/4-language-usage/3-dml-and-sql/1-general/g-3185/index.html @@ -3493,8 +3493,8 @@

Example (bad)

,hire_date ,rownum as salary_rank from employees - where rownum <= 5 -- violates also G-1050 literal is ok for a standalone query - order by salary desc; + where rownum <= 5 -- violates also G-1050 literal is ok for a standalone query + order by salary desc;

Example (good)

 1
@@ -3515,16 +3515,16 @@ 

Example (good)

,salary ,hire_date ,rownum as salary_rank - from ( - select first_name - ,last_name - ,salary - ,hire_date - from employees - order by salary desc - ) - where rownum <= 5; -- NOSONAR: G-1050 literal is ok for a standalone query -
+ from ( + select first_name + ,last_name + ,salary + ,hire_date + from employees + order by salary desc + ) + where rownum <= 5; -- NOSONAR: G-1050 literal is ok for a standalone query +

Example (best)

(Assuming you are using Oracle Database 12c or later.)

1
@@ -3541,8 +3541,8 @@ 

Example (best)

,rank() over (order by salary desc) as salary_rank from employees order by salary desc -fetch first 5 rows only; -- NOSONAR: G-1050 literal is ok for a standalone query -
+fetch first 5 rows only; -- NOSONAR: G-1050 literal is ok for a standalone query +
diff --git a/main/4-language-usage/3-dml-and-sql/1-general/g-3190/index.html b/main/4-language-usage/3-dml-and-sql/1-general/g-3190/index.html index 81948a65..d763809f 100644 --- a/main/4-language-usage/3-dml-and-sql/1-general/g-3190/index.html +++ b/main/4-language-usage/3-dml-and-sql/1-general/g-3190/index.html @@ -3476,8 +3476,8 @@

Example (bad)

,e.last_name ,e.first_name from employees e -natural join departments d - order by d.department_name +natural join departments d + order by d.department_name ,e.last_name;
1
@@ -3506,8 +3506,8 @@ 

Example (bad)

,e.last_name ,e.first_name from employees e -natural join departments d - order by d.department_name +natural join departments d + order by d.department_name ,e.last_name;
1
No data found
@@ -3524,9 +3524,9 @@ 

Example (good)

,e.last_name ,e.first_name from employees e - join departments d - on (e.department_id = d.department_id) - order by d.department_name + join departments d + on (e.department_id = d.department_id) + order by d.department_name ,e.last_name;
1
diff --git a/main/4-language-usage/3-dml-and-sql/1-general/g-3195/index.html b/main/4-language-usage/3-dml-and-sql/1-general/g-3195/index.html
index 111c8d60..a16f0806 100644
--- a/main/4-language-usage/3-dml-and-sql/1-general/g-3195/index.html
+++ b/main/4-language-usage/3-dml-and-sql/1-general/g-3195/index.html
@@ -3472,8 +3472,8 @@ 

Example (bad)

4
select e.employee_id
       ,e.last_name
   from employees e
- where e.last_name like 'Smith'; -- violates also G-1050 literal is ok for a standalone query
-
+ where e.last_name like 'Smith'; -- violates also G-1050 literal is ok for a standalone query +

Example (good)

Using a wildcard:

1
@@ -3482,8 +3482,8 @@ 

Example (good)

4
select e.employee_id
       ,e.last_name
   from employees e
- where e.last_name like 'Smith%';
-
+ where e.last_name like 'Smith%'; +

Change to equality operator instead:

1
 2
@@ -3491,8 +3491,8 @@ 

Example (good)

4
select e.employee_id
       ,e.last_name
   from employees e
- where e.last_name = 'Smith'; -- NOSONAR: G-1050 literal is ok for a standalone query
-
+ where e.last_name = 'Smith'; -- NOSONAR: G-1050 literal is ok for a standalone query + diff --git a/main/4-language-usage/3-dml-and-sql/2-bulk-operations/g-3210/index.html b/main/4-language-usage/3-dml-and-sql/2-bulk-operations/g-3210/index.html index b050a797..7f1236dd 100644 --- a/main/4-language-usage/3-dml-and-sql/2-bulk-operations/g-3210/index.html +++ b/main/4-language-usage/3-dml-and-sql/2-bulk-operations/g-3210/index.html @@ -3493,9 +3493,9 @@

Example (bad)

); <<process_employees>> for i in 1..t_employee_ids.count() - loop - update employees - set salary = salary + (salary * co_increase) + loop + update employees + set salary = salary + (salary * co_increase) where employee_id = t_employee_ids(i); end loop process_employees; end; @@ -3525,9 +3525,9 @@

Example (good)

id_in => co_department_id ); <<process_employees>> - forall i in 1..t_employee_ids.count() - update employees - set salary = salary + (salary * co_increase) + forall i in 1..t_employee_ids.count() + update employees + set salary = salary + (salary * co_increase) where employee_id = t_employee_ids(i); end; / diff --git a/main/4-language-usage/3-dml-and-sql/2-bulk-operations/g-3220/index.html b/main/4-language-usage/3-dml-and-sql/2-bulk-operations/g-3220/index.html index ba774ea8..2bbd576c 100644 --- a/main/4-language-usage/3-dml-and-sql/2-bulk-operations/g-3220/index.html +++ b/main/4-language-usage/3-dml-and-sql/2-bulk-operations/g-3220/index.html @@ -3494,8 +3494,8 @@

Example (bad)

id_in => co_department_id ); <<process_employees>> - forall i in 1..t_employee_ids.count() save exceptions - update employees + forall i in 1..t_employee_ids.count() save exceptions + update employees set salary = salary + (salary * co_increase) where employee_id = t_employee_ids(i); end; @@ -3536,18 +3536,18 @@

Example (good)

id_in => co_department_id ); <<process_employees>> - forall i in 1..t_employee_ids.count() save exceptions - update employees + forall i in 1..t_employee_ids.count() save exceptions + update employees set salary = salary + (salary * co_increase) where employee_id = t_employee_ids(i); exception - when e_bulk_errors then - <<handle_bulk_exceptions>> - for i in 1..sql%bulk_exceptions.count - loop - logger.log(sql%bulk_exceptions(i).error_code); - end loop handle_bulk_exceptions; -end; + when e_bulk_errors then + <<handle_bulk_exceptions>> + for i in 1..sql%bulk_exceptions.count + loop + logger.log(sql%bulk_exceptions(i).error_code); + end loop handle_bulk_exceptions; +end; / diff --git a/main/4-language-usage/3-dml-and-sql/3-transaction-control/g-3310/index.html b/main/4-language-usage/3-dml-and-sql/3-transaction-control/g-3310/index.html index 22fccab4..2700257d 100644 --- a/main/4-language-usage/3-dml-and-sql/3-transaction-control/g-3310/index.html +++ b/main/4-language-usage/3-dml-and-sql/3-transaction-control/g-3310/index.html @@ -3534,8 +3534,8 @@

Example (bad)

l_counter := l_counter + 1; if l_counter = co_commit_interval then - commit; - l_counter := 0; + commit; + l_counter := 0; end if; end loop new_orders; if l_counter > 0 then @@ -3583,8 +3583,8 @@

Example (good)

where ol.order_id = r_order.order_id; end loop new_orders; - commit; -end; + commit; +end; /

Example (best)

@@ -3615,8 +3615,8 @@

Example (best)

) set discount = sales_api.calculate_discount(p_customer_id => customer_id); - commit; -end; + commit; +end; / diff --git a/main/4-language-usage/3-dml-and-sql/3-transaction-control/g-3320/index.html b/main/4-language-usage/3-dml-and-sql/3-transaction-control/g-3320/index.html index 8bca8177..6d45c574 100644 --- a/main/4-language-usage/3-dml-and-sql/3-transaction-control/g-3320/index.html +++ b/main/4-language-usage/3-dml-and-sql/3-transaction-control/g-3320/index.html @@ -3506,8 +3506,8 @@

Example (bad)

l_counter integer := 0; begin <<create_headers>> - loop - insert into headers (id,text) + loop + insert into headers (id,text) values ( l_counter,co_number || co_space @@ -3523,8 +3523,8 @@

Example (bad)

from dual connect by level <= co_max_level; - commit; - l_counter := l_counter + 1; + commit; + l_counter := l_counter + 1; exit create_headers when l_counter > co_upper_bound; end loop create_headers; end; @@ -3590,14 +3590,14 @@

Example (good)

from dual connect by level <= co_max_level; - commit; - end create_rows; + commit; + end create_rows; begin <<create_headers>> for l_counter in 1..co_upper_bound - loop - create_rows(l_counter); - end loop create_headers; + loop + create_rows(l_counter); + end loop create_headers; end; / diff --git a/main/4-language-usage/3-dml-and-sql/3-transaction-control/g-3330/index.html b/main/4-language-usage/3-dml-and-sql/3-transaction-control/g-3330/index.html index bbe3619c..31444034 100644 --- a/main/4-language-usage/3-dml-and-sql/3-transaction-control/g-3330/index.html +++ b/main/4-language-usage/3-dml-and-sql/3-transaction-control/g-3330/index.html @@ -3486,12 +3486,12 @@

Example (bad)

9 10
create or replace package body dept_api is
    procedure ins_dept(in_dept_row in dept%rowtype) is
-      pragma autonomous_transaction;
-   begin
+      pragma autonomous_transaction;
+   begin
       insert into dept
       values in_dept_row;
-      commit; -- required by autonomous transaction
-   end ins_dept;
+      commit; -- required by autonomous transaction
+   end ins_dept;
 end dept_api;
 /
 
@@ -3510,9 +3510,9 @@

Example (good)

begin insert into dept values in_dept_row; - -- transaction is commited in calling module - -- after the completion of the unit of work - end ins_dept; + -- transaction is commited in calling module + -- after the completion of the unit of work + end ins_dept; end dept_api; / diff --git a/main/4-language-usage/4-control-structures/1-cursor/g-4110/index.html b/main/4-language-usage/4-control-structures/1-cursor/g-4110/index.html index cd0bec19..7d67cd9b 100644 --- a/main/4-language-usage/4-control-structures/1-cursor/g-4110/index.html +++ b/main/4-language-usage/4-control-structures/1-cursor/g-4110/index.html @@ -3515,8 +3515,8 @@

Example (bad)

sys.dbms_output.put_line(t_employees(i).last_name); end loop display_employees; - exit process_employees when not c_employees%found; - end loop process_employees; + exit process_employees when not c_employees%found; + end loop process_employees; close c_employees; end; @@ -3572,8 +3572,8 @@

Example (good)

sys.dbms_output.put_line(t_employees(i).last_name); end loop display_employees; - exit process_employees when c_employees%notfound; - end loop process_employees; + exit process_employees when c_employees%notfound; + end loop process_employees; close c_employees; end; diff --git a/main/4-language-usage/4-control-structures/1-cursor/g-4120/index.html b/main/4-language-usage/4-control-structures/1-cursor/g-4120/index.html index 240e5fd8..6af5d42f 100644 --- a/main/4-language-usage/4-control-structures/1-cursor/g-4120/index.html +++ b/main/4-language-usage/4-control-structures/1-cursor/g-4120/index.html @@ -3522,8 +3522,8 @@

Example (bad)

<<process_employees>> loop fetch c_employees bulk collect into t_employees limit co_bulk_size; - exit process_employees when c_employees%notfound; - + exit process_employees when c_employees%notfound; + <<display_employees>> for i in 1..t_employees.count() loop @@ -3577,8 +3577,8 @@

Example (better)

<<process_employees>> loop fetch c_employees bulk collect into t_employees limit co_bulk_size; - exit process_employees when t_employees.count() = 0; - <<display_employees>> + exit process_employees when t_employees.count() = 0; + <<display_employees>> for i in 1..t_employees.count() loop sys.dbms_output.put_line(t_employees(i).last_name); @@ -3636,8 +3636,8 @@

Example (good)

loop sys.dbms_output.put_line(t_employees(i).last_name); end loop display_employees; - exit process_employees when t_employees.count() <> co_bulk_size; - end loop process_employees; + exit process_employees when t_employees.count() <> co_bulk_size; + end loop process_employees; close c_employees; end; diff --git a/main/4-language-usage/4-control-structures/1-cursor/g-4130/index.html b/main/4-language-usage/4-control-structures/1-cursor/g-4130/index.html index 40f025b4..8b00630d 100644 --- a/main/4-language-usage/4-control-structures/1-cursor/g-4130/index.html +++ b/main/4-language-usage/4-control-structures/1-cursor/g-4130/index.html @@ -3492,8 +3492,8 @@

Example (bad)

r_department_salary c_department_salary%rowtype; co_dept_id constant departments.department_id%type := in_dept_id; begin - open c_department_salary(p_dept_id => co_dept_id); - fetch c_department_salary into r_department_salary; + open c_department_salary(p_dept_id => co_dept_id); + fetch c_department_salary into r_department_salary; return r_department_salary.sum_salary; end department_salary; @@ -3527,10 +3527,10 @@

Example (good)

r_department_salary c_department_salary%rowtype; co_dept_id constant departments.department_id%type := in_dept_id; begin - open c_department_salary(p_dept_id => co_dept_id); - fetch c_department_salary into r_department_salary; - close c_department_salary; - return r_department_salary.sum_salary; + open c_department_salary(p_dept_id => co_dept_id); + fetch c_department_salary into r_department_salary; + close c_department_salary; + return r_department_salary.sum_salary; end department_salary; end employee_api; / diff --git a/main/4-language-usage/4-control-structures/1-cursor/g-4140/index.html b/main/4-language-usage/4-control-structures/1-cursor/g-4140/index.html index 2865fc10..7e3951cf 100644 --- a/main/4-language-usage/4-control-structures/1-cursor/g-4140/index.html +++ b/main/4-language-usage/4-control-structures/1-cursor/g-4140/index.html @@ -3512,10 +3512,10 @@

Example (bad)

where employee_id = co_employee_id returning department_id into l_dept_id; - process_dept(in_dept_id => l_dept_id); - - if sql%rowcount > co_one then - -- too many rows deleted. + process_dept(in_dept_id => l_dept_id); + + if sql%rowcount > co_one then + -- too many rows deleted. rollback; end if; end remove_employee; @@ -3571,12 +3571,12 @@

Example (good)

where employee_id = co_employee_id returning department_id into l_dept_id; - l_deleted_emps := sql%rowcount; - - process_dept(in_dept_id => l_dept_id); - - if l_deleted_emps > co_one then - -- too many rows deleted. + l_deleted_emps := sql%rowcount; + + process_dept(in_dept_id => l_dept_id); + + if l_deleted_emps > co_one then + -- too many rows deleted. rollback; end if; end remove_employee; diff --git a/main/4-language-usage/4-control-structures/2-case-if-decode-nvl-nvl2-coalesce/g-4210/index.html b/main/4-language-usage/4-control-structures/2-case-if-decode-nvl-nvl2-coalesce/g-4210/index.html index 07ef5e5c..8f0c4fb0 100644 --- a/main/4-language-usage/4-control-structures/2-case-if-decode-nvl-nvl2-coalesce/g-4210/index.html +++ b/main/4-language-usage/4-control-structures/2-case-if-decode-nvl-nvl2-coalesce/g-4210/index.html @@ -3480,14 +3480,14 @@

Example (bad)

12
declare
    l_color types_up.color_code_type;
 begin
-   if l_color = constants_up.co_red then
-      my_package.do_red();
-   elsif l_color = constants_up.co_blue then
-      my_package.do_blue();
-   elsif l_color = constants_up.co_black then
-      my_package.do_black();
-   end if;
-end;
+   if l_color = constants_up.co_red then
+      my_package.do_red();
+   elsif l_color = constants_up.co_blue then
+      my_package.do_blue();
+   elsif l_color = constants_up.co_black then
+      my_package.do_black();
+   end if;
+end;
 /
 

Example (good)

@@ -3503,22 +3503,18 @@

Example (good)

10 11 12 -13 -14 -15
declare
+13
declare
    l_color types_up.color_code_type;
 begin
-   case l_color
-      when constants_up.co_red then
-         my_package.do_red();
-      when constants_up.co_blue then
-         my_package.do_blue();
-      when constants_up.co_black then
-         my_package.do_black();
-      else
-         null;
-   end case;
-end;
+   case l_color
+      when constants_up.co_red then
+         my_package.do_red();
+      when constants_up.co_blue then
+         my_package.do_blue();
+      when constants_up.co_black then
+         my_package.do_black();
+   end case;
+end;
 /
 
diff --git a/main/4-language-usage/4-control-structures/2-case-if-decode-nvl-nvl2-coalesce/g-4220/index.html b/main/4-language-usage/4-control-structures/2-case-if-decode-nvl-nvl2-coalesce/g-4220/index.html index 8fb348d6..0cd3fd29 100644 --- a/main/4-language-usage/4-control-structures/2-case-if-decode-nvl-nvl2-coalesce/g-4220/index.html +++ b/main/4-language-usage/4-control-structures/2-case-if-decode-nvl-nvl2-coalesce/g-4220/index.html @@ -3472,8 +3472,8 @@

Example (bad)

4 5 6
-- @formatter:off
-select decode(ctry.country_code, constants_up.co_ctry_uk, constants_up.co_lang_english 
-                               , constants_up.co_ctry_fr, constants_up.co_lang_french
+select decode(ctry.country_code, constants_up.co_ctry_uk, constants_up.co_lang_english 
+                               , constants_up.co_ctry_fr, constants_up.co_lang_french
                                , constants_up.co_ctry_de, constants_up.co_lang_german
                                                         , constants_up.co_lang_not_supported)
   from countries ctry;
@@ -3487,8 +3487,8 @@ 

Example (bad)

6
-- @formatter:off
 select decode(ctry.country_code, constants_up.co_ctry_uk, constants_up.co_lang_english 
                                , constants_up.co_ctry_fr, constants_up.co_lang_french
-                               , null                   , constants_up.co_lang_unknown
-                                                        , constants_up.co_lang_not_supported)
+                               , null                   , constants_up.co_lang_unknown
+                                                        , constants_up.co_lang_not_supported)
   from countries ctry;
 

Example (good)

@@ -3502,8 +3502,8 @@

Example (good)

8 9 10 -11
select case ctry.country_code
-          when constants_up.co_ctry_uk then
+11
select case ctry.country_code
+          when constants_up.co_ctry_uk then
              constants_up.co_lang_english
           when constants_up.co_ctry_fr then
              constants_up.co_lang_french
@@ -3525,13 +3525,13 @@ 

Example (good)

8 9 10 -11
select case
-          when ctry.country_code = constants_up.co_ctry_uk then
+11
select case
+          when ctry.country_code = constants_up.co_ctry_uk then
              constants_up.co_lang_english
           when ctry.country_code = constants_up.co_ctry_fr then
              constants_up.co_lang_french
-          when ctry.country_code is null then
-             constants_up.co_lang_unknown
+          when ctry.country_code is null then
+             constants_up.co_lang_unknown
           else
              constants_up.co_lang_not_supported
        end
diff --git a/main/4-language-usage/4-control-structures/2-case-if-decode-nvl-nvl2-coalesce/g-4230/index.html b/main/4-language-usage/4-control-structures/2-case-if-decode-nvl-nvl2-coalesce/g-4230/index.html
index 4932c7b7..f678c02e 100644
--- a/main/4-language-usage/4-control-structures/2-case-if-decode-nvl-nvl2-coalesce/g-4230/index.html
+++ b/main/4-language-usage/4-control-structures/2-case-if-decode-nvl-nvl2-coalesce/g-4230/index.html
@@ -3468,13 +3468,13 @@ 

Reason

The coalesce function does not have this drawback.

Example (bad)

1
-2
select nvl(dummy,my_package.expensive_null(value_in => dummy))
-  from dual;
+2
select nvl(dummy,my_package.expensive_null(value_in => dummy))
+  from dual;
 

Example (good)

1
-2
select coalesce(dummy,my_package.expensive_null(value_in => dummy))
-  from dual;
+2
select coalesce(dummy,my_package.expensive_null(value_in => dummy))
+  from dual;
 
diff --git a/main/4-language-usage/4-control-structures/2-case-if-decode-nvl-nvl2-coalesce/g-4240/index.html b/main/4-language-usage/4-control-structures/2-case-if-decode-nvl-nvl2-coalesce/g-4240/index.html index 992c5996..c2400797 100644 --- a/main/4-language-usage/4-control-structures/2-case-if-decode-nvl-nvl2-coalesce/g-4240/index.html +++ b/main/4-language-usage/4-control-structures/2-case-if-decode-nvl-nvl2-coalesce/g-4240/index.html @@ -3468,9 +3468,9 @@

Reason

Example (bad)

1
 2
-3
select nvl2(dummy,my_package.expensive_nn(value_in => dummy)
-         ,my_package.expensive_null(value_in => dummy))
-  from dual;
+3
select nvl2(dummy,my_package.expensive_nn(value_in => dummy)
+         ,my_package.expensive_null(value_in => dummy))
+  from dual;
 

Example (good)

1
@@ -3479,13 +3479,13 @@ 

Example (good)

4 5 6 -7
select case
-          when dummy is null then
-             my_package.expensive_null(value_in => dummy)
-          else
-             my_package.expensive_nn(value_in => dummy)
-       end
-  from dual;
+7
select case
+          when dummy is null then
+             my_package.expensive_null(value_in => dummy)
+          else
+             my_package.expensive_nn(value_in => dummy)
+       end
+  from dual;
 
diff --git a/main/4-language-usage/4-control-structures/2-case-if-decode-nvl-nvl2-coalesce/g-4250/index.html b/main/4-language-usage/4-control-structures/2-case-if-decode-nvl-nvl2-coalesce/g-4250/index.html index 9d4b5733..684b5589 100644 --- a/main/4-language-usage/4-control-structures/2-case-if-decode-nvl-nvl2-coalesce/g-4250/index.html +++ b/main/4-language-usage/4-control-structures/2-case-if-decode-nvl-nvl2-coalesce/g-4250/index.html @@ -3488,9 +3488,9 @@

Example (bad)

my_package.do_red(); when constants_up.co_blue then my_package.do_blue(); - when constants_up.co_red then -- never reached - my_package.do_black(); -- dead code - else + when constants_up.co_red then -- never reached + my_package.do_black(); -- dead code + else null; end case; end; @@ -3519,9 +3519,9 @@

Example (good)

my_package.do_red(); when constants_up.co_blue then my_package.do_blue(); - when constants_up.co_black then - my_package.do_black(); - else + when constants_up.co_black then + my_package.do_black(); + else null; end case; end; diff --git a/main/4-language-usage/4-control-structures/2-case-if-decode-nvl-nvl2-coalesce/g-4260/index.html b/main/4-language-usage/4-control-structures/2-case-if-decode-nvl-nvl2-coalesce/g-4260/index.html index 594c44b1..e642ae0a 100644 --- a/main/4-language-usage/4-control-structures/2-case-if-decode-nvl-nvl2-coalesce/g-4260/index.html +++ b/main/4-language-usage/4-control-structures/2-case-if-decode-nvl-nvl2-coalesce/g-4260/index.html @@ -3476,8 +3476,8 @@

Example (bad)

8
declare
    l_color types_up.color_code_type;
 begin
-   if not l_color != constants_up.co_red then
-      my_package.do_red();
+   if not l_color != constants_up.co_red then
+      my_package.do_red();
    end if;
 end;
 /
@@ -3493,8 +3493,8 @@ 

Example (good)

8
declare
    l_color types_up.color_code_type;
 begin
-   if l_color = constants_up.co_red then
-      my_package.do_red();
+   if l_color = constants_up.co_red then
+      my_package.do_red();
    end if;
 end;
 /
diff --git a/main/4-language-usage/4-control-structures/2-case-if-decode-nvl-nvl2-coalesce/g-4270/index.html b/main/4-language-usage/4-control-structures/2-case-if-decode-nvl-nvl2-coalesce/g-4270/index.html
index 03c0e801..21eafc9a 100644
--- a/main/4-language-usage/4-control-structures/2-case-if-decode-nvl-nvl2-coalesce/g-4270/index.html
+++ b/main/4-language-usage/4-control-structures/2-case-if-decode-nvl-nvl2-coalesce/g-4270/index.html
@@ -3480,8 +3480,8 @@ 

Example (bad)

l_is_valid boolean; begin l_is_valid := my_package.is_valid_number(co_string); - if l_is_valid = true then - my_package.convert_number(l_string); + if l_is_valid = true then + my_package.convert_number(l_string); end if; end; / @@ -3501,8 +3501,8 @@

Example (good)

l_is_valid boolean; begin l_is_valid := my_package.is_valid_number(co_string); - if l_is_valid then - my_package.convert_number(l_string); + if l_is_valid then + my_package.convert_number(l_string); end if; end; / diff --git a/main/4-language-usage/4-control-structures/3-flow-control/g-4310/index.html b/main/4-language-usage/4-control-structures/3-flow-control/g-4310/index.html index c0e2ac1e..99e20416 100644 --- a/main/4-language-usage/4-control-structures/3-flow-control/g-4310/index.html +++ b/main/4-language-usage/4-control-structures/3-flow-control/g-4310/index.html @@ -3541,16 +3541,16 @@

Example (bad)

loop if substr(co_password,j,1) = substr(co_digitarray,i,1) then l_isdigit := true; - goto check_other_things; - end if; + goto check_other_things; + end if; end loop check_pw_char; end loop check_digit; - <<check_other_things>> - null; + <<check_other_things>> + null; - if not l_isdigit then - raise_application_error(co_errno,co_errmsg); + if not l_isdigit then + raise_application_error(co_errno,co_errmsg); end if; end password_check; end my_package; @@ -3617,11 +3617,11 @@

Example (better)

end loop check_pw_char; end loop check_digit; - <<check_other_things>> - null; + <<check_other_things>> + null; - if not l_isdigit then - raise_application_error(co_errno,co_errmsg); + if not l_isdigit then + raise_application_error(co_errno,co_errmsg); end if; end password_check; end my_package; @@ -3647,8 +3647,8 @@

Example (good)

co_errno constant simple_integer := -20501; co_errmsg constant string(100 char) := 'Password must contain a digit.'; begin - if not regexp_like(co_password,co_digitpattern) then - raise_application_error(co_errno,co_errmsg); + if not regexp_like(co_password,co_digitpattern) then + raise_application_error(co_errno,co_errmsg); end if; end password_check; end my_package; diff --git a/main/4-language-usage/4-control-structures/3-flow-control/g-4320/index.html b/main/4-language-usage/4-control-structures/3-flow-control/g-4320/index.html index 695b82d6..04e2762a 100644 --- a/main/4-language-usage/4-control-structures/3-flow-control/g-4320/index.html +++ b/main/4-language-usage/4-control-structures/3-flow-control/g-4320/index.html @@ -3499,25 +3499,25 @@

Example (bad)

co_increment constant simple_integer := 1; begin i := co_min_value; - while (i <= co_max_value) - loop + while (i <= co_max_value) + loop i := i + co_increment; - end loop; - - loop - exit when true; -- NOSONAR: G-4380 cannot use labelled exit here - end loop; - - for i in co_min_value..co_max_value - loop + end loop; + + loop + exit when true; -- NOSONAR: G-4380 cannot use labelled exit here + end loop; + + for i in co_min_value..co_max_value + loop sys.dbms_output.put_line(i); - end loop; - - for r_employee in (select last_name from employees) - loop + end loop; + + for r_employee in (select last_name from employees) + loop sys.dbms_output.put_line(r_employee.last_name); - end loop; -end; + end loop; +end; /

Example (good)

@@ -3551,42 +3551,36 @@

Example (good)

28 29 30 -31 -32 -33 -34
declare
+31
declare
    i            integer;
    co_min_value constant simple_integer := 1;
    co_max_value constant simple_integer := 10;
    co_increment constant simple_integer := 1;
 begin
    i := co_min_value;
-   <<while_loop>>
-   while (i <= co_max_value)
+   <<while_loop>>
+   while (i <= co_max_value)
    loop
       i := i + co_increment;
-   end loop while_loop;
-
-   <<basic_loop>>
-   loop
+   end loop while_loop;
+
+   <<basic_loop>>
+   loop
       exit basic_loop when true;
-   end loop basic_loop;
-
-   <<for_loop>>
-   for i in co_min_value..co_max_value
+   end loop basic_loop;
+
+   <<for_loop>>
+   for i in co_min_value..co_max_value
    loop
       sys.dbms_output.put_line(i);
-   end loop for_loop;
-
-   <<process_employees>>
-   for r_employee in (
-      select last_name
-        from employees
-   )
+   end loop for_loop;
+
+   <<process_employees>>
+   for r_employee in (select last_name from employees)
    loop
       sys.dbms_output.put_line(r_employee.last_name);
-   end loop process_employees;
-end;
+   end loop process_employees;
+end;
 /
 
diff --git a/main/4-language-usage/4-control-structures/3-flow-control/g-4325/index.html b/main/4-language-usage/4-control-structures/3-flow-control/g-4325/index.html index 3e8a4a57..133ce9a4 100644 --- a/main/4-language-usage/4-control-structures/3-flow-control/g-4325/index.html +++ b/main/4-language-usage/4-control-structures/3-flow-control/g-4325/index.html @@ -3477,13 +3477,13 @@

Example (bad)

9 10 11 -12
<<my_label>>
-declare
+12
<<my_label>>
+declare
    co_min_value constant simple_integer := 1;
    co_max_value constant simple_integer := 8;
 begin
-   <<my_label>>
-   for i in co_min_value..co_max_value
+   <<my_label>>
+   for i in co_min_value..co_max_value
    loop
       sys.dbms_output.put_line(i);
    end loop my_label;
@@ -3502,13 +3502,13 @@ 

Example (good)

9 10 11 -12
<<output_values>>
-declare
+12
<<output_values>>
+declare
    co_min_value constant simple_integer := 1;
    co_max_value constant simple_integer := 8;
 begin
-   <<process_values>>
-   for i in co_min_value..co_max_value
+   <<process_values>>
+   for i in co_min_value..co_max_value
    loop
       sys.dbms_output.put_line(i);
    end loop process_values;
diff --git a/main/4-language-usage/4-control-structures/3-flow-control/g-4330/index.html b/main/4-language-usage/4-control-structures/3-flow-control/g-4330/index.html
index 15c4b924..be35b661 100644
--- a/main/4-language-usage/4-control-structures/3-flow-control/g-4330/index.html
+++ b/main/4-language-usage/4-control-structures/3-flow-control/g-4330/index.html
@@ -3494,9 +3494,9 @@ 

Example (bad)

open c_employees; <<read_employees>> - loop - fetch c_employees into r_employee; - exit read_employees when c_employees%notfound; + loop + fetch c_employees into r_employee; + exit read_employees when c_employees%notfound; sys.dbms_output.put_line(r_employee.last_name); end loop read_employees; @@ -3522,9 +3522,9 @@

Example (good)

from employees; begin <<read_employees>> - for r_employee in c_employees - loop - sys.dbms_output.put_line(r_employee.last_name); + for r_employee in c_employees + loop + sys.dbms_output.put_line(r_employee.last_name); end loop read_employees; end; / diff --git a/main/4-language-usage/4-control-structures/3-flow-control/g-4340/index.html b/main/4-language-usage/4-control-structures/3-flow-control/g-4340/index.html index 260007b7..579771a4 100644 --- a/main/4-language-usage/4-control-structures/3-flow-control/g-4340/index.html +++ b/main/4-language-usage/4-control-structures/3-flow-control/g-4340/index.html @@ -3506,9 +3506,9 @@

Example (bad)

i := co_min_value; <<process_employees>> - loop - exit process_employees when i > t_employees.count(); - sys.dbms_output.put_line(t_employees(i)); + loop + exit process_employees when i > t_employees.count(); + sys.dbms_output.put_line(t_employees(i)); i := i + co_increment; end loop process_employees; end; @@ -3538,9 +3538,9 @@

Example (good)

t_employees := t_employee_type(co_himuro,co_livingston); <<process_employees>> - for i in 1..t_employees.count() - loop - sys.dbms_output.put_line(t_employees(i)); + for i in 1..t_employees.count() + loop + sys.dbms_output.put_line(t_employees(i)); end loop process_employees; end; / diff --git a/main/4-language-usage/4-control-structures/3-flow-control/g-4350/index.html b/main/4-language-usage/4-control-structures/3-flow-control/g-4350/index.html index eef408a9..adeaad0d 100644 --- a/main/4-language-usage/4-control-structures/3-flow-control/g-4350/index.html +++ b/main/4-language-usage/4-control-structures/3-flow-control/g-4350/index.html @@ -3501,8 +3501,8 @@

Example (bad)

t_employees t_employee_type := t_employee_type(); begin <<process_employees>> - for i in t_employees.first()..t_employees.last() - loop + for i in t_employees.first()..t_employees.last() + loop sys.dbms_output.put_line(t_employees(i)); -- some processing end loop process_employees; end; @@ -3525,8 +3525,8 @@

Example (better)

t_employees t_employee_type := t_employee_type(); begin <<process_employees>> - for i in 1..t_employees.count() - loop + for i in 1..t_employees.count() + loop sys.dbms_output.put_line(t_employees(i)); -- some processing end loop process_employees; end; @@ -3550,10 +3550,10 @@

Example (good)

type t_employee_type is table of employees.employee_id%type; t_employees t_employee_type := t_employee_type(); begin - if t_employees is not null then - <<process_employees>> - for i in 1..t_employees.count() - loop + if t_employees is not null then + <<process_employees>> + for i in 1..t_employees.count() + loop sys.dbms_output.put_line(t_employees(i)); -- some processing end loop process_employees; end if; diff --git a/main/4-language-usage/4-control-structures/3-flow-control/g-4360/index.html b/main/4-language-usage/4-control-structures/3-flow-control/g-4360/index.html index 3a1c1c8b..ef0d5665 100644 --- a/main/4-language-usage/4-control-structures/3-flow-control/g-4360/index.html +++ b/main/4-language-usage/4-control-structures/3-flow-control/g-4360/index.html @@ -3504,8 +3504,8 @@

Example (bad)

if t_employees is not null then <<process_employees>> - for i in 1..t_employees.count() - loop + for i in 1..t_employees.count() + loop sys.dbms_output.put_line(t_employees(i)); end loop process_employees; end if; @@ -3549,8 +3549,8 @@

Example (good)

l_index := t_employees.first(); <<process_employees>> - while l_index is not null - loop + while l_index is not null + loop sys.dbms_output.put_line(t_employees(l_index)); l_index := t_employees.next(l_index); end loop process_employees; diff --git a/main/4-language-usage/4-control-structures/3-flow-control/g-4365/index.html b/main/4-language-usage/4-control-structures/3-flow-control/g-4365/index.html index 7bf88b59..1b698513 100644 --- a/main/4-language-usage/4-control-structures/3-flow-control/g-4365/index.html +++ b/main/4-language-usage/4-control-structures/3-flow-control/g-4365/index.html @@ -3481,8 +3481,8 @@

Example (bad)

loop my_package.some_processing(); - continue process_employees; - + continue process_employees; + my_package.some_further_processing(); -- Dead code end loop process_employees; end; @@ -3508,8 +3508,8 @@

Example (good)

loop my_package.some_processing(); - continue process_employees when extract(year from sysdate) > co_first_year; - + continue process_employees when extract(year from sysdate) > co_first_year; + my_package.some_further_processing(); end loop process_employees; end; diff --git a/main/4-language-usage/4-control-structures/3-flow-control/g-4370/index.html b/main/4-language-usage/4-control-structures/3-flow-control/g-4370/index.html index dc9f567f..8dfcd1f6 100644 --- a/main/4-language-usage/4-control-structures/3-flow-control/g-4370/index.html +++ b/main/4-language-usage/4-control-structures/3-flow-control/g-4370/index.html @@ -3511,11 +3511,11 @@

Example (bad)

begin i := co_min_value; <<while_loop>> - while (i <= co_max_value) - loop + while (i <= co_max_value) + loop i := i + co_increment; - exit while_loop when i > co_max_value; - end loop while_loop; + exit while_loop when i > co_max_value; + end loop while_loop; <<basic_loop>> loop @@ -3523,22 +3523,22 @@

Example (bad)

end loop basic_loop; <<for_loop>> - for i in co_min_value..co_max_value - loop + for i in co_min_value..co_max_value + loop null; - exit for_loop when i = co_max_value; - end loop for_loop; + exit for_loop when i = co_max_value; + end loop for_loop; <<process_employees>> - for r_employee in ( - select last_name + for r_employee in ( + select last_name from employees ) loop sys.dbms_output.put_line(r_employee.last_name); null; -- some processing - exit process_employees when true; - end loop process_employees; + exit process_employees when true; + end loop process_employees; end; /
@@ -3584,8 +3584,8 @@

Example (good)

begin i := co_min_value; <<while_loop>> - while (i <= co_max_value) - loop + while (i <= co_max_value) + loop i := i + co_increment; end loop while_loop; @@ -3595,14 +3595,14 @@

Example (good)

end loop basic_loop; <<for_loop>> - for i in co_min_value..co_max_value - loop + for i in co_min_value..co_max_value + loop sys.dbms_output.put_line(i); end loop for_loop; <<process_employees>> - for r_employee in ( - select last_name + for r_employee in ( + select last_name from employees ) loop diff --git a/main/4-language-usage/4-control-structures/3-flow-control/g-4375/index.html b/main/4-language-usage/4-control-structures/3-flow-control/g-4375/index.html index 1e8c212c..a9892b36 100644 --- a/main/4-language-usage/4-control-structures/3-flow-control/g-4375/index.html +++ b/main/4-language-usage/4-control-structures/3-flow-control/g-4375/index.html @@ -3487,10 +3487,10 @@

Example (bad)

loop my_package.some_processing(); - if extract(year from sysdate) > co_first_year then - exit process_employees; -- violates also G-4365 - end if; - + if extract(year from sysdate) > co_first_year then + exit process_employees; -- violates also G-4365 + end if; + my_package.some_further_processing(); end loop process_employees; end; @@ -3516,8 +3516,8 @@

Example (good)

loop my_package.some_processing(); - exit process_employees when extract(year from sysdate) > co_first_year; - + exit process_employees when extract(year from sysdate) > co_first_year; + my_package.some_further_processing(); end loop process_employees; end; diff --git a/main/4-language-usage/4-control-structures/3-flow-control/g-4380/index.html b/main/4-language-usage/4-control-structures/3-flow-control/g-4380/index.html index b81824c6..90720119 100644 --- a/main/4-language-usage/4-control-structures/3-flow-control/g-4380/index.html +++ b/main/4-language-usage/4-control-structures/3-flow-control/g-4380/index.html @@ -3516,11 +3516,11 @@

Example (bad)

|| co_inner_text || l_innerlp); - exit when l_innerlp = co_exit_value; - end loop innerloop; + exit when l_innerlp = co_exit_value; + end loop innerloop; - exit when l_innerlp = co_exit_value; - end loop outerloop; + exit when l_innerlp = co_exit_value; + end loop outerloop; end; /
@@ -3573,8 +3573,8 @@

Example (good)

|| co_inner_text || l_innerlp); - exit outerloop when l_innerlp = co_exit_value; - end loop innerloop; + exit outerloop when l_innerlp = co_exit_value; + end loop innerloop; end loop outerloop; end; / diff --git a/main/4-language-usage/4-control-structures/3-flow-control/g-4385/index.html b/main/4-language-usage/4-control-structures/3-flow-control/g-4385/index.html index f7c6e4da..4e9fc268 100644 --- a/main/4-language-usage/4-control-structures/3-flow-control/g-4385/index.html +++ b/main/4-language-usage/4-control-structures/3-flow-control/g-4385/index.html @@ -3488,11 +3488,11 @@

Example (bad)

from employees; begin <<check_employees>> - for r_employee in c_employees - loop - l_employee_found := true; - end loop check_employees; - if l_employee_found then + for r_employee in c_employees + loop + l_employee_found := true; + end loop check_employees; + if l_employee_found then null; -- some processing; end if; end; @@ -3521,11 +3521,11 @@

Example (good)

from employees; r_employee c_employees%rowtype; begin - open c_employees; - fetch c_employees into r_employee; - l_employee_found := c_employees%found; - close c_employees; - if l_employee_found then + open c_employees; + fetch c_employees into r_employee; + l_employee_found := c_employees%found; + close c_employees; + if l_employee_found then null; -- some processing; end if; end; diff --git a/main/4-language-usage/4-control-structures/3-flow-control/g-4387/index.html b/main/4-language-usage/4-control-structures/3-flow-control/g-4387/index.html index b2c60d15..43556eee 100644 --- a/main/4-language-usage/4-control-structures/3-flow-control/g-4387/index.html +++ b/main/4-language-usage/4-control-structures/3-flow-control/g-4387/index.html @@ -3493,14 +3493,14 @@

Example (bad)

l_ename emp.ename%type; begin <<fetch_name>> - for r in ( - select ename + for r in ( + select ename from emp - where empno = in_empno - ) + where empno = in_empno + ) loop - l_ename := r.ename; - end loop fetch_name; + l_ename := r.ename; + end loop fetch_name; return l_ename; end emp_name; end employee_api; @@ -3528,10 +3528,10 @@

Example (good)

l_ename emp.ename%type; begin select ename - into l_ename - from emp - where empno = in_empno; - return l_ename; + into l_ename + from emp + where empno = in_empno; + return l_ename; exception when no_data_found then return null; diff --git a/main/4-language-usage/4-control-structures/3-flow-control/g-4390/index.html b/main/4-language-usage/4-control-structures/3-flow-control/g-4390/index.html index dcb7fded..50f478d7 100644 --- a/main/4-language-usage/4-control-structures/3-flow-control/g-4390/index.html +++ b/main/4-language-usage/4-control-structures/3-flow-control/g-4390/index.html @@ -3501,8 +3501,8 @@

Example (bad)

l_row := co_lower_bound; l_value := co_first_value; <<for_loop>> - for i in co_lower_bound..co_upper_bound - loop + for i in co_lower_bound..co_upper_bound + loop sys.dbms_output.put_line(l_row || co_delimiter || l_value); @@ -3536,12 +3536,12 @@

Example (good)

co_first_value constant simple_integer := 100; begin <<for_loop>> - for i in co_lower_bound..co_upper_bound - loop + for i in co_lower_bound..co_upper_bound + loop sys.dbms_output.put_line(i || co_delimiter - || to_char(co_first_value + i * co_value_incr)); - end loop for_loop; + || to_char(co_first_value + i * co_value_incr)); + end loop for_loop; end; /
diff --git a/main/4-language-usage/4-control-structures/3-flow-control/g-4395/index.html b/main/4-language-usage/4-control-structures/3-flow-control/g-4395/index.html index 48e33fdf..2d383833 100644 --- a/main/4-language-usage/4-control-structures/3-flow-control/g-4395/index.html +++ b/main/4-language-usage/4-control-structures/3-flow-control/g-4395/index.html @@ -3475,8 +3475,8 @@

Example (bad)

7 8
begin
    <<for_loop>>
-   for i in 1..5
-   loop
+   for i in 1..5
+   loop
       sys.dbms_output.put_line(i);
    end loop for_loop;
 end;
@@ -3498,8 +3498,8 @@ 

Example (good)

co_upper_bound constant simple_integer := 5; begin <<for_loop>> - for i in co_lower_bound..co_upper_bound - loop + for i in co_lower_bound..co_upper_bound + loop sys.dbms_output.put_line(i); end loop for_loop; end; diff --git a/main/4-language-usage/5-exception-handling/g-5010/index.html b/main/4-language-usage/5-exception-handling/g-5010/index.html index 3b9ba5eb..309560aa 100644 --- a/main/4-language-usage/5-exception-handling/g-5010/index.html +++ b/main/4-language-usage/5-exception-handling/g-5010/index.html @@ -3488,10 +3488,10 @@

Example (bad)

co_start constant logger_logs.text%type := 'start'; co_end constant logger_logs.text%type := 'end'; begin - sys.dbms_output.put_line(co_start); - -- some processing - sys.dbms_output.put_line(co_end); -end; + sys.dbms_output.put_line(co_start); + -- some processing + sys.dbms_output.put_line(co_end); +end; /

Example (good)

@@ -3511,10 +3511,10 @@

Example (good)

co_end constant logger_logs.text%type := 'end'; co_scope constant logger_logs.scope%type := 'demo'; begin - logger.log(co_start,co_scope); - -- some processing - logger.log(co_end,co_scope); -end; + logger.log(co_start,co_scope); + -- some processing + logger.log(co_end,co_scope); +end; /
diff --git a/main/4-language-usage/5-exception-handling/g-5020/index.html b/main/4-language-usage/5-exception-handling/g-5020/index.html index c0620c0a..dc40ac5f 100644 --- a/main/4-language-usage/5-exception-handling/g-5020/index.html +++ b/main/4-language-usage/5-exception-handling/g-5020/index.html @@ -3485,8 +3485,8 @@

Example (bad)

when too_many_rows then my_package.some_further_processing(); when others then - if sqlcode = co_no_data_found then - null; + if sqlcode = co_no_data_found then + null; end if; end; / @@ -3505,8 +3505,8 @@

Example (good)

exception when too_many_rows then my_package.some_further_processing(); - when no_data_found then - null; -- handle no_data_found + when no_data_found then + null; -- handle no_data_found end; /
diff --git a/main/4-language-usage/5-exception-handling/g-5030/index.html b/main/4-language-usage/5-exception-handling/g-5030/index.html index c621e65f..f0c0e717 100644 --- a/main/4-language-usage/5-exception-handling/g-5030/index.html +++ b/main/4-language-usage/5-exception-handling/g-5030/index.html @@ -3485,8 +3485,8 @@

Example (bad)

18 19
declare
    l_dummy          dual.dummy%type;
-   no_data_found    exception; -- violates also naming convention G-9113
-   co_rownum        constant simple_integer           := 0;
+   no_data_found    exception; -- violates also naming convention G-9113
+   co_rownum        constant simple_integer           := 0;
    co_no_data_found constant types_up.short_text_type := 'no_data_found';
 begin
    select dummy
@@ -3495,8 +3495,8 @@ 

Example (bad)

where rownum = co_rownum; if l_dummy is null then - raise no_data_found; -- NOSONAR: consequential error, violates G-5070 - end if; + raise no_data_found; -- NOSONAR: consequential error, violates G-5070 + end if; exception when no_data_found then sys.dbms_output.put_line(co_no_data_found); @@ -3539,8 +3539,8 @@

Example (good)

21 22
declare
    l_dummy          dual.dummy%type;
-   e_empty_value    exception;
-   co_rownum        constant simple_integer           := 0;
+   e_empty_value    exception;
+   co_rownum        constant simple_integer           := 0;
    co_empty_value   constant types_up.short_text_type := 'empty_value';
    co_no_data_found constant types_up.short_text_type := 'no_data_found';
 begin
@@ -3550,8 +3550,8 @@ 

Example (good)

where rownum = co_rownum; if l_dummy is null then - raise e_empty_value; - end if; + raise e_empty_value; + end if; exception when e_empty_value then sys.dbms_output.put_line(co_empty_value); diff --git a/main/4-language-usage/5-exception-handling/g-5040/index.html b/main/4-language-usage/5-exception-handling/g-5040/index.html index f9f16225..db34a78c 100644 --- a/main/4-language-usage/5-exception-handling/g-5040/index.html +++ b/main/4-language-usage/5-exception-handling/g-5040/index.html @@ -3474,8 +3474,8 @@

Example (bad)

7
begin
    my_package.some_processing();
 exception
-   when others then
-      my_package.some_further_processing();
+   when others then
+      my_package.some_further_processing();
 end;
 /
 
@@ -3489,8 +3489,8 @@

Example (good)

7
begin
    my_package.some_processing();
 exception
-   when dup_val_on_index then
-      my_package.some_further_processing();
+   when dup_val_on_index then
+      my_package.some_further_processing();
 end;
 /
 
@@ -3505,10 +3505,10 @@

Example (good)

8
begin
    my_package.some_processing();
 exception
-   when others then
-      logger.log_error('Unhandled Exception');
-      raise;
-end;
+   when others then
+      logger.log_error('Unhandled Exception');
+      raise;
+end;
 /
 
diff --git a/main/4-language-usage/5-exception-handling/g-5050/index.html b/main/4-language-usage/5-exception-handling/g-5050/index.html index 7da2ca43..33b223d8 100644 --- a/main/4-language-usage/5-exception-handling/g-5050/index.html +++ b/main/4-language-usage/5-exception-handling/g-5050/index.html @@ -3472,8 +3472,8 @@

Example (bad)

6
declare
    co_invalid_emp_text constant types_up.text := 'Invalid employee_id';
 begin
-   raise_application_error(-20501 /* violates also G-1010 */,co_invalid_emp_text);
-end;
+   raise_application_error(-20501 /* violates also G-1010 */,co_invalid_emp_text);
+end;
 /
 

Example (good)

@@ -3481,8 +3481,8 @@

Example (good)

2 3 4
begin
-   err_up.raise(in_error => err.co_invalid_employee_id);
-end;
+   err_up.raise(in_error => err.co_invalid_employee_id);
+end;
 /
 
diff --git a/main/4-language-usage/5-exception-handling/g-5060/index.html b/main/4-language-usage/5-exception-handling/g-5060/index.html index 56b9cfd7..18220673 100644 --- a/main/4-language-usage/5-exception-handling/g-5060/index.html +++ b/main/4-language-usage/5-exception-handling/g-5060/index.html @@ -3486,9 +3486,9 @@

Example (bad)

co_id constant departments.department_id%type := in_id; l_department_name departments.department_name%type; begin - select department_name - into l_department_name - from departments + select department_name + into l_department_name + from departments where department_id = co_id; return l_department_name; @@ -3522,18 +3522,18 @@

Example (good)

co_id constant departments.department_id%type := in_id; l_department_name departments.department_name%type; begin - select department_name - into l_department_name - from departments + select department_name + into l_department_name + from departments where department_id = co_id; return l_department_name; - exception - when no_data_found then - return null; - when too_many_rows then - raise; - end name_by_id; + exception + when no_data_found then + return null; + when too_many_rows then + raise; + end name_by_id; end department_api; /
diff --git a/main/4-language-usage/5-exception-handling/g-5070/index.html b/main/4-language-usage/5-exception-handling/g-5070/index.html index fe5ced3e..9ae20e1b 100644 --- a/main/4-language-usage/5-exception-handling/g-5070/index.html +++ b/main/4-language-usage/5-exception-handling/g-5070/index.html @@ -3470,8 +3470,8 @@

Example (bad)

2 3 4
begin
-   raise no_data_found;
-end;
+   raise no_data_found;
+end;
 /
 

Example (good)

@@ -3483,8 +3483,8 @@

Example (good)

6
declare
    e_my_exception exception;
 begin
-   raise e_my_exception;
-end;
+   raise e_my_exception;
+end;
 /
 
diff --git a/main/4-language-usage/5-exception-handling/g-5080/index.html b/main/4-language-usage/5-exception-handling/g-5080/index.html index c2ff8723..3a7e26a5 100644 --- a/main/4-language-usage/5-exception-handling/g-5080/index.html +++ b/main/4-language-usage/5-exception-handling/g-5080/index.html @@ -3505,8 +3505,8 @@

Example (bad)

when zero_divide then null; -- ignore when others then - logging_package.log_error(co_error_label || sqlerrm); - raise; + logging_package.log_error(co_error_label || sqlerrm); + raise; end discount_and_recalculate; end order_api; / @@ -3561,10 +3561,10 @@

Example (good)

when others then logging_package.log_error( co_error_label - || sqlerrm - || co_backtrace_label - || sys.dbms_utility.format_error_backtrace - ); + || sqlerrm + || co_backtrace_label + || sys.dbms_utility.format_error_backtrace + ); raise; end discount_and_recalculate; end order_api; diff --git a/main/4-language-usage/6-dynamic-sql/g-6010/index.html b/main/4-language-usage/6-dynamic-sql/g-6010/index.html index 6c3934d9..669416ce 100644 --- a/main/4-language-usage/6-dynamic-sql/g-6010/index.html +++ b/main/4-language-usage/6-dynamic-sql/g-6010/index.html @@ -3473,8 +3473,8 @@

Example (bad)

7
declare
    l_next_val employees.employee_id%type;
 begin
-   execute immediate 'select employees_seq.nextval from dual'
-      into l_next_val;
+   execute immediate 'select employees_seq.nextval from dual'
+      into l_next_val;
 end;
 /
 
@@ -3491,8 +3491,8 @@

Example (good)

co_sql constant types_up.big_string_type := 'select employees_seq.nextval from dual'; begin - execute immediate co_sql into l_next_val; -end; + execute immediate co_sql into l_next_val; +end; /
diff --git a/main/4-language-usage/6-dynamic-sql/g-6020/index.html b/main/4-language-usage/6-dynamic-sql/g-6020/index.html index fe602fee..7147b277 100644 --- a/main/4-language-usage/6-dynamic-sql/g-6020/index.html +++ b/main/4-language-usage/6-dynamic-sql/g-6020/index.html @@ -3498,8 +3498,8 @@

Example (bad)

returning salary into :3'; begin execute immediate co_sql_stmt - using co_increase_pct,co_employee_id,out out_new_salary; - end upd_salary; + using co_increase_pct,co_employee_id,out out_new_salary; + end upd_salary; end employee_api; /
@@ -3539,8 +3539,8 @@

Example (good)

begin execute immediate co_sql_stmt using co_increase_pct,co_employee_id - returning into out_new_salary; - end upd_salary; + returning into out_new_salary; + end upd_salary; end employee_api; /
diff --git a/main/4-language-usage/7-stored-objects/1-general/g-7110/index.html b/main/4-language-usage/7-stored-objects/1-general/g-7110/index.html index a8b765ad..8220b673 100644 --- a/main/4-language-usage/7-stored-objects/1-general/g-7110/index.html +++ b/main/4-language-usage/7-stored-objects/1-general/g-7110/index.html @@ -3477,8 +3477,8 @@

Example (bad)

r_employee employees%rowtype; co_id constant employees.employee_id%type := 107; begin - employee_api.employee_by_id(r_employee,co_id); -end; + employee_api.employee_by_id(r_employee,co_id); +end; /

Example (good)

@@ -3496,9 +3496,9 @@

Example (good)

co_id constant employees.employee_id%type := 107; begin employee_api.employee_by_id( - out_row => r_employee - ,in_employee_id => co_id - ); + out_row => r_employee + ,in_employee_id => co_id + ); end; / diff --git a/main/4-language-usage/7-stored-objects/1-general/g-7120/index.html b/main/4-language-usage/7-stored-objects/1-general/g-7120/index.html index 2f31a00a..2a1ba67e 100644 --- a/main/4-language-usage/7-stored-objects/1-general/g-7120/index.html +++ b/main/4-language-usage/7-stored-objects/1-general/g-7120/index.html @@ -3485,10 +3485,8 @@

Example (bad)

17 18 19 -20 -21
create or replace package body employee_api is
-   function -- NOSONAR: non-deterministic
-   employee_by_id(in_employee_id in integer)
+20
create or replace package body employee_api is
+   function employee_by_id(in_employee_id in integer) -- NOSONAR: non-deterministic
       return employees%rowtype is
       co_employee_id constant employees.employee_id%type := in_employee_id;
       r_employee     employees%rowtype;
@@ -3504,9 +3502,9 @@ 

Example (bad)

null; when too_many_rows then raise; - end; -end; -/ + end; +end; +/

Example (good)

 1
@@ -3545,9 +3543,9 @@ 

Example (good)

null; when too_many_rows then raise; - end employee_by_id; -end employee_api; -/ + end employee_by_id; +end employee_api; +/
diff --git a/main/4-language-usage/7-stored-objects/1-general/g-7125/index.html b/main/4-language-usage/7-stored-objects/1-general/g-7125/index.html index 8c9af34b..879701d6 100644 --- a/main/4-language-usage/7-stored-objects/1-general/g-7125/index.html +++ b/main/4-language-usage/7-stored-objects/1-general/g-7125/index.html @@ -3485,8 +3485,8 @@

Example (bad)

17 18 19 -20
create package body employee_api is
-   function employee_by_id(in_employee_id in integer) -- NOSONAR: non-deterministic
+20
create package body employee_api is
+   function employee_by_id(in_employee_id in integer) -- NOSONAR: non-deterministic
       return employees%rowtype is
       co_employee_id constant employees.employee_id%type := in_employee_id;
       r_employee     employees%rowtype;
@@ -3526,8 +3526,8 @@ 

Example (good)

17 18 19 -20
create or replace package body employee_api is
-   function employee_by_id(in_employee_id in integer) -- NOSONAR: non-deterministic
+20
create or replace package body employee_api is
+   function employee_by_id(in_employee_id in integer) -- NOSONAR: non-deterministic
       return employees%rowtype is
       co_employee_id constant employees.employee_id%type := in_employee_id;
       r_employee     employees%rowtype;
diff --git a/main/4-language-usage/7-stored-objects/1-general/g-7130/index.html b/main/4-language-usage/7-stored-objects/1-general/g-7130/index.html
index 67fc3cb7..ce45ad18 100644
--- a/main/4-language-usage/7-stored-objects/1-general/g-7130/index.html
+++ b/main/4-language-usage/7-stored-objects/1-general/g-7130/index.html
@@ -3500,12 +3500,12 @@ 

Example (bad)

co_employee_id constant employees.employee_id%type := in_employee_id; r_emp employees%rowtype; - function commission return number is -- NOSONAR: non-deterministic - l_commission employees.salary%type := 0; + function commission return number is -- NOSONAR: non-deterministic + l_commission employees.salary%type := 0; begin - if r_emp.commission_pct is not null then - l_commission := r_emp.salary * r_emp.commission_pct; - end if; + if r_emp.commission_pct is not null then + l_commission := r_emp.salary * r_emp.commission_pct; + end if; return l_commission; end commission; @@ -3571,9 +3571,9 @@

Example (good)

r_emp employees%rowtype; function commission( - in_salary in number - ,in_comm_pct in number - ) + in_salary in number + ,in_comm_pct in number + ) return number deterministic is @@ -3581,9 +3581,9 @@

Example (good)

co_comm_pct constant employees.commission_pct%type := in_comm_pct; l_commission employees.salary%type := 0; begin - if in_comm_pct is not null then - l_commission := co_salary * co_comm_pct; - end if; + if in_comm_pct is not null then + l_commission := co_salary * co_comm_pct; + end if; return l_commission; end commission; diff --git a/main/4-language-usage/7-stored-objects/1-general/g-7140/index.html b/main/4-language-usage/7-stored-objects/1-general/g-7140/index.html index f0926948..ba5b71ec 100644 --- a/main/4-language-usage/7-stored-objects/1-general/g-7140/index.html +++ b/main/4-language-usage/7-stored-objects/1-general/g-7140/index.html @@ -3483,8 +3483,8 @@

Example (bad)

13 14
create or replace package body my_package is
    procedure my_procedure is
-      function my_func return number
-         deterministic
+      function my_func return number
+         deterministic
       is
          co_true constant integer := 1;
       begin
@@ -3512,16 +3512,16 @@ 

Example (good)

13 14
create or replace package body my_package is
    procedure my_procedure is
-      function my_func return number
-         deterministic
+      function my_func return number
+         deterministic
       is
          co_true constant integer := 1;
       begin
          return co_true;
       end my_func;
    begin
-      sys.dbms_output.put_line(my_func());
-   end my_procedure;
+      sys.dbms_output.put_line(my_func());
+   end my_procedure;
 end my_package;
 /
 
diff --git a/main/4-language-usage/7-stored-objects/1-general/g-7150/index.html b/main/4-language-usage/7-stored-objects/1-general/g-7150/index.html index 00152fb9..5ed8fc98 100644 --- a/main/4-language-usage/7-stored-objects/1-general/g-7150/index.html +++ b/main/4-language-usage/7-stored-objects/1-general/g-7150/index.html @@ -3492,8 +3492,8 @@

Example (bad)

24
create or replace package body department_api is
    function name_by_id( -- NOSONAR: non-deterministic
       in_department_id in integer
-     ,in_manager       in employees%rowtype
-   )
+     ,in_manager       in employees%rowtype
+   )
       return departments.department_name%type is
       co_department_id  constant departments.department_id%type := in_department_id;
       l_department_name departments.department_name%type;
diff --git a/main/4-language-usage/7-stored-objects/1-general/g-7160/index.html b/main/4-language-usage/7-stored-objects/1-general/g-7160/index.html
index 055a031e..c87a481b 100644
--- a/main/4-language-usage/7-stored-objects/1-general/g-7160/index.html
+++ b/main/4-language-usage/7-stored-objects/1-general/g-7160/index.html
@@ -3476,11 +3476,11 @@ 

Example (bad)

8 9
create or replace package employee_api is
    procedure store(io_id       in out employees.id%type
-                  ,in_first_name      employees.first_name%type
-                  ,in_last_name       employees.last_name%type
-                  ,in_email           employees.email%type
-                  ,in_department_id   employees.department_id%type
-                  ,out_success out    pls_integer);
+                  ,in_first_name      employees.first_name%type
+                  ,in_last_name       employees.last_name%type
+                  ,in_email           employees.email%type
+                  ,in_department_id   employees.department_id%type
+                  ,out_success out    pls_integer);
 end employee_up;
 /
 
@@ -3495,11 +3495,11 @@

Example (good)

8 9
create or replace package employee_api is
    procedure store(io_id            in out employees.id%type
-                  ,in_first_name    in     employees.first_name%type
-                  ,in_last_name     in     employees.last_name%type
-                  ,in_email         in     employees.email%type
-                  ,in_department_id in     employees.department_id%type
-                  ,out_success      out    pls_integer);
+                  ,in_first_name    in     employees.first_name%type
+                  ,in_last_name     in     employees.last_name%type
+                  ,in_email         in     employees.email%type
+                  ,in_department_id in     employees.department_id%type
+                  ,out_success      out    pls_integer);
 end employee_up;
 /
 
diff --git a/main/4-language-usage/7-stored-objects/1-general/g-7170/index.html b/main/4-language-usage/7-stored-objects/1-general/g-7170/index.html index 757813cb..82ef2afe 100644 --- a/main/4-language-usage/7-stored-objects/1-general/g-7170/index.html +++ b/main/4-language-usage/7-stored-objects/1-general/g-7170/index.html @@ -3510,17 +3510,17 @@

Example (bad)

38 39
create or replace package body employee_up is
    procedure rcv_emp(
-      io_first_name     in out employees.first_name%type
-     ,io_last_name      in out employees.last_name%type
-     ,io_email          in out employees.email%type
-     ,io_phone_number   in out employees.phone_number%type
-     ,io_hire_date      in out employees.hire_date%type
-     ,io_job_id         in out employees.job_id%type
-     ,io_salary         in out employees.salary%type
-     ,io_commission_pct in out employees.commission_pct%type
-     ,io_manager_id     in out employees.manager_id%type
-     ,io_department_id  in out employees.department_id%type
-     ,in_wait           in     integer
+      io_first_name     in out employees.first_name%type
+     ,io_last_name      in out employees.last_name%type
+     ,io_email          in out employees.email%type
+     ,io_phone_number   in out employees.phone_number%type
+     ,io_hire_date      in out employees.hire_date%type
+     ,io_job_id         in out employees.job_id%type
+     ,io_salary         in out employees.salary%type
+     ,io_commission_pct in out employees.commission_pct%type
+     ,io_manager_id     in out employees.manager_id%type
+     ,io_department_id  in out employees.department_id%type
+     ,in_wait           in     integer
    ) is
       l_status          pls_integer;
       co_dflt_pipe_name constant string(30 char) := 'MyPipe';
@@ -3589,17 +3589,17 @@ 

Example (good)

38 39
create or replace package body employee_up is
    procedure rcv_emp(
-      out_first_name     out employees.first_name%type
-     ,out_last_name      out employees.last_name%type
-     ,out_email          out employees.email%type
-     ,out_phone_number   out employees.phone_number%type
-     ,out_hire_date      out employees.hire_date%type
-     ,out_job_id         out employees.job_id%type
-     ,out_salary         out employees.salary%type
-     ,out_commission_pct out employees.commission_pct%type
-     ,out_manager_id     out employees.manager_id%type
-     ,out_department_id  out employees.department_id%type
-     ,in_wait            in  integer
+      out_first_name     out employees.first_name%type
+     ,out_last_name      out employees.last_name%type
+     ,out_email          out employees.email%type
+     ,out_phone_number   out employees.phone_number%type
+     ,out_hire_date      out employees.hire_date%type
+     ,out_job_id         out employees.job_id%type
+     ,out_salary         out employees.salary%type
+     ,out_commission_pct out employees.commission_pct%type
+     ,out_manager_id     out employees.manager_id%type
+     ,out_department_id  out employees.department_id%type
+     ,in_wait            in  integer
    ) is
       l_status          pls_integer;
       co_dflt_pipe_name constant string(30 char) := 'MyPipe';
diff --git a/main/4-language-usage/7-stored-objects/2-packages/g-7220/index.html b/main/4-language-usage/7-stored-objects/2-packages/g-7220/index.html
index 07232552..cf5a9d40 100644
--- a/main/4-language-usage/7-stored-objects/2-packages/g-7220/index.html
+++ b/main/4-language-usage/7-stored-objects/2-packages/g-7220/index.html
@@ -3505,8 +3505,8 @@ 

Example (bad)

/ create or replace package body department_api is - function does_exist(in_department_id in departments.department_id%type) -- violates also G-7460 - return boolean is + function does_exist(in_department_id in departments.department_id%type) -- violates also G-7460 + return boolean is co_department_id constant departments.department_id%type := in_department_id; l_return pls_integer; begin @@ -3577,8 +3577,8 @@

Example (good)

/ create or replace package body department_api is - function does_exist(in_department_id in departments.department_id%type) -- NOSONAR: non-deterministic - return boolean; + function does_exist(in_department_id in departments.department_id%type) -- NOSONAR: non-deterministic + return boolean; procedure del(in_department_id in departments.department_id%type) is co_department_id constant departments.department_id%type := in_department_id; @@ -3588,8 +3588,8 @@

Example (good)

end if; end del; - function does_exist(in_department_id in departments.department_id%type) -- NOSONAR: non-deterministic - return boolean is + function does_exist(in_department_id in departments.department_id%type) -- NOSONAR: non-deterministic + return boolean is co_department_id constant departments.department_id%type := in_department_id; l_return pls_integer; begin diff --git a/main/4-language-usage/7-stored-objects/2-packages/g-7230/index.html b/main/4-language-usage/7-stored-objects/2-packages/g-7230/index.html index 16d678d6..58a284ef 100644 --- a/main/4-language-usage/7-stored-objects/2-packages/g-7230/index.html +++ b/main/4-language-usage/7-stored-objects/2-packages/g-7230/index.html @@ -3495,8 +3495,8 @@

Example (bad)

24
create or replace package employee_api as
    co_min_increase constant types_up.sal_increase_type := 0.01;
    co_max_increase constant types_up.sal_increase_type := 0.5;
-   g_salary_increase types_up.sal_increase_type := co_min_increase;
-
+   g_salary_increase types_up.sal_increase_type := co_min_increase;
+
    procedure set_salary_increase(in_increase in types_up.sal_increase_type);
    function salary_increase return types_up.sal_increase_type; -- NOSONAR: non-deterministic
 end employee_api;
@@ -3568,8 +3568,8 @@ 

Example (good)

/ create or replace package body employee_api as - g_salary_increase types_up.sal_increase_type; - + g_salary_increase types_up.sal_increase_type; + procedure init; procedure set_salary_increase(in_increase in types_up.sal_increase_type) is diff --git a/main/4-language-usage/7-stored-objects/2-packages/g-7250/index.html b/main/4-language-usage/7-stored-objects/2-packages/g-7250/index.html index c6b41f94..40d13276 100644 --- a/main/4-language-usage/7-stored-objects/2-packages/g-7250/index.html +++ b/main/4-language-usage/7-stored-objects/2-packages/g-7250/index.html @@ -3504,10 +3504,10 @@

Example (bad)

end salary_increase; begin - g_salary_increase := constants_up.min_salary_increase(); - - return; -- violates also G-1040 - + g_salary_increase := constants_up.min_salary_increase(); + + return; -- violates also G-1040 + set_salary_increase(constants_up.min_salary_increase()); -- dead code end employee_api; / @@ -3547,8 +3547,8 @@

Example (good)

end salary_increase; begin - g_salary_increase := constants_up.min_salary_increase(); -end employee_api; + g_salary_increase := constants_up.min_salary_increase(); +end employee_api; /
diff --git a/main/4-language-usage/7-stored-objects/3-procedures/g-7310/index.html b/main/4-language-usage/7-stored-objects/3-procedures/g-7310/index.html index b0fcb942..c4944ce4 100644 --- a/main/4-language-usage/7-stored-objects/3-procedures/g-7310/index.html +++ b/main/4-language-usage/7-stored-objects/3-procedures/g-7310/index.html @@ -3471,8 +3471,8 @@

Example (bad)

2 3 4 -5
create or replace procedure my_procedure is
-begin
+5
create or replace procedure my_procedure is
+begin
    null;
 end my_procedure;
 /
@@ -3495,8 +3495,8 @@ 

Example (good)

/ create or replace package body my_package is - procedure my_procedure is - begin + procedure my_procedure is + begin null; end my_procedure; end my_package; diff --git a/main/4-language-usage/7-stored-objects/3-procedures/g-7320/index.html b/main/4-language-usage/7-stored-objects/3-procedures/g-7320/index.html index f61ccfe5..9dc9a317 100644 --- a/main/4-language-usage/7-stored-objects/3-procedures/g-7320/index.html +++ b/main/4-language-usage/7-stored-objects/3-procedures/g-7320/index.html @@ -3490,8 +3490,8 @@

Example (bad)

<<mod7_loop>> loop if mod(l_idx,co_modulo) = 0 then - return; - end if; + return; + end if; l_idx := l_idx + 1; end loop mod7_loop; @@ -3520,8 +3520,8 @@

Example (good)

begin <<mod7_loop>> loop - exit mod7_loop when mod(l_idx,co_modulo) = 0; - + exit mod7_loop when mod(l_idx,co_modulo) = 0; + l_idx := l_idx + 1; end loop mod7_loop; end my_procedure; diff --git a/main/4-language-usage/7-stored-objects/3-procedures/g-7330/index.html b/main/4-language-usage/7-stored-objects/3-procedures/g-7330/index.html index d32eef98..059ddfcc 100644 --- a/main/4-language-usage/7-stored-objects/3-procedures/g-7330/index.html +++ b/main/4-language-usage/7-stored-objects/3-procedures/g-7330/index.html @@ -3481,8 +3481,8 @@

Example (bad)

13
create or replace package body my_package is
    procedure greet(
       in_name      in  varchar2
-     ,out_greeting out varchar2 -- violates also G-7150
-   ) is
+     ,out_greeting out varchar2 -- violates also G-7150
+   ) is
       l_message types_up.text;
       co_name   constant employees.first_name := in_name;
       co_hello  constant types_up.text        := 'Hello, ';
@@ -3507,13 +3507,13 @@ 

Example (good)

12
create or replace package body my_package is
    procedure greet(
       in_name      in  varchar2
-     ,out_greeting out varchar2
-   ) is
+     ,out_greeting out varchar2
+   ) is
       co_name  constant employees.first_name := in_name;
       co_hello constant types_up.text        := 'Hello, ';
    begin
-      out_greeting := co_hello || co_name;
-   end greet;
+      out_greeting := co_hello || co_name;
+   end greet;
 end my_package;
 /
 
diff --git a/main/4-language-usage/7-stored-objects/4-functions/g-7410/index.html b/main/4-language-usage/7-stored-objects/4-functions/g-7410/index.html index 21a737e0..1c0c434b 100644 --- a/main/4-language-usage/7-stored-objects/4-functions/g-7410/index.html +++ b/main/4-language-usage/7-stored-objects/4-functions/g-7410/index.html @@ -3473,8 +3473,8 @@

Example (bad)

4 5 6 -7
create or replace function my_function return varchar2
-   deterministic
+7
create or replace function my_function return varchar2
+   deterministic
 is
 begin
    return null;
@@ -3491,8 +3491,8 @@ 

Example (good)

7 8 9
create or replace package body my_package is
-   function my_function return varchar2
-      deterministic
+   function my_function return varchar2
+      deterministic
    is
    begin
       return null;
diff --git a/main/4-language-usage/7-stored-objects/4-functions/g-7420/index.html b/main/4-language-usage/7-stored-objects/4-functions/g-7420/index.html
index 772ce8d9..93971685 100644
--- a/main/4-language-usage/7-stored-objects/4-functions/g-7420/index.html
+++ b/main/4-language-usage/7-stored-objects/4-functions/g-7420/index.html
@@ -3501,8 +3501,8 @@ 

Example (bad)

loop l_ret := l_ret + i; if i = in_to then - return l_ret; - end if; + return l_ret; + end if; end loop for_loop; end my_function; end my_package; @@ -3542,8 +3542,8 @@

Example (good)

loop l_ret := l_ret + i; end loop for_loop; - return l_ret; - end my_function; + return l_ret; + end my_function; end my_package; /
diff --git a/main/4-language-usage/7-stored-objects/4-functions/g-7430/index.html b/main/4-language-usage/7-stored-objects/4-functions/g-7430/index.html index 5788d657..e43091ce 100644 --- a/main/4-language-usage/7-stored-objects/4-functions/g-7430/index.html +++ b/main/4-language-usage/7-stored-objects/4-functions/g-7430/index.html @@ -3500,10 +3500,10 @@

Example (bad)

co_yes constant pls_integer := 1; begin if in_value = co_yes then - return true; - else - return false; - end if; + return true; + else + return false; + end if; end my_function; end my_package; / @@ -3538,8 +3538,8 @@

Example (better)

l_ret := false; end if; - return l_ret; - end my_function; + return l_ret; + end my_function; end my_package; /
@@ -3559,8 +3559,8 @@

Example (good)

is co_yes constant pls_integer := 1; begin - return in_value = co_yes; - end my_function; + return in_value = co_yes; + end my_function; end my_package; /
diff --git a/main/4-language-usage/7-stored-objects/4-functions/g-7440/index.html b/main/4-language-usage/7-stored-objects/4-functions/g-7440/index.html index bdfa94d5..434cbf86 100644 --- a/main/4-language-usage/7-stored-objects/4-functions/g-7440/index.html +++ b/main/4-language-usage/7-stored-objects/4-functions/g-7440/index.html @@ -3476,8 +3476,8 @@

Example (bad)

8 9 10
create or replace package body my_package is
-   function my_function(out_date out date) return boolean
-      deterministic
+   function my_function(out_date out date) return boolean
+      deterministic
    is
    begin
       out_date := sysdate;
@@ -3496,8 +3496,8 @@ 

Example (good)

7 8 9
create or replace package body my_package is
-   function my_function return date
-      deterministic
+   function my_function return date
+      deterministic
    is
    begin
       return sysdate;
diff --git a/main/4-language-usage/7-stored-objects/4-functions/g-7450/index.html b/main/4-language-usage/7-stored-objects/4-functions/g-7450/index.html
index 425f4e6b..edb8665c 100644
--- a/main/4-language-usage/7-stored-objects/4-functions/g-7450/index.html
+++ b/main/4-language-usage/7-stored-objects/4-functions/g-7450/index.html
@@ -3479,8 +3479,8 @@ 

Example (bad)

deterministic is begin - return null; - end my_function; + return null; + end my_function; end my_package; /
@@ -3498,8 +3498,8 @@

Example (good)

deterministic is begin - return true; - end my_function; + return true; + end my_function; end my_package; /
diff --git a/main/4-language-usage/7-stored-objects/4-functions/g-7460/index.html b/main/4-language-usage/7-stored-objects/4-functions/g-7460/index.html index cc733c71..23fd01c3 100644 --- a/main/4-language-usage/7-stored-objects/4-functions/g-7460/index.html +++ b/main/4-language-usage/7-stored-objects/4-functions/g-7460/index.html @@ -3472,8 +3472,8 @@

Example (bad)

4 5
create or replace package department_api is
    function name_by_id(in_department_id in departments.department_id%type)
-      return departments.department_name%type;
-end department_api;
+      return departments.department_name%type;
+end department_api;
 /
 

Example (good)

@@ -3484,9 +3484,9 @@

Example (good)

5 6
create or replace package department_api is
    function name_by_id(in_department_id in departments.department_id%type)
-      return departments.department_name%type
-      deterministic;
-end department_api;
+      return departments.department_name%type
+      deterministic;
+end department_api;
 /
 
diff --git a/main/4-language-usage/7-stored-objects/5-oracle-supplied-packages/g-7510/index.html b/main/4-language-usage/7-stored-objects/5-oracle-supplied-packages/g-7510/index.html index 7c90324a..6a611119 100644 --- a/main/4-language-usage/7-stored-objects/5-oracle-supplied-packages/g-7510/index.html +++ b/main/4-language-usage/7-stored-objects/5-oracle-supplied-packages/g-7510/index.html @@ -3474,8 +3474,8 @@

Example (bad)

6
declare
    co_hello_world constant string(30 char) := 'Hello World';
 begin
-   dbms_output.put_line(co_hello_world);
-end;
+   dbms_output.put_line(co_hello_world);
+end;
 /
 

Example (good)

@@ -3487,8 +3487,8 @@

Example (good)

6
declare
    co_hello_world constant string(30 char) := 'Hello World';
 begin
-   sys.dbms_output.put_line(co_hello_world);
-end;
+   sys.dbms_output.put_line(co_hello_world);
+end;
 /
 
diff --git a/main/4-language-usage/7-stored-objects/7-triggers/g-7710/index.html b/main/4-language-usage/7-stored-objects/7-triggers/g-7710/index.html index 3d4ed170..ed89398f 100644 --- a/main/4-language-usage/7-stored-objects/7-triggers/g-7710/index.html +++ b/main/4-language-usage/7-stored-objects/7-triggers/g-7710/index.html @@ -3498,8 +3498,8 @@

Example (bad)

30
create or replace trigger dept_br_u
 before update on departments for each row
 begin
-   insert into departments_hist (
-      department_id
+   insert into departments_hist (
+      department_id
      ,department_name
      ,manager_id
      ,location_id
@@ -3513,10 +3513,10 @@ 

Example (bad)

end; / create or replace trigger dept_hist_br_i -before insert on departments_hist for each row -begin - insert into departments_log ( - department_id +before insert on departments_hist for each row +begin + insert into departments_log ( + department_id ,department_name ,modification_date) values ( @@ -3556,8 +3556,8 @@

Example (good)

27
create or replace trigger dept_br_u
 before update on departments for each row
 begin
-   insert into departments_hist (
-      department_id
+   insert into departments_hist (
+      department_id
      ,department_name
      ,manager_id
      ,location_id
@@ -3569,8 +3569,8 @@ 

Example (good)

,:old.location_id ,sysdate); - insert into departments_log ( - department_id + insert into departments_log ( + department_id ,department_name ,modification_date) values ( diff --git a/main/4-language-usage/7-stored-objects/7-triggers/g-7720/index.html b/main/4-language-usage/7-stored-objects/7-triggers/g-7720/index.html index 58fc3fd4..55378e42 100644 --- a/main/4-language-usage/7-stored-objects/7-triggers/g-7720/index.html +++ b/main/4-language-usage/7-stored-objects/7-triggers/g-7720/index.html @@ -3481,8 +3481,8 @@

Example (bad)

13 14 15
create or replace trigger dept_br_u
-before update of department_id or update of department_name -- violates also G-7730
-on departments for each row
+before update of department_id or update of department_name -- violates also G-7730
+on departments for each row
 begin
    -- will only fire on updates of department_name
    insert into departments_log (
@@ -3511,8 +3511,8 @@ 

Example (good)

12 13 14
create or replace trigger dept_br_u
-before update of department_id,department_name
-on departments for each row
+before update of department_id,department_name
+on departments for each row
 begin
    insert into departments_log (
       department_id
diff --git a/main/4-language-usage/7-stored-objects/7-triggers/g-7730/index.html b/main/4-language-usage/7-stored-objects/7-triggers/g-7730/index.html
index cec1caa1..c6591420 100644
--- a/main/4-language-usage/7-stored-objects/7-triggers/g-7730/index.html
+++ b/main/4-language-usage/7-stored-objects/7-triggers/g-7730/index.html
@@ -3479,8 +3479,8 @@ 

Example (bad)

10 11 12
create or replace trigger dept_br_iu
-before insert or update
-on departments for each row
+before insert or update
+on departments for each row
 begin
    if inserting then
       :new.created_date := sysdate;
@@ -3507,16 +3507,16 @@ 

Example (good)

13 14 15
create or replace trigger dept_br_i
-before insert
-on departments for each row
+before insert
+on departments for each row
 begin
    :new.created_date := sysdate;
 end;
 /
 
 create or replace trigger dept_br_u
-before update
-on departments for each row
+before update
+on departments for each row
 begin
    :new.changed_date := sysdate;
 end;
diff --git a/main/4-language-usage/7-stored-objects/7-triggers/g-7740/index.html b/main/4-language-usage/7-stored-objects/7-triggers/g-7740/index.html
index 9d75a005..37c07cef 100644
--- a/main/4-language-usage/7-stored-objects/7-triggers/g-7740/index.html
+++ b/main/4-language-usage/7-stored-objects/7-triggers/g-7740/index.html
@@ -3498,12 +3498,12 @@ 

Example (bad)

11 12 13
create or replace trigger dept_br_iu
-before insert or update -- NOSONAR: G-7730
-on departments for each row
+before insert or update -- NOSONAR: G-7730
+on departments for each row
 begin
    if inserting then
-      :new.department_id := department_seq.nextval; -- NOSONAR: G-3150
-      :new.created_date  := sysdate;
+      :new.department_id := department_seq.nextval; -- NOSONAR: G-3150
+      :new.created_date  := sysdate;
    end if;
    if updating then
       :new.changed_date := sysdate;
@@ -3528,17 +3528,17 @@ 

Example (good)

14 15 16
create or replace trigger dept_br_i
-before insert
-on departments for each row
+before insert
+on departments for each row
 begin
-   :new.department_id := department_seq.nextval; -- NOSONAR: G-3150
-   :new.created_date  := sysdate;
+   :new.department_id := department_seq.nextval; -- NOSONAR: G-3150
+   :new.created_date  := sysdate;
 end;
 /
 
 create or replace trigger dept_br_u
-before update
-on departments for each row
+before update
+on departments for each row
 begin
    :new.changed_date := sysdate;
 end;
diff --git a/main/4-language-usage/7-stored-objects/8-sequences/g-7810/index.html b/main/4-language-usage/7-stored-objects/8-sequences/g-7810/index.html
index 3ddf255d..b8444ccf 100644
--- a/main/4-language-usage/7-stored-objects/8-sequences/g-7810/index.html
+++ b/main/4-language-usage/7-stored-objects/8-sequences/g-7810/index.html
@@ -3477,8 +3477,8 @@ 

Example (bad)

9
declare
    l_sequence_number employees.employee_id%type;
 begin
-   select employees_seq.nextval
-     into l_sequence_number
+   select employees_seq.nextval
+     into l_sequence_number
      from dual;
    my_package.do_something(l_sequence_number);
 end;
@@ -3494,8 +3494,8 @@ 

Example (good)

7
declare
    l_sequence_number employees.employee_id%type;
 begin
-   l_sequence_number := employees_seq.nextval;
-   my_package.do_something(l_sequence_number);
+   l_sequence_number := employees_seq.nextval;
+   my_package.do_something(l_sequence_number);
 end;
 /
 
diff --git a/main/4-language-usage/7-stored-objects/9-sql-macros/g-7910/index.html b/main/4-language-usage/7-stored-objects/9-sql-macros/g-7910/index.html index c0ebfbcf..d7c8aa0e 100644 --- a/main/4-language-usage/7-stored-objects/9-sql-macros/g-7910/index.html +++ b/main/4-language-usage/7-stored-objects/9-sql-macros/g-7910/index.html @@ -3500,10 +3500,10 @@

Example (bad)

function row_generator(in_num_rows in number) -- NOSONAR: non-deterministic return varchar2 sql_macro as begin - insert into function_calls(name,called_at,parameter_value) - values ($$plsql_unit,current_timestamp,in_num_rows); - commit; - + insert into function_calls(name,called_at,parameter_value) + values ($$plsql_unit,current_timestamp,in_num_rows); + commit; + return 'select level as row_sequence -- NOSONAR: G-1050 from dual connect by level <= in_num_rows'; diff --git a/main/4-language-usage/8-patterns/1-checking-the-number-of-rows/g-8110/index.html b/main/4-language-usage/8-patterns/1-checking-the-number-of-rows/g-8110/index.html index a7e8260c..b4784cf4 100644 --- a/main/4-language-usage/8-patterns/1-checking-the-number-of-rows/g-8110/index.html +++ b/main/4-language-usage/8-patterns/1-checking-the-number-of-rows/g-8110/index.html @@ -3493,8 +3493,8 @@

Example (bad)

co_zero constant simple_integer := 0; co_salary constant employees.salary%type := 5000; begin - select count(*) - into l_count + select count(*) + into l_count from employees where salary < co_salary; if l_count > co_zero then @@ -3537,8 +3537,8 @@

Example (good)

for r_emp in ( select e1.employee_id from employees e1 - where exists( - select e2.salary + where exists( + select e2.salary from employees e2 where e2.salary < co_salary ) diff --git a/main/4-language-usage/8-patterns/1-checking-the-number-of-rows/g-8120/index.html b/main/4-language-usage/8-patterns/1-checking-the-number-of-rows/g-8120/index.html index 2e632000..51b2c5a6 100644 --- a/main/4-language-usage/8-patterns/1-checking-the-number-of-rows/g-8120/index.html +++ b/main/4-language-usage/8-patterns/1-checking-the-number-of-rows/g-8120/index.html @@ -3490,9 +3490,9 @@

Example (bad)

from departments where department_id = in_r_department.department_id; - if l_count = 0 then - insert into departments - values in_r_department; + if l_count = 0 then + insert into departments + values in_r_department; end if; end ins; end department_api; @@ -3512,11 +3512,11 @@

Example (good)

11
create or replace package body department_api is
    procedure ins(in_r_department in departments%rowtype) is
    begin
-      insert into departments
-      values in_r_department;
+      insert into departments
+      values in_r_department;
    exception
-      when dup_val_on_index then
-         null; -- handle exception
+      when dup_val_on_index then
+         null; -- handle exception
    end ins;
 end department_api;
 /
diff --git a/main/4-language-usage/8-patterns/2-access-objects-of-foreign-application-schemas/g-8210/index.html b/main/4-language-usage/8-patterns/2-access-objects-of-foreign-application-schemas/g-8210/index.html
index 4db3989e..e1465d76 100644
--- a/main/4-language-usage/8-patterns/2-access-objects-of-foreign-application-schemas/g-8210/index.html
+++ b/main/4-language-usage/8-patterns/2-access-objects-of-foreign-application-schemas/g-8210/index.html
@@ -3486,8 +3486,8 @@ 

Example (bad)

begin select p.product_name into l_product_name - from oe.products p - where list_price > co_price; + from oe.products p + where list_price > co_price; exception when no_data_found then null; -- handle_no_data_found; @@ -3513,16 +3513,16 @@

Example (good)

14 15 16 -17
create synonym oe_products for oe.products;
-
+17
create synonym oe_products for oe.products;
+
 declare
    l_product_name oe_products.product_name%type;
    co_price       constant oe_products.list_price%type := 1000;
 begin
    select p.product_name
      into l_product_name
-     from oe_products p
-    where list_price > co_price;
+     from oe_products p
+    where list_price > co_price;
 exception
    when no_data_found then
       null; -- handle_no_data_found;
diff --git a/main/4-language-usage/8-patterns/3-validating-input-parameter-size/g-8310/index.html b/main/4-language-usage/8-patterns/3-validating-input-parameter-size/g-8310/index.html
index e6db4964..288484c0 100644
--- a/main/4-language-usage/8-patterns/3-validating-input-parameter-size/g-8310/index.html
+++ b/main/4-language-usage/8-patterns/3-validating-input-parameter-size/g-8310/index.html
@@ -3509,8 +3509,8 @@ 

Example (bad)

27 28
create or replace package body department_api is
    function dept_by_name( -- NOSONAR: non-deterministic
-      in_dept_name in departments.department_name%type
-   )
+      in_dept_name in departments.department_name%type
+   )
       return departments%rowtype is
       r_return                departments%rowtype;
       co_max_dept_name_length constant integer := 20;
@@ -3563,11 +3563,11 @@ 

Example (good)

24 25
create or replace package body department_api is
    function dept_by_name( -- NOSONAR: non-deterministic
-      in_dept_name in departments.department_name%type
-   )
+      in_dept_name in departments.department_name%type
+   )
       return departments%rowtype is
-      co_dept_name constant departments.department_name%type not null := in_dept_name;
-      r_return     departments%rowtype;
+      co_dept_name constant departments.department_name%type not null := in_dept_name;
+      r_return     departments%rowtype;
    begin
       -- get the department by name
       <<trap>>
@@ -3605,8 +3605,8 @@ 

Example (good)

r_department := department_api.dept_by_name(co_dept_name); post_processing; exception - when value_error then - handle_error; + when value_error then + handle_error; end; /
diff --git a/main/4-language-usage/8-patterns/4-ensure-single-execution-at-a-time-of-a-program-unit/g-8410/index.html b/main/4-language-usage/8-patterns/4-ensure-single-execution-at-a-time-of-a-program-unit/g-8410/index.html index c2634e27..1ea7559b 100644 --- a/main/4-language-usage/8-patterns/4-ensure-single-execution-at-a-time-of-a-program-unit/g-8410/index.html +++ b/main/4-language-usage/8-patterns/4-ensure-single-execution-at-a-time-of-a-program-unit/g-8410/index.html @@ -3521,14 +3521,14 @@

Example (bad)

co_lock_name constant app_locks.lock_name%type := in_lock_name; begin -- raises dup_val_on_index - insert into app_locks (lock_name) values (co_lock_name); - end request_lock; + insert into app_locks (lock_name) values (co_lock_name); + end request_lock; procedure release_lock(in_lock_name in varchar2) is co_lock_name constant app_locks.lock_name%type := in_lock_name; begin - delete from app_locks where lock_name = co_lock_name; - end release_lock; + delete from app_locks where lock_name = co_lock_name; + end release_lock; end lock_up; / @@ -3624,8 +3624,8 @@

Example (good)

,lockhandle => l_lock_handle ,expiration_secs => constants_up.co_one_week ); - if sys.dbms_lock.request( - lockhandle => l_lock_handle + if sys.dbms_lock.request( + lockhandle => l_lock_handle ,lockmode => sys.dbms_lock.x_mode ,timeout => sys.dbms_lock.maxwait ,release_on_commit => co_release_on_commit @@ -3639,8 +3639,8 @@

Example (good)

procedure release_lock(in_lock_handle in varchar2) is co_lock_type constant type_up.lock_handle := in_lock_handle; begin - if sys.dbms_lock.release(lockhandle => co_lock_type) > 0 then - raise err.e_lock_request_failed; + if sys.dbms_lock.release(lockhandle => co_lock_type) > 0 then + raise err.e_lock_request_failed; end if; end release_lock; end lock_up; diff --git a/main/4-language-usage/8-patterns/5-use-dbms-application-info-package-to-follow-progress-of-a-process/g-8510/index.html b/main/4-language-usage/8-patterns/5-use-dbms-application-info-package-to-follow-progress-of-a-process/g-8510/index.html index affd7761..63614594 100644 --- a/main/4-language-usage/8-patterns/5-use-dbms-application-info-package-to-follow-progress-of-a-process/g-8510/index.html +++ b/main/4-language-usage/8-patterns/5-use-dbms-application-info-package-to-follow-progress-of-a-process/g-8510/index.html @@ -3496,8 +3496,8 @@

Example (bad)

) loop -- some processing - sys.dbms_output.put_line(emp_rec.employee_id); - end loop employees; + sys.dbms_output.put_line(emp_rec.employee_id); + end loop employees; end process_emps; end employee_api; / @@ -3541,8 +3541,8 @@

Example (good)

) loop -- some processing - sys.dbms_application_info.set_action(co_label || emp_rec.employee_id); - end loop employees; + sys.dbms_application_info.set_action(co_label || emp_rec.employee_id); + end loop employees; end process_emps; end employee_api; / diff --git a/main/4-language-usage/9-function-usage/g-9010/index.html b/main/4-language-usage/9-function-usage/g-9010/index.html index 75af4070..611eb985 100644 --- a/main/4-language-usage/9-function-usage/g-9010/index.html +++ b/main/4-language-usage/9-function-usage/g-9010/index.html @@ -3487,8 +3487,8 @@

Example (bad)

co_dob_str constant type_up.date_string := in_dob_str; begin update employees - set date_of_birth = to_date(co_dob_str default null on conversion error) - where employee_id = co_employee_id; + set date_of_birth = to_date(co_dob_str default null on conversion error) + where employee_id = co_employee_id; end set_dob; end employee_api; / @@ -3521,8 +3521,8 @@

Example (good)

update employees set date_of_birth = to_date( co_dob_str default null on conversion error - ,'FXYYYY-MM-DD' - ) + ,'FXYYYY-MM-DD' + ) where employee_id = co_employee_id; end set_dob; end employee_api; diff --git a/main/4-language-usage/9-function-usage/g-9020/index.html b/main/4-language-usage/9-function-usage/g-9020/index.html index 52a93429..2713fc55 100644 --- a/main/4-language-usage/9-function-usage/g-9020/index.html +++ b/main/4-language-usage/9-function-usage/g-9020/index.html @@ -3487,8 +3487,8 @@

Example (bad)

co_salary constant type_up.date_string := in_salary; begin update employees - set salary = to_number(co_salary default null on conversion error) - where employee_id = co_employee_id; + set salary = to_number(co_salary default null on conversion error) + where employee_id = co_employee_id; end set_dob; end employee_api; / @@ -3521,9 +3521,9 @@

Example (good)

update employees set salary = to_number( co_salary default null on conversion error - ,'99999999999999999999.99999' - ,q'[nls_numeric_characters='.,']' - ) + ,'99999999999999999999.99999' + ,q'[nls_numeric_characters='.,']' + ) where employee_id = co_employee_id; end set_dob; end employee_api; diff --git a/main/4-language-usage/9-function-usage/g-9030/index.html b/main/4-language-usage/9-function-usage/g-9030/index.html index 23341185..cacbf94e 100644 --- a/main/4-language-usage/9-function-usage/g-9030/index.html +++ b/main/4-language-usage/9-function-usage/g-9030/index.html @@ -3502,8 +3502,8 @@

Example (bad)

co_dob_str constant type_up.date_string := in_dob_str; begin update employees - set date_of_birth = to_date(co_dob_str,'FXYYYY-MM-DD') -- violates also G-1050 - where employee_id = co_employee_id; + set date_of_birth = to_date(co_dob_str,'FXYYYY-MM-DD') -- violates also G-1050 + where employee_id = co_employee_id; end set_dob; end employee_api; / @@ -3535,8 +3535,8 @@

Example (good)

begin update employees set date_of_birth = to_date( - co_dob_str default null on conversion error - ,'FXYYYY-MM-DD' -- NOSONAR: G-1050 must be a literal + co_dob_str default null on conversion error + ,'FXYYYY-MM-DD' -- NOSONAR: G-1050 must be a literal ) where employee_id = co_employee_id; end set_dob; diff --git a/main/4-language-usage/9-function-usage/g-9040/index.html b/main/4-language-usage/9-function-usage/g-9040/index.html index 9fa99e6d..0862cbf9 100644 --- a/main/4-language-usage/9-function-usage/g-9040/index.html +++ b/main/4-language-usage/9-function-usage/g-9040/index.html @@ -3493,8 +3493,8 @@

Example (bad)

update employees set date_of_birth = to_date( co_dob_str default null on conversion error - ,'YYYY-MM-DD' - ) + ,'YYYY-MM-DD' + ) where employee_id = co_employee_id; end set_dob; end employee_api; @@ -3528,8 +3528,8 @@

Example (good)

update employees set date_of_birth = to_date( co_dob_str default null on conversion error - ,'FXYYYY-MM-DD' - ) + ,'FXYYYY-MM-DD' + ) where employee_id = co_employee_id; end set_dob; end employee_api; diff --git a/main/9-appendix/PLSQL-and-SQL-Coding-Guidelines.pdf b/main/9-appendix/PLSQL-and-SQL-Coding-Guidelines.pdf index a20402433dec9f19d2009ceddd227ffa1ec8ac7a..89ef02bd876516096542b3644c6c225849d5b3fe 100644 GIT binary patch delta 1040398 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%0D9bRt*feYv2v)Z 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

%slkw3$!;%^4_?p2+lbiLSW_k6%$=qo?-^d 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ūDo&HAV|ez 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�JgmENUv`>b+-;#Qj6SUKdmtr;pE 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≤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�m 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

n0!`9*Kaj_)f-qL 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¥md#0zxoMtbe_@rSsCtZKnp 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%0A*aguaUN?+=ZaW$3HzXLo3$_ZKJA zMM;-pUa~dari-4A=034DxYB+DcHtUo%S?CO9N7u*u9}3q(ZL7{^Lmj9wJ;l6 z9oct*S}>AbR$XTwY<#|eDtdw4*}McINg^2~%P3E>dLK{$R=hi#wZBbHsga}PP_JILp753%66Rw?G)3kvuoOZ&6 zD#EVdhV`mrBs7(Mf0%>+cErZQ<@54dDMOrVv~Z=F!#(9kI>Uz2K@Rcf^X0!u?! zR!0zgmykk@`mfut_H42x_|XzjGeQ9 z6-5p`K+^%%hzf`Gzw!`$DTw@;f2#-fHT*+A)Nns+Q)=|gaX>#};#R3pj<~f1K;G}! z6Vo3Ov2knirWd%xqRB0A{)jiuZ0fLJ_SJW7Px)pz|+w9LP}H7DS$vrvC~ z>(9N=$K1XlzrFRZ*$Nflt-%rKK=e-Q-|iamul1h78fpCPulHP^g?$x$l!qOvyi+J0 z6#n2{0cY9=+*7}2AV5FPxHVGK3#5PPx7!A7dI@8c`Rd|y$tpFyc&hSKNc%#JjD8u| z;X6i3PEXh_bNIQp*y(0mDO*Oo;EzqoR*w3w+3jk$%3^BTdEE?Co~eva7q5wg1?jow zFHMwRES49wT&dy8j97^MU=F7}UxYG;S3n@GyLVGP)cSOJF|hW|aYUdOGQ!-#>_Twi zqT8P@x=5R{U)%O4chDTNIP|MT(|-*D)1g?zbTUs5H{0d&o zk}Uc>&YL&{KaI~~#C)C^Q@4t~@jU-(OyX@b5JsymeXd(pE6p|r3Z71e@#@j2!P!}0 zm&Q9+5_YrVTpPh6P%!=^=5<$BzkzCW-&e=a=O%Jd3$@WWU0v{o+PN$G{%o)NKYaZK zSX5p2K8^ze3?V~<(nxnVQX(KCDcwjnN`uT$0)m8qBhoFB0@5)c64DJ)gD9PXbo|bs z&-?nk-_QSlUF*^r#C7&rd!IdP?OFGILw&*?C$~g@(<1bwxr6&)pr$V^=h^P;Pw(Q| z*K8V8b7&Xlt+gpp9$H@CE z?k)0w$2xCPvfu5_r(r_*3|&XdVUsq-S2Od~0i|2WXKdf<6OBa--%wAmDE9K@j?Lpp zSlFl#U;cbGi$CKiqmEnajkz1(X8Y2VJYK`ahS1*=Hou**1PH(z&A|uaWi$YZv-)O{fs`juvM){j>~Cp4K>)D z=4RIv&E1$D#S+b$aqv)k7G*erODQH7Y`Eq7jp4B2V-Ncf)zBT5XKar_4YKqq4upQs z1v}RV`nW*w8z*B+YZ6`V1H-jgr6l)n3F_H=)v}g)`}WsTs)&AsG0)~axG2Q~9{wgV zR?gOJ)J&y|Lp`>TMJIzVj=OrL{qcd7+gIy6A&(amTRh3_E6$J8(7*N*HeP|ggZTS? zBSl62L5d0s{@nm5`WI3Zc>NDjltT3XLW+u_M5TUHPLYWIFIrR-&d5c;UOOa0Yzv$K zi3-6zbSOxHCP2n15TI-&Mr?&4Bnl@65wgMgh)7z2-w=WC5s?6>O3}XoqoV&0VANwC zAcNwc2lqn+g+x(@HK;B|0da}fQNU5qHB?kC3V@1oMgd1b{!ye1zk#Hw(LgU^XcQ?w zI-rDgefT5xf8a&M{ueJQ25&=Rvjdn&N zFbdp!up$u$)YQ0qqs}X6p|yPw)WI}=Ka1Uc+2qAxHi7~4J$v=8`zr?`=fdYBEdqUzSDBxDu1-#l+(xx3dM zF3(Ia!Q63XGAfEqfyY7qXIr~7GlOoj8&GHf{+)(H=+*IMZ7u!W$N5?FpsSOGj|Wh2 z;IY`nR(ZtLvBt$7+rn&`yFaPQ>Y&eARKa}*57iKfpYU4QbNA!a7OKi;Z=ui#{){}q zb>ZUpYURV$CJuL=3ox6q&DG^ft$DxucA05taJ)3mD2&SnbI$5*tbNX?VxNxy%CK^ngahpvW z=ntRYvTF#M(BoS1ymEbBx%S9>`k>a=NV6MaWqOM@9G}hd@}nJn(D@`O>sR&&zN_Yx zMo(nOQDz;XN7&WH($%FQApztZzclFd$5xk{Bow=25pGUc7P?R$XRhA4^-#lpMET0| zxX?kt{OV-4*L;CUQjn3@_E6f#x>9*ntC48mVVeHLHtro0Q^CEU@1(wprVG!p35N0_ zhZ*Tol4L{JCfR?n&iZ=RWRVVb30+vnRT$`fBi`&}iqk1V4@|#*I)Bsa@V;^d{a~Lf zS2I*=;d#ZAyv%0T5TT&?=Z&HwbDucdD6zpRM8cLl&22`HA!aKN+;8*^6h0x52WipB zn=7~t3>K%YRk?-Y@^peENr?$2EC(El$`ry!2Uu^>AYVjT(ubH9v~}= zN3dJ(WL5ZU(p z-njRe+A{7Z34;Y@C-Y5rY%TY*3~;cupu!yricuwf9>T}QQH{?6_jA)&ti>skj%e+} zYsm23Q~BDOd~cQPoporSVMyw5hkndAU@!w^zn<(_(J60M)yGpk2$X-KuEKaXl=I1u zPETI){Kvf8AKqWVj;&?x2(7mYK1fpsOM5&>r{d5mE&^>?gGZ}Q&RxrGndjO=7@>3; z@&_fLv+-9|MuPeQN7~v51`+>1}NLbIlQv&(;iwudo<7FQw_tP-}YVb9g`vYrWHvPr;zbESJQ6KzV)l`*sC~Yu6$oLDD9N* z*qugSVg09jk+?leTF^Tih@c-eSbKY`d3j3ffFe}ap6XuY{U|nlEBrF`1*)$HG;uk7 z+FV+cos4LBOAX^pQ?^)DpKjJ-t$d<_iNf@$xR}DXCR#@7IO2#UPNbDMe)`2|r>zL6 z4w6KkIsSZ;U_$p)TkWnPnDu^22Go>JNdKu{3{J|5z=g;T;+cqFp9*iB1jqXXFN>rb zOTPKiO3a*06iR&r61YknyIx3gx!(8aMap*fmZrxIiB0Z)+8k5${G^7Rb`LS@W9N*u zfo-b|Jqn5%cUmQwXb8V!VreKhP{8px^i5JE_D0|%0_S%|?%X8?g~1WVAE=?5%@q?o zffBRSH26H+KkgV{R(013r!iv0=P$<7Z7Di4Ds^~Rv9Giq=r3~!#?%*f^A8wQkD-gw zP}gL7hvpFvh^l-QIyQXj+W3*0xj%V6J$?^d^kI1LB{KPo^pm=@taSYo7J`=9eMzq3 z@`$Ayq>nyx%d!kig%$a=sl8-_{?HLA7%OyCGc?g#leO@F%|55!%cr%i^D&X+PLfv^ z>4&Z90>=Q6)Z+fz+$FsgritlZ7Oh4>Ju0H6QXEC7ARPcf3Ul#2*f%ii`G9v2N2mO>fRAHR)Txx%Rriv%J8r#Z^g;>bhzl@N}at@k|tH_#q?1i*+ zWJ!A_>9=>x339wiG8)tF9ED+sX6|QCnRl%u%;U#_CYf>Bj|&5vu`fGI?fsLYKl%^ z;-SS2!kMJb;Fh*L7fCvL5~3rY;eZxv7g9RX@qD(jK;)Lq$ic4TI*e^#Mgp*d>_UHGrG{Oe#@W$xNZa6HMdoSd@e9@YgBM>m3f@x#8f; z&uyn}FB+~ZR|ECi({L{YZspE%kxcK6D&m0}nN(Tms(@{OzgWragx%A8A2v07udv>z71M~8Ls09S(hD+ z!$!l$P%WEqA1?lH8ZR;YHYKACV)`sh4Ox9nN7n??c=gqfvdDv6nweW<_rGvVeo?Jq zddiR2(p7>UM{ukPDsIoG->UoAF<p6D#>`b0!GUUy~O4A`rTnw*IXho$50Zd-bCWMgF>Y?I>&I3?o$IWnBmU|(6Mf! zOE=>|_(_m}?vhd^ZAz%t?j2i#+m$brOdbC)K)k~jcMsq^K@&%;-V;Z<9eAPr<`UWT z_O?I-_b;Lma=Fs!%?ie2Xd!DWKt5rh_%d!%Un{V$1NW0`v}X{LjR7;YEakL6?k&GS(gLQC|A z=K~E;$yyoyGtvq;G#`)#;f81ClLGBPn^=$}lw#gB?}VOthI&yYl{}_416~QKH`++D z4aS2_H2iDx^(UvXNT3Cb$nqsU*6S&BifNQpwEYid$?Kr6-x+_imSmY~2FwB6D@xaa z=6uNj;vm8r#+5=_`ywdM?2Uk?(>c}vcf|Jz{rj0vYtQy@Sc0?ivISXSoFRyWIzIVd zw-l1m>THh-30%j5M8-V^hXLF+JNCasu7G7hG4=g^FniryS_Ha^{_C(TC&@cmXgmni zvfu#GxZ5i{C}VoYkCzQRNl^sds-b^qW}w$RGex`rX~Mkfn3RVJ!gq13F^cV0vUu#3 zpzME*^m?G4DYUE0D6dU4=(eM541iou@k5V?j*HHIi!hG3MTX_SY6m@82x zT(XxdM<8xzCLy?bkqZlLp87CN61l4~Q!NW~7 zfGz?s)FQ}Apal$xS_E&W(5a?T_U}bd3XqNXaan462Z;aXtvP)QRZSkpxsBQr0A`E- zYzR=)j_}upfb;)*L-0khjTqx5q6F?_013m~@yT`(uDV}v(3eaLiN{)bYiTwMh;-_FG!v75?4~^zu(H#3Ln&<%lvyu+|CfYl$ z-Y||z(B%OPBL*!)(hLMPf#PBs;GO}DJq6v6Fl=T~2Clz$LR@giBY=J6r(S!WGX$(R zs_FeQfHk+uwH)5@o|Fk{hg-jVe*Q|_^k?mIv{|>#?A1@sD8F^mq(^KRblJ#+OaxOV z-+>-?8oz>Tpb|yWLsj)ojE?D$#gQ?}!E%9Lx|Gcpjm6J*WmXlP#dSH6-&q+GPfl=@bU%*Q=5!-A@_8D1EZ8eU2U-kxXmejqZ5wQ);fHy*x2Yaf*QS5W1(E5QpnJtyX0#7w|c||rwxwh*^MSKm^x~2FZ^gnps zbq^Yw^LZE7|3ecUTxl5d$dpRt*P#}*p@nvSzAB;zL^rrHfW9ouvl2ne`?BMsM@6Gm z7U}HA@htN}mOPqX3K+7X1Y;%kf$+~8YH`&@V%a2=>GM{j#w7&=Bhum(HyeGj3^+VMnJbPp7PZYgMKGcQE5>~!D1UhTK-wIs5^?3g$L6WA#Rk?yeG1x^A6a!IUOCjm0Is7`R~>@TAlg z{a}UCN#FZb@OlKO{@)BrKi(zVlE&g(xx(^$k#aYf@3lGlkPpv$uKPGa?)m7mVh+vI z15tF%q0gI5kJyI^S2(_WI6&wiwF}`(9C}Xf4eXWrS_Wd$+WC(s&v7c6-;p{9jP$PP z#~d_7Pi)sjGUamh^c;aQL2|Dh6;mWfQDz`(5!mS#QUiBAlPc7L= zVNgC5S2TA09{1{5Z_C$y{99=<{6VpgVBXR5#vypiZd5_+j^V})eDoiM(#AdE{^g|P zQ2pk613kxHE#XHYeKDXbZD&ySl|P>YWL~MUIJa?st|Eb{N@UZOCygL5uHXl4zSOgA z@)O#0p}2+2){|#B4tZQ_1ZGBU#_mQz71cIp$leq7!@+94Gy6=cV(q05_e;-s6ta)^ z)At?D9&9nre(Nhu@*T=|Gw9sm{c*e1@R212{v0-+RX$O><-b|WRG@CQFaM@)csjFXn^gUQ9ldOKdCgcQ(`qT)T`bksL5ayU#GhP{} zz5OVSe@BTelcIx+bZL4bGn24Y_f2oQU2OV1CdujkT+q69X|*^@8_h}Y41JLJdFlI^ zjjleI7ayR5kDsUtOy_aG0xPKDmn9{8ruJ-F<$bj}B(zeHTHa?*&Qm-tKi<9QSE1pW zQFzc%t$;dPMQ1yW+@1~$5~CDqZ}h%7N2~LNemJ!EZK_*?@iWO6oIg$C&eHk8_ODY6)Nz2yeO|YZ|e=$4?*&|05 zmcQg59y&ziEBS2h9?7;|G+=&x%j?gT=hXD?V#Mfmn}Q~R{@@>K!@x-|Vi+ zl7}kl4ZnNv&*vk+Yv`)M0we@QrB84n-^*3~*lFHyG}6+y2N!cGGyb8XtgQ=iEBbpe0Or!Y+cX%B=f&GVp6FDv(HxFUHjwt z{w5mkwV^U4h6Gx`vQU}Qt0{DnX_WmtQvzrMU(ahD5d9|7WBA)K9pHEfV3Y&$SzO@{ zAmIv>!Rb;-IY=!2N$hF=N$lZoBZA~yLrYwxBZxz)E z+2!ze*8rxnd){(@V6Rsmp%UZ48U8P=^BgDQym5Kmp^-z^{ zMF#|0fq(#Zo#p?on&^Ns6(AY3xGt#vU8Yvx0W5>HB&>h}9LV{47Ryh7D)o2qH2=GJ z3TE?$0lMYj-?R9;fbIrn5kmu2SflJ;v&alHw*@!+lahl`RFZ%0ofEis6xke*lEWAC zZ&3&X891t}?nc?aOY&>Jzdsqc#D6nz;F};gtN;*L`+w^d-9MQt5FNQ|qRrpM8gT_1 z)+^ZQ?CKeh7z#2W&M#|8Kf)0>j{b-bO#v-m{*I|`*N zC_w&+vHhn6XZlYGuImm6yd!dPnT9K-;xJ-2YhcJQ~;0CCvg!9gvI ztUn9G-U@7QfwJpz<>e+CVE90=020EXZj`bAJ6iTYz0zZhD}^|?u8$DfDy-XMkWy_CVL7)QhJUzoe-1qJjHxN_)pai5mLC3WI`~g z#3EOmr_uk2;&oIH#4o)es} zgp`Ji@-D4GPjlnfm-lu&w(l#hWgPc6-zD#dv0VYx!tQTyKWW0~pzXw6I8 zX!+Nwmt=2Rs9CF(W&6%Yk9`jil0p^uwF7mj^)86RqA z$3ClOSm;fi{LuT!yoongUVLXu?~Y{h_Q?|yjC(>yG$sl!=ORst{0KcAB%iL8;|uM6 zko+*xwOdPBjB&8WK$0$>x0f^_Q_S$#hLdSDI=qlAdQ3RuThnXqFV5cjmG;iMX0#eR zNl=6^kMg4~s%WX>eTHbqg^2^jj5fOr0a3mMIo#y^EB_=SURpm; zCo8B>wbGW*SyAFsd6$y3DM3LMl{8&UV4vesurwB5V$a4NnT+e+)R^|5PM@>)!b2Vl zPpkMY6HBh0hM=&Nv3dO{mG~}y|Jv8MsZb-={gpPIF;~YFKZ{nX{S>|6TD!r^a=IvePvSM5FP_Qz!4v7v zjs)tI_YOIiOV(79V@>y&5QjPHd7oAIGR*}>Hh7KdXKuets+2xI8x`li*Td^O(jNz% zJsJPLB@6bM^F6G&5AGzdATU}L^QAB<+y6j#Y?d$bTx4omg@fj0g_n`aT&#;6)i-e4 z1iA<;u4HvWPn_ z@xeUFBYx=U?p-ae*^y@_@6s1b3XJ!l?hjonW>gJAnet7g-J&j{Cv{9(H+i1;@##I$ z&^YT!@j#ltaA7zw-(l%*n|b8p<>}KxE%t=j_|x`8`!wRn-e_K{VRXezYiiig|NQct zXOmQy+!(T$Pu_%8_yhdFxQ4JLEzasn?W{8Hu;>G)2wmz}!@}+FFIvr@J82p-P;*D0 z#n=6_s!?Fm)8{tl+uFQOQpuM;47u#y);mS`2KjxgrIpcw&7~3w()-pgI3m(qsIZs3 zJH{@g=s~e&Gh6=cz{pfVKe-fA(HMgMuwo$z{ind-~*M@4r&*wy? z&MS`1PRQM*{n=?62?=j;9rf80`1=Y{Ha0uzr68GeJxgAn3<>W)Jt0L8K8}1#!hHH2 zkTg7A+^u~N90eU$kg`C5?v7Wxx=v@d%=z&ymdqu_jGcRo8*&_TQU6!@G2_;qHn0VJ zdr2hHO+|fij?-yNxr%WJtROF01dYO5Z5uRxXF(5@v|TuqpOQToZ>^8s{B*c3Pn5R z$bdkFzBt6>o(cxN1W(!BPhOjultWz#sc|C&;PWL$r3vgarbPBK(#(fdYd9|$Fb3T=y|8^bj3;L(a|&pQQF&k!_r-b+_Phcr-`!) zkrACAMMth#rz`3&m>$q~^_B|gyE-NU1pUPRVBG!#)PpZ(-DIz| zz{a;g2YQ{v`B7*+a(Kcni7gz3)&m-s68dlf&44qaVvvxyAPTHU4&Rdk|3m99j_M8r zbo~D75IA7_4cNmF5{DVU2+sR{xLIAcBV3cnrz=$X_50KL1YS4pT>*OdRC zQ2**$1BL)20W=V|>HyrHDaTDp_*f-?5Jc$)vI|N4x!&LObP|6w5C20?Cn0=IPY0iG zB*lgMvg4Ni!%!F8fpZ@P+Ph1E5(yOhLu+^61-Nq|;0NMxc>;V=0HP-W*8<-_5&la6 zfWd3Re+jsNFBUtL)^LzXV((7t?Ln1PhXog0#{NBm5OCgjYzOF@rAP&Xu%Ut6x1FWp zO;;cI=vp2r+g{8;K8g8{Cv#gh3m1nG^heOM!OOWW`pb`3R5G%c6&ny$&&!4R%PZGo z&=w*3{81Q|@71rmGn=d4?X$U~OB@$$NDK(fQ9kEocX5 z;~Ji7@|og8@i|6c;M_m@1UU`b@fQW)Iu_W+HB2L(Y}F7JMM!F++lU_AHP4MM^5zX{ z>hty+EnjcBG<>rYya(6YHMaJ$6#N^t@cD}VIqJ7(Q z7d`Yy4)n?iL0-2=_E|rhpFZ%14CZV*fAj=d7gah376DUT-^2ldDSg@m7e7O$yjx}) z7&8}Qrk%we`-^P|Jolt%kp>2qcixsil@0?Y)CAW3 zbDlxTZqbfO+A^!9ZTgN&o2)(@u5rfbCk->PFIP=Y}1!{^;W z-li|g1T37A*1bNpkPFtb5>#Dq*3S9q?neIiS+;iH4i}_!hq6u}wv%DmqoPyXQJ!RjNe}Y2J z_1BDu#J<*|-4lLJ%RW=AJmJc6vZjykO+>@asQP3a7oUq)Eqq`k$}4AwgVeLB)k6Ma zaT_H0Rju-gW~MkP#{Kl+3_EY0pL@)O~5i&}BoX&!ZD z?_TJ~${!4D#&j=G9&utfrh8vcFc=%Xw0=!rmzMtFw~@P!rC9pL(c_d=m^VuTC+SH8QnhKPLAxVDXzp4_tH~rcB+&p)_(2l zHh*_?)YK&|rPe4h)Tr9UdLxW?XUZYO4Fb=M;IjM136BUy3&U zRY4f&l<5`~R^|GOx4yk-W|{mEn!2@MP}OSt@T>R35wd4iO`Lu~U{32>oQa#rK& z-bshuD;@g$*l@B2Xnpu5@*Zx+Ab3H>h+V=dir|7!;c(=0#*%JgLD4gbU+t8z@Ed%q zO2`s@?}wW~XJWm1J5kV|G0#eJ`WKYt7Lv2LxsMO#q|RxxxMOAX2fmBC%?mnCc-0yMCPngCAGJdSc3tf|%MBl=CbF0S7a@ZS`!IS#+Ytqz@!3C?&?y+X%6%pL%-d1m?mBhE*0FfJ9% z+?(suQ}iYBrZYyrzO+G*-Bi{Ny#a$cy;skY z#{c^8 zUCUiQeI_yf<7O(^%3=gkIjKhM`1B`E>#g&Cf|lp+3?ts9_%K$)!T8=IkdNzLV4_`n z1tC#hp#;P&5aO1dPO^Jw|KnFAv~>s>9UFTzGrNFfOA-}3&T%3R`XP9$|}W}t9qEzE|SixIzL)Q=PkHRlU|+h*># zdp~B^j|V$*mb<-H3JUzF+=w+)SC)0g0Uet-2-BXHSms6XO*COZ+h`1_sxzdTAS9Y5gRZis4Isg2&f z7rn~`@39z<>+yc#(`jl?imr7(EN+n#8>T|s0>d$v3j-Q0taq_cE(38B{4o_@{CQLD zFLd0GoP3aNy9=iZyv20RLaDmYf$XivX?^F6{n!Mm^CPCgWoP4~m=pcWN~dw;uSuqp zjWN1{ef~!G^?>Gycp@-(=-y7(di-jmzqGXLN@~clT1Y-Jf&v zZ;#CA*4R*I3%&iY{dtOY>Y#^p+pc;o^!_(V_s^g2Vot_Zy0*uwo4TEp8*B6RABWj; z)fKtdM~a(cEorG*rp0-Urg)n!Uc8bN$Z%KMKZMrs&uH6vvbyov)@+$-Xbd<~zMVPy zz_uh2kUjk_39^OufLDEPOxRz3HLJ_o^Li8i!346i*Rc}I&G3{W z%l`6*O(^_-|vqSCo|{f;T#?PZP6MC4B+9GRiZylxV@3=#Ip0`|Z~h;;i09qstUZN!CJ0;Ugx zviDsdIg<=p`)$PXHVhVNEZ0%Wz(IuWao-zokM)1s5npF?#r+o+PGPDNkknYjx;Ijn*+-@(nUkUPQ z4JMflrkN&~3vRIibHXPqGGcowspPy-p3NTxOTiX7Nzm#F){$5@(aKx8X;&Y6X92pH zJKbbTX#Y<@M0_lYq_QZj!P`NyEOj7>O6mqs!++fx!NT(7Fd8H)p&<4$D>P35DWdnG zloqJ%+Xrz3PeTJI5G}D~MNgyK6Wu9R8LP+c2O=rgOy;>N;yA$SyXpuZpn)TJ#`<`mAq2m}N zuP}&_$<|sADrp}1lYj`7IqnV=hI*S zDa8|7=yW?y7#*0vz!`x@@K$PQHrStIY&JN58+Lo?)AL=f8BTZbn2C25t?^a0)hxSl zYDm+iKeOBA9v@#q;?l_X7Xg4Wsrzo~t0C%Dyd$YQYa-1g5_!u-uEv{eiGe)TafKz7w=D{HouzvXyB@ zC1rSX)_9RF!-e_DNT1Hv1K}PilV}4bOXu~Uj=j*iSN;yHtir}^55u`AKA&*bxoe2Z z40JWDsY&UIV-~B%6poBFHS_eN7at7#D#5p?i9N*5do(sF#}h)YGcn z#T01A+h3Iy``g_k{_P`fLR{`TX}<9Nn-}L+dN4}UJYjpc)A3p0W+2RwLbPp5DH&z0 z76mH={y!ybwvEyQ-}`_2QF4Y$YIkB{w$1A=Au+V=a*vbtNKt*x`O5S8-P_6-cXYqc zX|SFM%D6EilvnP)@BTpIj`gb-+ez{Lq>Tym(FaO?->IQEy!2Axi(RWe-h@$mBc)rD zgmYoGb+cu@a{BQDzv6H<@@=PBG#SBV%U`7&tBGvb9JR;3@}F8YKx%0F=$my}I)%*# zYMP5)e@y6ZtVq^Vgq#ZI++iH(VO$dqj3+Yn;{XYX~&276wT!vo;+fwy4|u)8rc@G>!jvFe!o!W_Xmb{_esGd-n9La zW#aLt8i`jz`}@h)3}(RB6Lki!!fm4J9{sqNI^6^iW+W=`F_ zK~V!=@Ld|Rr2)N8lI5z-bA%^b5%f(o|E;Z_cg!8cjz%GIq-nbT@zT^0pTxIUZh?IY z`b*t&kyc>B$3xGbzf!kZ>LB1(Z;mWFx=(o9jg-dQV|PO|jW9{vruxRlE`vVpyFLNr zl(@KS_(}KBOp+^J`WhY;a>=uzpyl)J^$r*(LxnxfRdqbAbzzk*LI7d+;wMx+82dPI zUK4Uc^Oc<^;A6?dZt-D`t|dWbx#a?0N#+k9Eexq2>63R7uZoi-o-TIgM30wRpCXgT z6q+C84D{${F-(e6e)E5kvr+VcM0H@2TYTj?NOxM^Yg(1^fb4~FxAHdw_}xYD@QNW)ad?{$ zfRqJvUhk3r1C#yxKv)9aRz>=hMB;zB)+B1RXl}ejzdrw5q`g532*&P43zA(!b^#u> z1Yr{P--umdet~PmF7QLGDzM#eg;!zz|G@zZ!!5sI{{z?+=Ks$Twzvemdjdf0UZ45m zPLeVv50Tx3D@+1_U1TCLB}kZG44yVYN=FP_hJk_K^shS{<^?ojQ3t`S!u+VCZs6eg zuY+J=fj=Yo=O7puo(CoeTx}X4aPzx|_n%{6trp@yN+AgpO&jpXKM-DFegM-8FyEz8 zkYfNuaRSP?r11Jv;J?;C#l!~*0-7gUVZid?K%|9FFnHWADpg79|EA`}>~+9bf(&?bX<7T`;%kFuS5Rzw$l#&^qzp zDm7E~+>Yx4x*$(`nR~J37SVdHf3`Q7M<Aoe@ncYy=F+~L zwNYTH75eIn%3`iW@x$(k-tDVwPLI+<%I28P%Zo|)!ndv2*#>gRt3`{P5U027)l>>J z`TPp2$5oV-7vj%ZZ*I9<Gi6YE9>_8tBVf6neMll(sQge(qr(^-{tei5-mdl^QB2izqo^|xAwkE+^hbWdQhv|ru0eg?ndpGiDp zegR!ITN#DdM7ruLQ0Ig>j=#(^LL~J0f$>8P)JjR`d{t!%I1+4WUdya?->(b%&iOuY zc2)Ag-eG+PiO-}WXU>N8nFZf|rdvuk6Te_ywaRuokqXHs5t^B_XECJwB)#duMxM_O zS?)2uL=Q9V)amklzf4bOp-zXzjAC?}Zyr#QNa14d8`NutBF~6*tyAo2Z!01B^OHo2 zUK-o#fr>(P1YbIbRWIFEtyRInOMf1aJTAl)dGHR#oNnc&-OfwiL4M1!6XS_jp{BR; zcuX&*i^!T77R8OJ+|Mbw&*aRM?ISy)#t*!>^`2iUu<%q9>OFccvSDW{e5$@SJn@JD z>VGkmo3LNS>94PN`_5Zz1HLGpF0V;LVn!!Hk~=d(PO$?Oa%gHo+|5+?@oj&KNPJbJ z87fXVgxo1SkTebUT_sPmzj?2HYr`s{X`rufICpsZRT(}PCsM7~4rWejUf!+ibo;XA z#G?PAPf@ygd1B0hD!ZgxSI8+KTv`8f8`LEMluoEu(kUY1#Co_){%J*l1}F1Zv=AiuVFUhf_6>sWWGGSPV1O$L=I z7gxC0ijbmtS}&{}s}zpoCcVU*FLn1L?{LZ-jj4~-6rXTyzt%fFFsTvN%(I~AOx~dN z^XZGA&pi(Hb3!ZWEFiVG)_`LC8#?df;&sve?D{xC8i_dy#a;u_Iy0?r8Tu z*#MnPRIB}tN7np>^;v|*x8#;z7)Jb>v4{CmDm{r>6w}F0<z(HQVjq!lck_*o!PZguN(f%Iw(^HZCL&C zA~vO6TM^s+e__qV%P`WW`EfJ4h}Xv)xQ=$QcrubJHo5 zl5=%1-jY+PS>8r(h)CJSWgI13#7^%_baDP=ls-m4My;j71R(=ai90M(r2Jg_5j$&ir3_N45dj&tj%Ozfoco1S`_=!yp} z2^67muW1i{xhQ9xtX^NK)FxWQg=acyB(5nOVdD;~9EXGfjMETy20ZJd+u}nn;qr29 zUZBrPWFwIvEJeN5u?KkMkVoQ($-CT0#D-1}H3Gema#2oF*BTAn+3AV{1UrqC+`h-oUiAqLi9>CHW@iWJ)4Z&bqZ zz??M5jch!y>LRL1FKHR$+A&zc2K=Uc;!y@_)Qo5xFhCRpqFM7b7%3!$45r;hK;q}3 zkuWHL3S*KYvWSZd83Z6(aZ^T#WnH3Z!x?P?!lnPj{#`e!~eRh389E0 zlgoCqLIblKyHFq|W@$C$xP}0ia&q1bXi`IjW1=}|z!VS}X6x{A{MRE6IELK<%uOoJ zFW@aDZUMFauTLd;R&56S5U`ZoS4VIN;KmC~Mub%vfJ?L5)yt5TX#I7`PM$#u4KK1} zs0dERN%PJfRvy7g!yXQL52I!Gi&{)Y1b_GdL{4`aeYsd9xlpI9L~96;;AZfv0Ogf> zGpJaDfdUF$i=mOS4IOt=PJtAvHBvFHEDxZX{tvGWFxp)cBw}g`&?GO~MB5*K`(>0v ze}erc1D58H+SK&~dD?=3wpu_A7d1gZ7oWW~_y#aRLn*Ys-~4-mcr3uGX6u)%?iS7{ zQF1+RDD1@XA<&1)_=A?t>i6p<^iqZ<=9(13~Ut%A{KB*e_nP=MjVP zsK^gu{vK==ZnQhB-x#;*1E7J;#R-){1b!@d3;mKj-qDJe1dR5S6&v+j*`ho515T?k z=70zYcSD2`kOL4_3f9g4XP`J>s|F)$a2?RqNe!q|$0yTTv>561%l`O6g_W!l%#B00 ziRJ*r6k|Gg3|ORO-P46S$WS?%a8 zbno4>$RKYpykP+Ptm*^MY_4;?I>*mZs}ouQ1TyPSAXob!Kz}H(oKSm7Rsw1T8B8tZ zW(i6CeiQ$%AsQnf?tg}e^U*PZOa$n=0?c?#E?L$xs38QuY|5$qquqe0h zf0Q0_s39aIq#J4JkPsCxK)OR|>3m5MNePE;1*N+i36YXk8tLwa`wn`}@%+Buf86KZ z=h^VEhnYQlzk98<_h;pA@geIBDlV?2NB6qVb?4vGLk3y22@GQ#AKRFf`g7S9J}@ad z9zzHV07`MpcxuchD4GGJbMvkpEv+a)B(()7kYqa75we8#Ujhjek_3v6UwbV=WtUNc z`c=d7(@D0DCg`s8xDZulx(x{-<~V%vt3}g%)YCvt_r)0Z#TfJTPOBjN5Ap#JGS1|m zS^9js=JQ`fo+F2CBE4$>Q3NL$*$K_s^g+pxa_06$y>PvO<`{L)3f7i8aHMX`j{xnH7ZuyhB8)N5>J_Y%`FRp;0tSVu%!uDpYzyo%V ztDG@mwhe3OIyMh)u#umg&XMly_}_cO(=cd8_vujR$Le!4?FVKacRxf% z4V~1{*Y;~#6^?%f660NspWBlcM#hsr;~k6|q0?qa&c?O1Wm}-Jx{OVcTW9`uwqGaw zl53i`5n#S)-9Ew4zU;|mld#ft0#}Z|tRZcrH;+8J6~BaQJrQjHvp%RA>F2du@yHRC z!Ymqg=mz#2icMXRiQ0SLGQ5iQwMs9AB){+U+P)v~ZG8J1@c5hPYhA2ohE#P{4!Qi% z3x{ImQEm2oq>-6DdH&5BXj`sa=?4}chR+;o7Yl3r7e0oPXRF*9TPaG{PBB}FK^N^H z@7L^m0KLapsQSNG~ma9uSIur~KtI_jKr%V>Qs6tmiWDS+w50VwB1y zk1msRdH*a{4j9B3&tdR(Es3)DIe}6=Kh$Y2%wD4UjdLGEExPvBgIA?=A;S554%AT} z2TW!)`1cgA^4Z;sxi|U>_5`}@db4~m1 zU+Hnm>*WiyWSeE!U7ET<-|llM+z1oy4+-KVJYruC4y5v`n|;SHT!S;a364xs2b=;Q z3dJsa8DwY(p6=EdS{4({VW^3gPU{!jCcCAW1k3$gGe5I?JInO8xDvMw<)ftm^+4b5 zU^Jam{=^g@yI~ly?ZgM|vlNQLZ=~ZfB1%cLzBnw)!=v)h&vSDTTN;RtymU0gm>OZ? z3+FvJ>H6g3Cj8ojiQuEekJ3Iiiw)t}=Q}3dd}=cC+hQ{F%eT`4FeEZ>EPI(DH#kH; zo2vcHr`?Cd$iMydmICdMu*Q2TeWsF<(}c+m3s_OZ0O6$g3BADX_@E5o)5e0k-ny1E zRHw)dBz>b2(|Z#H)(OnplaJTw4SE|s^hGT1K129@vL2cF(G=jCu^TdOJQXWjcxJC$@wC$W|1J4iK9g1RQ8q8!%^ zG#^B@G62DQvWy+xgj$@eQ+YY2Mr=^xn*p_m&2e7!s8E?m-pIQrB zI_D@)XMERZyWjWx{#?R_OpF;3s)ur*sOJmqu4>`hdE~bg3WI~<#Aw_E?nyADt+N}? zbQ&>Ay3PG&@+I6pq;Am`G?pHlN3qpSQ0P7M)NKUR8+UGc5{+8rLf4x^GK^Ep7p4pz ztPbFcSqrEN8JM`h8(Z5%_Kh<8>NGea;?cFH3q9^WNql2Jg*zW-%~DqXD(AjjGlTre zTx?lkA8DbR=>%?6x;}2@VxP^xo&8Oxp7@c3(QHY~YG)C_qnP?3N0M*o6=sD>zU8&T zoxlg+C7v>+xy@qFJN|kp?m)sHUWH498_Qg&&c;jZXx@C7>+EQH=)N7iUr5R6&a(twR^;}XQpqtV9Tq3g@N zkN%l3T3ISwAGvZtdUBac^7D>bmgy1Cj{ zbG}g9yZWbkO^FF;Q^Vx?=7ovJE8F!=+Fp%g&h9(kDpRLx`UKq*)nS^iIU5_#Pl8%$ z?zZXyeFZr4n@6ouBqFLBH-7ZSJt`TtdoZY!A5NgadVj5WlT5Gk*bVmq&-ZMagV{CZ z7$C1ASw2Q5mofiwP%~1+@atP0eT6$lYR8B4x}r(e2}9qeCZy`my4p7jYQI(LN#S68 z8E9~X=+9F-O%4S??iwFG_X_PSyneOxJ-cBFkfWEaTY|l+B5*XH)?a7~ z_58bKr6j*Pm5#+gviLbdG1Tk)va&I*G&AG@!Q7{i22#m_ItyKIfnxClz`UBNVomCs z)jRtz@v4TC?gvyw=;HvF)=d&gppl;fnJi)hqTC{lX9`vMS z0d9Y)(Rt!r^d5{Lc3Wv%d=U0vYc`Qw^p0E&9o6=uItpmn**g#u1)>(SCBHNc^TWl0 zru7Tt2cq6}c!qX;93zn5zfR*vLaJ7BbYa4(QYL{9>$6m6r2)_;Yv^!y$85sZ7^Lg^;ZE+06dFETgg0m}(qLpg)nq6R+H zJiqT^(#}n^qB962*R}3*-TC)jOb1!ip!zpJ(*Fw}0pJ~U8*!J9`*oME`U({`fKdIq zg3d%z+jT-+!7JztccfVBM^AbFZW#EMXF{sKtb z;BY1o3dD#Y41G(z4Rk{PJ>&-;>Z<*cnp(s}e>D5j{<_(MU?#Slq)ri3t#}cm3QLW@ zC`G!a04?85@McQ^j%ffn_5CgnGidWgp=WnoW&8&iW6w%OqOVICpg@>F#0~iqaUuhH z1MkqA{i$iK!A+tSjjTb%evL9-j|SbJHznv-V%yj$1x<+mZQGwVLHYjzhoq2vHY$TU zt;cS679QO|2lHHj6-R%;SQ!w;1|?9Vmz>?EihM3M&Q%$}l<~KMf*)X8zVXjYK?tw5 z#7$X)2AQ(=MP1w&LpElonyLQ_&ESB`PrwodR}b;)U6-2vg=X&BNkM#2#S>ot%>w;7 zY3Bce$0OV=$b!Ew_BwxD?3h+ythfK~PiAy3cjz-_+#! z$DO(Gk2^COxb=3ww_e8#K}pbGTMtr_un7bO#Kv~<2(kh@AT|d6(OyVBGlPu%25}aD z0vbFJ7^D3L#&o5q$YZ`pzko4lMn@?@#RG>#K!{E#*#84=gWG-!`!7HPg;1#d1H1AG zOz6>7mlMgG01(7q3p5Csc0%#ii=5mA{!2p5_aybAl*&vdd=NHmM z2$bv2zjzW^K~-}UlmpVCp{H~)BiQ*`V(>i z{|$2~11}!TR4h=(J_%&f#vR{Hu{tT@`ED_vm9@Ub{blOefDMoVaoobmZ7EyyzE1ckEI#!l21P`C3t$4Xnnw6n$J{PPybj^Y1LEjt?n{M#pwE6&;7dM zGT~5-&ilAPUfgq~wMfpW-p8*hg<^N{1+VU@&>s@7c)9CQiNLqwrW=VP1dVNoj2$J& zgnIUWo_B+BjJhHEZ}~dU-hOp>CAg`?^QOXG$8wpxYF~Vanig$r_2WY0N%dGsEfSXT zk|I&-7paQ=asS>&KP6n5WLB(PS6El5+X~R~c%XU}K=spvu9qGuT1szxX8^<67jKJ=#wx@*C+XA84rc zqpF2}J?tO<&M(srN!AkChugNh)J!zaJS?nTo=esf|6v&}Iufad<9K>;FXOqt)e|B~ zF-;}@mw=7$g#C-3!bv2WEGwk${yANfZ<$)hBkv}S#8*SRhAc|9*%REdu0}}e$KZ$N zqbCU_!sg$a-Z;vpe*fx|NAl6`ty}dl*U4n`dn#Jj{at-~VE)~tw3Jx)XrahnQt*r0 zwLN*?l4Ty4JZiV^ab{tno`#ltLe3OAc zwbEqjP5VlrgzRxo3O4!8g;jT2Gg~{_3S_;x<=buI4Og#-D%>MW5XKiY{satfJsd|jv@|+B9 z-TNK}{A{(w42=s|GShAp=d?uam?E>BqV99sXULKSQ=wFrcZC|?_wp`bGq?$*kH?bx z)OWaEimfI3&{Ruod>8Fr=gu|e$_mgyMy>DTXmYXfS*X_#D?Pw{BvWv6z}j67qS9Br zB%a|=ASPXMCj%_9m?baap~XV9I$FM5XbG4u_2X~nyEYu2q%6I%uyjS47XQqJvbb(} zdj6Vgi@)iaJN?U9ljkaiVSV9Y^QXNBc&P-kwPhZ?r=$%3_i*dUZ@BdzXbS-0*6?3& z3uEv9ceus%xyBqK=7P!1+)$vOJME4y5pG%W6mm4fI8fa8{iQ8X#B>10DpXJeQ1X=2 zc2675QMnfnm`}04>-dV2zctDku`2&0bWfe!d}b~2k%b4ITKsE2rO@5a?9cU6Ira9w zRNY{ZZ6vqpNuA7aTAo}>;L8^%Q~?NHZoIVGWcB#C!j^?&)uR`U!tP=pd3Aq*;+S^R`H;w2sx-DY^-;?(U?_N(4Q>QYtrKIIevuaz}z+ZV)H zff!&O6m4JcJD%Kj8q?er$-nK_rGaP<*xzupy_?p*Ja3(i$S^EyG#`B*2f{M}*4+dh z(>z=VC6MvTl3giAi<&O{QQU~}BzIlp&K`M!L79r=r`Az8OJKVrg<47eyE1D!3S0sT zm%s7Z2*&+C@mbsdOMJ#j4ep2jn@~XOh#zpm)yY0PK;O5QUdp$6 z>;n+BkuT>A(Vs8hA$lFfRiC80WLy(Yy~c2E9C1;Hw*}FvF?nL<TEs%XDw6D(#)qYZYrtsfTbxgh)xSC1aV?k4bS}~0E5~clbb7i#X^g_+tnN;3Zyq{cP%r$MEDoC@S@peA} z@{8Yh!I4>EFmj&1O7{u#^Yi}g&;fc`fT4uEa48Fz5Zo6Tn*}a4ODIRi&x=UL{>#DT z&-XSPVM@b`$_ROh_<4Va{QVVn29E8vH=<2Yt6-d482F^tU@kt(Xztg@t z`3}5nzr$U^5fIhbaK01Nx^?-YZj0~y48p~~#FSI26__W!b;X`YKe`LfT=j4Za693g z=+&pN-q_t6SNaFl>i#feYf=c45&umks3EfuGZfg$n>ii%T*r|M_0w$H0 zxCGr&G`2Q(w?Vg*bbm=)n#Lr*A4lR!R~vmnz>XTQ-`#lA`{YN6=pnHoW`k_7iC3`1 z?G^19#(VpWhdKMIF+XM)sW?wwzsqTmyBU_+Vot$BtQ+ zVg|At_eHvryYX1ATsL7glArPJbo90&$0t7Ww_w^aBQ^lX%xbD{;E7I{PW<@TD;1ft z5Uy8vU10_ON2J6d$ym>qos3Wt2a!hc>L2fv8!ZcHShh=nn$MuU%cPDtF zH5VIp5yj=WD%o%V-)UJ3A$9XzzDm10UUS7H>olOh=tMBHYHD1lH6)%#2%M!GS=+&q zv@CoQ5RlQ?aeW*8pt$ihDY41BQ=Ygxy!xx7!Tlc+k-0Xh_7V zX3?ck_H!_B%AI?{Sv>H;gDt;XnU1X45zI3(ogJ-0dD&y+J2R{t`S&N#ax-dp@m8EL z;R0H~!&alo93dT4F|qWT&yFSqCE@o*;%PrekT>WSK?|H-I{pY#562mmM&-?Wn>`DV zJ{Ym&s390pn{-V`F?yNJer}C?f7UxJ0>1!R0^1d9^QomL1Y-UCJ~MlC;FPLlWK~BY zc`CY!j$tJ_AnT#MO~9|tIfhpW-Lz#-+Y8H-w6S!&zq7U-kn!Gbn9%uiQZ(zM`x-e_ zcXwDS=y&gWKe~TX7s$b9F-g7Q8dk>xly09%@3qL-;>RaXv(vxrZLS(|b!;xh4J`j) zvROj7L*PSce|JW!wQGjsi%iw$$z4k;K57oJz>;Sf9RV|J3R=W>Mv9lg#xd z_V~^Dcou3xw?q2xk7peh?@44bPGaZpOsP*ipLiE9JlR-{LRKAhJ zMy#1iFuqfk(rdk4rGBR7Gac#Rr1=hGO<)M&E%=OR-SUOqv-11G>=dZa?;JUz-k=%U z<$LKVd0ep|)Adw#eFGS3kH2Y`6p^s=pp`gyjpnG#%$17IOK->ZL&x*2E6ijdSX|R( zQ@}UnM%Z47O^5?Z1by6JHQ{=k0fC5>xCh4z8xhLh~wcB~4D;V`d-FXaUhV%`SEaX8;J zlW+h`YoYJrkXddVaw<{Hafjq=PhY>8V)3I>KWGkv`P9&q5n;z!;;B*gvT_6 z*1@A`H5N3w!)N?F{Y@PF%TKHJ+jq1dgQ9a{a{oE$cQ!-L@dIf3&kfw$4J#sIC7k*7 zRm9{jeihlZYNi*oJ#1&#A2`oUg$V@Lr!nDdII#O{9xQGU;r`$dJ6fB4LLXFPM9SsK zAE1F5;ld-BUuCUj?-C3{YHkRGr{TcFP;mR;Q#i0=)Rfa&_&6>s3(efS5eM#z2YZAI zzXElqdF#%0v`NyH(|9myG$2Coa&UPYy<9?q3xm2Fzin%JT!FIKX3p5cY7v*S+5BX5 zts`~*26`W*Yp^aMU;o)`n=x38q#5-HO)kKAUdR8eX(G`Gw7jxTIKzS1Eu*eYs<9yoT>I!S_wyE+IY8dQ3VBZAuS?bjd<|=sL(N(_+ZFxQdBr`=+&@P9bI`Np~*$10mnz=2gS5x%b+Nfhf5qFbTc%6u401+0{)BB-V?kO z0@V5}w{Pc*o#I{t8AIHy(!opf4)ddWi@i@KeYN+F*?zVac5ww(ml%gp`pTMEJ&IiK zY%U>X=%&S*_otyOHXG<0@AdyVR@n7W4l@d2U4<#o+Q`1RM8JJyZVARmp(x%Iy$K|% z?<;c-?~q~7J5UfeGKmsaCmc6T$;?7izms})^=(#3Gqg|bJNBWyM-8~ijFz?MjUD#G zlD5{9i6wb8TH*8r{(uC=jQkw#L;|Bh7J|o;z&L;inS!3v#gq(qT(68+bH%cNQjrZA zB9A9;*ww+_TIZcZ+ga;@W95**jl+8M54_!jy!5z{c@gc6}~ z@i*+tEr&JnK3vQfaeLmg^={&rlY1^=i2+k=E79YPp3xl~O0)+0=3R52CK!ZPdfW(Y zn;;N?bP04+Mvv9c?0EhHufPj~HAz9}Gb zbUISI8q?zE+vMuZ)~^z@MY2e-8dx$2gdB{;Q|q0n;A8#k-u`qFG?sqA=e?Nj7U|ke z(s|F}0!gp3HS}b{in47Td&{@LIdau}`=&%hfy3^x6jr#4g9ys$|<_Z1CV89{z?Lrw)<5=OX8HuKrgX7a}}? z{*o>d`}Oilea8+w~DBkgbCVK4PDv<7iv1iR9gEB%_@UZFh6b#s{vtyKNoP ztcUMTW3Q;|mG!(PwY=F=^2E5uscOL}=It&=CqIy}pmO1|r2VmgOwU8QZCIJ~G~;Nu z`8lMdqmyFvDVfZWfQHM*8tt5$(rbA{^+2xZjkEcw%2(?3LoP6E>DS_hy>9TJ+6KjhO9+O+2ti+lfGuAEOi|_2D zoNZsB$_oh>@ltJTuEg+J5@dxum0k`RY4QEUo9B-jS5QNcQBdtJgDfqTtI_P+&MA;_Cdc7GT0T))Vnp*%2b04Sje$;-J`XKD2~5l&3`K~3nY2In z@&0mEf7EijCeQ$c9gqcDF%cC4?!)=;U`n?f%!j6be^*sIlpr;qS3LQp8J?eV782$w zOi`bePdISG3Q`haqZw+!hB!K3*`-;oBkhb+3=XoI zkI*_I4qie-2#>B49caj`YD2WNVKD6>s&f;vX#aZw2~4h1gh2{|h=&9n!ywCAIn7`R z1+XZVC=aN55ua(28{e4mnGd7JrIpY&cE7Xmbrrq)7To40j1es503!t!!%ymPsL0vD zJgx*`)PKE+0*z3~m&1-?9qCgp7aDY3DlbJL(m&BvFD~W*7ll833k*B?zW|Z9%Wd z#(5}B&;-rG@X2e+aloUXvas_h2&ACO2}G>{%Ln9uCe#wp8FrF73;f5nRoKc(%wtmm zM|yNARk<05nb#BN}i` zd7wiy=+~$WQr_PV(tl81tX-Nh$vRT(W31AW#8%&M0cW3Mt1ywP7`|MxmO`V$r_$ta zFq^<9kQ|t0S&*XYL$AnfqOwf+c!|)M?XD|ma3L>obm&AHumj;C%|0pzoyiU6JjHOn9ipMaDUl@>b|26C| z4s{5)a9KiRVNi^eMmqL@PjVYY4URgB;=nj-_%AH3a^-d=lba<{P(1Fv;kN)}K_pTx^4!?bn@IZqtZD+gMX>?9`i zBlExI;n;?jWKvnBe;ykmTN{l#{S>0dQ=W=$tlh^&NHhIW*kN9DgUfaJQeIoE$0DT5 zqVP2=Dbu>4;5C;k?1!ae@r&kZ#TV=Cd?w8h^-%tfA3z!-Rm9^r6#{`p_=1-*55*2~ zUU+%x;NE#h^Lo0`FhbDCY|hwK%v>mJfBAS%`R!#5Q7ye$+EHt82kytOpwH&V1>w;d z37(^yt55q*-)RSy6=I`Oc0`;X>}Ffjjo+_E};V=LzfWsOsELxgqd_+OjhTVLp76 zvHMW)UT|s(2P0bpzx1XsKj69Ei}E1G6{|riW_eXHV>7RxA-qzv3i@S8k$(p#$*m1o z!%kg?kC=~+QG=;p@xQ?n>EVl{6nCSM8Hb+o^q+;IICd}<*B$Mem%Ky1mt(2z zm}oQbK6|NVX)=TFgM?JncZB_rL0-^9on_9|Ll?(OHn| z8NJ2Sq%-ypp!kg^l2fP?j}MafwB2Pm));%D7lrO_u7r@j_r4KsC{B|~*?4%{#b^&Y zkopCJ_A+o~<$uB5prev~l+BG4(W>YLBt zu!c)bymCDB-JZKd(eu2QMUH;XpCrIOq-?9U!3}F);%5R!q<<-}<69rtLM>6wc^s8G zY45KXTEDWAf^`pqDgF>sap?j^Q8_B*d~#p)&M7XawGDs z+S=m{ruJrL%7&$SBX^Gb{mu=WBzl~b?O;9iTb1ekhpQQ4MCimc??W`^Y9uV{7CWoZ z8T@HLe@yerZNcMJr=FCNg!w_50G-669`U=}yvc#Ce%1q)Q3k_Yg1f13>02;z%xvAU zcnsfZJhGw`DH&Xr4bocv8a4ZowE0hPk(QTs`$~u2_N@ zMLP=UiYO&%Ii2Zz>-nKO{R>tX7Mq+e>vvo#w#WltIq1Dni*_iqte6YK2aE>F&Eg)!k9J=x`#y_=2r>M zsX7v*1Yv>KaNAk%o_zqFuiaB(e|LOE)^ldd_C)9+Ru6*A&q9H?jCZR*vYc$Ef7zkPk+%%DQr@ULiKVik(sLonmvht`^BFbf|Ou@Kj>db7;EmG5a zTzEmFd(urF2$ih-7@_`2LQ_WRd{WLShMG^NZ$X2VN|OC;26yow(fJ)hrPrBinQJ+Y z$(Mb6%f=siJXV;9E`td&Ep8cMm1eGO%f;-^f~i4M=biSe9<)iG3WsXDNqz)#%sXjy zl<*Fp<^v|PlE{TQ+#tsf*2Y$|O176;}01mvOiMa!dqD&R{~b>q*Y3_~eE z_Rh}P;uu3}Oy$lA@(i=KGEd64Bp$^#THQHLnt$Fqiyz>m75+V~_{HoUiu&+oGp}lo z-90z>%PN(L0U+dgi(PtI-4 zaTRW`MPVP#X2Y)_H|)jaudQ)#926K9R9N`7z(3YCIPwZU7+PIK_!Nbo?^pHbGz*v< zDc^so{tUk1y881kQykxagnffWgjg%>YM}baa8_2(w6z=o!vhnErq9D15rY#VDnEn9 zxIB0W8w?As_!fo-Cse^BhWGQ67!dLE{g1lO{ISIZzfE#{e?_x{COJ4W2aFA_y#pnM zn{$AsxJf@OQg|xjuj{z-S}qti9EAf$2H_PJKtz$l37KHjzhlSw|FZxzKmY$I01d{D zOF>xCZiD}T+p}Pm{b`pY=jTI&ii5xYw#)H><)6W|(Y_;up@5%24#Wb}hw_8wxMDld z+(_pQW@tU*g55z;%YqAW!=zcJ=bl|{O<%gY2~Dk;p2PJeFFm*~rh`*2^RL!yv#*Z( zE|>ZWYU*d;Y1}XhKsNEPQIfCVhK72w5sBZS)$vss+sndB8u=SB7t@V(=QcFv_8Zu^ zZQr9SNE}Bs(+daq%||*v5FXkN7F{k)IOoIU!+_nvN;39+Z2VE}u6?Jt)exrP8(Tj% z6U!T?*TeF*F9KH@M24LT0#=?M%yL_Ej~>cT2Tj{uDNX8CGpHTe9;&HttcvDd`gGUH zw90114&>hmiY~qqI9wg91?ufskKwvJ;7o^3w+|L3;Zu{JSJt+&i+xi&QVYq}4rP@y zM7=KdR#Hz{PES%*^sf%Tr3Cr%U`!Xw@yiC^5z1)XDU;hxZ%cYl5h6of_fuSpzMn`W z=5^_2&^9|B#m2oV@?oe`sK-rWIM3p06$FpbGjA|Cc0H&&_YO@En0d0@Plozq;g&vbU%Nbr=r7mQm;tPfJwt8m|6&T>m_y7^2&q_#)F zF4)F`dcuY1NZNyPG_5W7O*_5>sRWQ&LlPPlFv3WY*7tbM7OR%zSX&LZ`4-0}oqiJD z{e~l^yuGfab|z8OIW322$(ofCkJ`3eyS15{`UKO@)*OoTXcHMTaHbNrQr+&i-4d}G zh)OEA2vrF+sDn;9xJukr=xVv?H%~o*zg_1O-Y#U2)u(^C;Ac8L*)MY7rQtUgJ=MU%V#czx6BDW^j2Anh+XZddwAH-@ zLo`tlmFA^_B^J$Rh3$+LumfsB(_Kx-P4wSXht_8sF&znep?sL@mgTE z7o*ODz#(PXRlkoU4dM0c48Uwztvs#X3on~-0UnqiQ{5-IHB)P!2#zOfQLa9%uLF@! z?U5d1xs`iic&hfguhtdu_ODOHyd=e&iq%y7j^wiI$9M{4_+F+34w%+|YV#oe+Lz(% z0ZTk8GM$f_;))Z4<(pflJR`-xaW!HMu4hCt-fPn@d$1`T%H&H@j-pp>@)T{9R$3@l zF3VKf4*4a^I8?37Esx=fLzGVLmVVdJC(N7kw=6Zk9;M~`*}e|`@sN-q_u<>vPs#?C zSjH9Ng>@WK0MI*rwun@3!9REL7=?lcZSS6ILz}SflS+EZm^vl@idSHIZ2z9KeM9?w zwOsD*M}~~!xXFslW$nIvr(!J;BD{kJ<8Kdgyw=b!N-x3>>rEe^B)(DBVyDe;u9DPy zqu@`2!mSq@;8gdp8HX*HU^^{vt$rsn#)ZxXf7}`V5+Dt{`@`0om4XpJfq*H+ar{9* z$V=yLBE7pK&3iIfYkC<6_7&4qW|Qkmx7?&{9GS1)l!`_kSznZHzj>g{9MIiCU1uilAsen4}F-EAPM9S~l7Sn*Yq&pShR>7H3o!>sw_jy;m2x%uZVe-A#v z9ZeUT{u~D~z#nO}CqAXG&(n$d@f(NS42O3j?uXo$Vns!_C4Jt=D>%zj7u=!*Fl$0n zA(E=RYA-d&jt(W+CtuiPy>WkV^mOCM@QY-_;L6TCAbfcg9WSVA~qns$94?K-sKPv%#J-dsKU2y-|qS*xE?ud5c+p zs|{}bk|GXRwivo2%iF7PMecoe)ifIJI4~N%xyE+;VUc=a!8-dzlhu71 z2X7U~ft8k|SiR38XZV6?2aQ}Wt0l`r968B0`HVT?8WMaXhY{x56^*Ut?Rnd)e8z_~ zr{+mdXfBE7&D+UUzU`hmGOLTk;FsJ2Y=%!yu)N|!$bR^tdgYEj?>9_sxwMZjg5ODwH=c30xV@dE^`r^ttx^UxE)|K=Z;&t8 zbu5!E#K&V zXa*+nQeUK(6RCeGpbUtrbeO+Kw=QfO)DH9K&TGE29(r}LPfJhpRJ~;FON07zHQ}a{ z#91G85-8|mcADpi6<9c?cD-VD-*Tx`El0i8`XDef7#d9!bNJrYVD zzu*v=-;8$B6C@LK`FizhkL6{p*JxC(0BH6@q9WL3qOwztLz|JxTYqCGRhLYiV`pG3 zY*6}*(L|lyP5~PYL>JW0pwP6MPr*%Klq}o>W`MrGOC`)xK_=BiYcJG+j{>S9HU2d| z7<#KCOlw<;YU4tLEKI;&OONm@r+x<;Qugi_Hx|2oVXRJ{hGR@+IL7okRBQ@xJWC4?@2ffCTn3C?<8@pB7b=)|VRWr;%L8*cSw{QFR8QG6DY7s!x8c zJuM$pyAG^=8$>LeTm{=F?R62Te11Wn(*$MdL$vE@qObda=>v{MBrw^EP(fdO^mQby z-%s^=)%~VLs3Ho95@^u2F9n#8nm;Bgv!;YhfJ^9%H2CxZ8u1wN{5UcI{_O8^2>*(C zDf14;_XE|>$j(hjpgQ_Ge5QuHhe^jMSAzAZnRHuCfX|Qqx0P zARLBd$U%<;>WH5b)D_IWj6iWmZWP0TmNh}kQmDx(S8=4bIUlkiH064^*HJ`{oKI$@ zxTt1s0P9k{UCsEusKq7hEy#M~$a9&)@3WOV^VAK(VVE+q2nF6#;&gCAx|?b~B>mkE zVD11tBxL`#2`WiUydu;F6k2wk)$;2oZcy<=0{z*7{1z-5`um|uz4S=32t;-KHCeWN zS}{>1l+5P8sR@9eC0T>y^ux}l`tX_L1XV)OxBf^@wB~Z*kF;riioZgLuAc!Jl;z~K zDBaR-Mw~=A?Pdp*!OT>mLf*VHrd&6EgK|_C&DTgp^RS@c}|K+FvEg5uq zlZlGffz43W*-O}f4OHlr)g%E}@x$1cqIabuuN8U%geC@%EOSKb?=D3IP)VVPrd?3c zpxwB(7l4(+^8b9W7JOsKY}rH@rlUcq)~1lx5$f--C`v9T-eM&41ahCD` zz#nI%dT_ITMaj4K?MV0gQuj9@`u%@CRo_iPgs!$FZGF|QiT@Wf^)`ac6xbV$LQ77+ z4)T8jCQ}h=dnuwVFKF6g`-3>}b{sV{BAhIfP z9)h4K4FXkZ21H^GU=~Ri=c#Zc4#WgQRB8dS##1{fbx<8`;UscJbUT+Mz#Jkq!#{@n z1QfKwMW~w~iRby~rJzHq%poAjL~TcV5rD5Z`1xSdtNqE1X}AB`h?)}AHig{o6Od{0 z)5KVj{AgRC2B1`<1;F~aVu*Guy1i4&IFojupuvJeY&o- z$>cG*G*B=$4k3n?^bum{5EMgit`*cwe%R|iyNGrzhEzcTVgM-v#ZVeZH9pi}|6gJV zK(+p7-D$bkV(1rDm!Z{-^acX7>A9?5&m2x73F8C6_cUQIFNlEgbKE{Y(sMT9 zG-w#0F#iu$?)4It%9rsS}w(jpRFM08!N)28G?N+iSUh?Mg4WD?rk{>uvdcI{ey}{|~3bKlI)ICpCsL|7C6xAOvfp z$Cx7;LM{N{(I5qeBqBJD1aUNg{XaR5i)#4~der?xFr*)V#PiDl!Gt&gb`b5FczBu+ zaZOs19gt=;#IXQ!v=sYwN|S4z!GhF)C&Mo`bOMC?i~rf^jlc?fa8%=8rUSnjCp=In z_TwCbk^!-^2kT8^s`{9Iw)T&trO@Bz{3*X?Zd{w1uD9pcq3~;a{tt%&@b{_kAB;%* z*TS>yXm7k?I(l}Sy#B@ErTGX6vk6Ac3r#KLmnWB)7AeYuIU^EJ94cle?HFtI1mz*l+I7=>7OE%A-Y3s~B22R&PWpt>_nl(dPgJel9eK-vwqQO%Kq56Z?8$>s z!4VXrvcS3GkG6WL#;dh9?yW-?EU&G-oZcLtKm42^=>2W;mBvP4<%ywtVxN00?IWI7 zBPWjtbhlY5Mwh>ti%)>Yh>7-F46~@{;yv4UEU;SVW3sFt^!7v_NRshIT!d=TY>|Z> zE_lrK6(*Xm@rv*9ilqpJ$OGl@2^JafFVie3bv^f9j;@HSCL^~A=J zWwsyJAFt9;nD`6*xH zXJQ(2`Lp8>I6oolK@R#@wSL%z`F2dTN!E?9dyP`#vcxF{sJ`|Wn@9(?qgtif(c1dU zWMh^MiEchQiaA0bJ#s(We3V1rRxd745vkj{{^7lzO~((Ho#?3siFu{1+UJ`AOV-63 zBj4^~6+8M-)PIrYgrCQ5d^?JQx9v%1RC4fn+x9wAcEKkMl#_V?}= z@tt|{TdgpsojH{YG1YQrOB8$TsvK1>c{8Ckiw{f$);?$vcd6l^Ls$7(x1po;2CSdl z@C`L$SgBp2y^)For!(7M@g>IF)!WSyrD>1sS%`a@Uu9{dyE^yWS8( z#kQlgeP#-xD&6TmHvqm~5kkE#-j`Jv+9+p*xSC(1@ zKh|@tkh}G4ZlNiU+Rm4w0uGT|Wz* zY7E`LvG1tT1Y|PomMVSFygjzpw>GMDgK4#vk!5yMMz>3|30(j)ooQDQ>l0_Z_FZmf z>Oj-}o!P}7rMM8fjCc=1>u;#SPC6|-L*onnE*;LJ3NX#E>K`Y3165psc|IBL=dke; zI}h6G+2Y*cqqq8;u4vs%F|%qo-U3wN+loO^ov!c~Qzo_Flv{Q-=iLv*<)}ehyc_Fn%$F1R;X?W@Giq;dC9=RH z(fz(ATk)*))fmqOyWF=M(W6P#E*y0rSt-9bC2`3PyYG1C`zc8(J}`$IQfsWjL_zbW z$?t?i>}nPh;F#*w@fm6-dn4$NMOa)%E9MV%$MWKFAtmx1a!l^>3YpL0B|oI162b^^ zUPMtyL=|%+G;A&1GV_^trL>x`8+D3kad_+bm3Zoov5pTb;Tm*bB2n)O$UTsS?c;kp0$t`p z&r0_QNI(;$FDBg=69Ow0;6C-|o7?F{Ui4)ZjXp~cEtB?9yxZNo&bLQumb_&R*GEkt z^Z_k`#u5DvuUdq><)V!W?ceQ|a!xzEsbBHgf&szIILJD^QTAYX=LH-0Md2>?(HH&Y zl}s-G@=&U621=T9l-4%0VXm@tBCAwYCTL-A__03Hd>y75| z-UYrI-SaY)IO1Ho@o4IM@+8F5UvJk!n>s*L;M9Gzf2b-mWP@e^P~J zV!fBo=%qP|;u>pX-#eR8QAy0U7WtGbZ@*$pwfjmj6yj~hBC3M|4clrZ)YwOdc`n~s4$Ji6^_vJUK2Hhk zHRKi-hG+F5;%N%^M!hX$!BEi;r|-C+xA z7-;Q~g&%S}$&?Zz9Jhan0?9|8A*X>1xj3VuHLU&~m>sR*R5zv^F+Mau*)N9q7{u;?Og+vF(&Irkamk$77Wa&2rARB7b9UyfLMEzCX|& zWTY42*DA{kyd#U4G)FCQcQD^-XE6J5e5ps|VR7*`KYg^VTcJcR zhmyCy3h0@4b8)|lzdSnI{sA!W6p$s-jv)ehR%_We>s$G%dK9*dtMuDq94NAqY{nr{j%Ds z`|v2SKAxoE2s$W~UDF%8k1zC5;+%1P!M$qmNDT>(DK_7G6RTmI8KB71=d2Ak?Xb+p zk_U}~I}Ot0-3I)5!!#!D?$mcj_$P+ty}KWMDths0j-ab{s?6NOv+SUOeP`lJ*teZ< z{?_lglsv=Zm?8|yEQGga>H9J)`87s&b7wd`p3)zy8Z9y&dr?Krm~&>HDFUgpsfB3~ z>`ph|Qyv|6NQWv>Zvyuyh$n;GUKnF?7jEu#O)7kLqPkRDDxUt(H?RE4ASS!qL#;Kb zI$R)f%*$?)s4r93(xLXoz7mcVXjRzpx--&Q0{xnojG}pTLoG*m?L&w=@+cDUXvl>~ zuqkzkZ-(^|GRkJ-?3~0aJx1F zR)q1(aF59HFLN28G(-pPV@kq@$}hkJw-+J?gVn%P(nKUMFnKhc4KZuw|HIdNz*8N6 z|Kqs0=C!Upqm1mmS5zuOGRn^0Wai>+Q-o43*()MDdtEyrl09x#Mz(~k{_m^#`TRcr z@8fam;r+((dY#vKo$-3z^E?h3a9eDkUNzz7r=g_~uY_k`!+w05Y(8a3Nq?x&tt4Zc zt=Z(s_4#GX(y3&{?1{7WgtwmvRhOnj%bR3pUye78-(FJ6oX2%9=g1>Ju6yPvVb5Kt z+1WtAFeg0eqrP9b{%&%NxhW?^!k=EMYIDxGt$>HU{(b7Ldz;1fOIu?O(2j{F1H2pX zo;wmq0ZlkFpoTVV*-)UJ3OkC@-GFeo>-mienc1K$Urmsur!^gQ*9*w%=4m#kA3FF= zvMQvedrX?X?!i+$`Mm3*@ewQ=%hLpaoqhomK3^Vh>Fh&MRz=c^6>r^<0`P$G_DV6^ zdaI$*;f^hu@b)LF0$EpS4ic}cANO)+e7+x%+8TcX40IFyjWr^=UUMe&22L|Sd@BCd zzZQPUi&B7gT*{+9&Rx=sQXZSGH{9{E~Z{G+usE?Ph>WDxpY)T#mwO85P^-rsH5J(+2yz>*_k<5jg+>Y7RUinNbpE7+voMnTmtc< z*yqM%9iALUDY~E5$`+$b6Bm=rCniY-{15=Vx%g#U_EmumQQG~aD5?t%T2m0(eN=~G z;*;ni`AXIVvlCRksU&c#bh!EY7$(K5*S$ zwU?2rdfPGCi=l^4b$KTOqpDFI7K_8Kj!!UO8P3e9-cfc_-d-;P*twgc=jwu^5Wi$8 z+1hdETOW(VdxEHG?N{op+L3Z&QknU@msAy4L|J2#V&knGO671kVo`683O(|)BHwm% zxb6_7r10_k2>3KL>f-hzx2N<@=}4xGbVmDa5xpTX4*;Dt|Rw%PDqdvpv6FE0y6(`F2ist2n4;X^rg~O^p;0 z!zPdejjpLLbxceXSNW2dxh)Z#}@?5E0Yp5acc4FWS~ut7J;a6z2tE zb?n_-`GOzJzt$)Sqf5apKM-js^phX1RDTb9>QSpD^YBvBTt;vUk@d@exk@xm2`w@- z0R4FA$$g7WZQ=&^FUj<6{dhd_-v)9M&_ITZc5+I$8{9W0MnINoBm#L zIXz*6*Wf$UP-+rAAyH~vG#|P}2bPZ}^w_@WSC#7sbGeAa_{ngHN>C=UAuNyA3WtlXP0{G`HNZ{)UsItlsKT$$^B9~!L?}! zVjqR>1{HbZNh88?6I)7(sHxODc5Rvi!NvPW@|S(8HSiEig8x(;YpVZgJQjRg-NIOL~+2 zpPG@T;G;xS61*R|CXa*I6dX!b#V(f0H!BTJdd0RSu!S)MXyoj4JJO}v9bI{*ZHDH5 zl{8 zON)XOm@4S2QI`aJldj3zK(C1?b!rbFDQ?5*seTGLVE2_3lLCC!X?XL#_I}g)B%-nh6v$}LNk|om-|pR z$Xaf~#_OT5m|)(u>2nD0x9IMF&6UO9W$}LecNjR7caamAaTw0ba38dy<;%e}O?~}G zUbM6F)Fz?c0`()*;2FR7g}(y{CCFh8OZd59XF;9+*bY`6*_HzJ3GHP~;Xu$L>EjMm!lAb}aqGaDUA5e#K&IY-GXhl@ zJMq6)F2kqP`xa=);N|;9Oj`1UmfH+InJ0b$}{Fbo44_PZ3 z^jOieOTo{sxgzWDg7TFG<%`*t<=#>M$`?7?_*l>sm~X)B7=NGGe}0ibX+j%B{($`A1us(e(^Cn<*G;3V`PH{2P!X z!7q-P7~3q5^>f9}wp}%u-Tkwp%c+dwugMaf@ZfKO zj_DCrT>@wiQJtsz;CU%=%bH9yL-i* zhgdS>ja zr+Ee4I>x*L82kFKweewF=QiM6OC1EY%y6t84`k684|?Bec8rmhcXfq3ns1(&?wfk# zKD0ic&=+wwd$w43$7GSetO9)ReSwQLi6U)|`X#Kv7!V{L&0{>Rv=!EfFxzAqlf@|Q z*?yMCg5JE^Lc90VbpPXd2{tod{a#zxrt)8B$9eAm^yDl^Ezn2O8UJ-1m48hN*8wu< z4%krUsV@8+FxquyYGp(B$CX5Dy5!sXqI#MZlK`srbi#Z0x|~3Zvu;xErc9Q3aDR{HLp~3d@_gQ|=+RvlOE_LMIeyrZlRPJueQ=eyi$}Dba<`lrz?`Kdm z5jkd?d$@GterfSTr=4+|kCUw{Wv^&^z|ZFEN*V(~o=dwHhNii$v75IG?7B1=XdCQ- zq9U@76TX8JlBz_xZ)Fsx$&HsW2jY}#(amK;HO%{Q^sF_RxzxrHa@osLRu2qyR=3R7 zOZwU^6rYadO?JdPeV6~bwBMIqnV5b+$K0P>f5o@_WcXGNFrDP8(#w{9RXCQu^DtzA zyAwzf9vM(@U6=1+wj@ycc5EBD@`5no{n~rwi843qEO_elAh+j@XIW2*8k4d&-xof2 zDy|ow%rA7Lb5KV>Q`-g&u9-f*BI&J93U&^8zZ2r<)Fus)-{U-KyV1C~Sr-BeQ_Tv! zB-5SE{7At)@tGTE$5w;NGi^7{{0+kW$9pBfx4miQd|}Tbd9kXpGHp9;ZLaE*_4$Kq z$R2&Ul~w1vH+;}ElL;>coaqhj(lLC3QN};K8h0>j7H2!B-J0q2MfNTF!F^cS;>x_A((E5lP4$iY6~FvL*Te zU=DL84%tErRpX{T^wMLEO)$j4o-QeDq*$xUQLxw_QfzuJzpp~@2=R36a(!PkV#DKZ zD}#KpG$U6_~c`Y7D~bBktG+;Q+28}D!f$22$7FWuMw?rS`BT3 z53@-LsgplAP>n?5`0+zlS-wB`INL}AM1)?STqBJzAP3gx-o7uf(j$xInK(Mcx)z)C z@kWc@yq#eT?aGtBm=}+1`(ScjlJrD8>SdK#$dV@~uHnZ6L8%+{9%iO5GRLOrZrttl zuM{lR5FC25j~1C%g=Te$F`vjUf-BV1j3l7r1!(RKzT0*g-gagr;cZA z%sb27A&h&E$9Va8CCk3uG{5ut;o?pXP7iN{$;Z+VE5b(IOz(mF3wyHFq3Dic*SztD zq+2SI!eoOh~8EOplnmu$#A zdV8N6@^{#!&f{G(r*k+8Y-W9vtG>T#04BMrCHJY6oCtQq-OkpM8hY3SH7BH6&B0Z1MA7_J0HU_nVY8*d)qtwJ{47%n-MzyXHEEA8*4wY!iDhvRH}dVb z-8?}(E~+q8d^<@$e9+PxuD{E+t10^}&L>fgg3CXM<>AYdnf%>%5^J3RzErw-GQp)o z1zXKKFSbxOs65ill6U)yxH>Bt!HWhDNKOYNHAZ4OBX2tW0c!BO>MB0)dM`z=DomBCbd*UldvXrhC#n1L`I5z73rVQAy4z}6 z`M#}Qyu7K*bhDp~&3LE;NWML_H3@f~l8AU*cQb1v`KXsxNobp!p5Ct6o~jGPk%Gpmij@nz^d=61G;0fbG8UCngcedp#6f z<573opKyE9Q;TNr)vizz`i>6Qe2k2@;o%JEL#{83hX-};9&k+$R=f1Ij);(FiPh(* zT^bTnH9z8>a9a_*fg8|#&VFswQI!Ywii@hd4ku_8EY7HTJW9! z*wqg0-kj-r_LD&PCBw2S%fc$N{H%w24Thv9%Z(d0hE20VdoLkP8fGkfxVEy`^G5=T z34uH88ICoH(#>l+cMtPFnhBKNkQ?uWCYsTWMW?a9L@-1(+L>=FJxFL<*B~yW!0%h> zzQU2GY=g$hv`Kd!3%_Sw$p;M}&M%~2hl#V1|0p2CJH@zq9?wx!2im0bG zlhY>;kV;eu!kaLTu2Z~sie*{(28B;`$*`$6>uNtxlL1@Zg$l5hBnlSaNg0doq9coD z$Tr!tb{-q~bxEAM4qpw`L39rY?UOTJcr<3U&#y*^GFYSv3w^w{19wBKqYm3=wtgW~FgNTOA2ARY$I z=6&1hY%gi+8{Mur#+o=i=xmk$MiE`yG2-p-?N}mEu)`=q#cFjU|8_uTuC3q4rGV{qo1Y$VGkI9e$eX;)R=EHY__;Z_036??g*YTIr(sHj``1z~R z)oeiZ6n@X+w4Ks+0X3pyXCBu$_`yrK&sw%46^D9I+x_nvwq`bodskJAl1#qz<}xpX5cs(Y7@a&@l#o$25Tc_qb%cHUy5bO4dw73k z>N`*V0CTfZ40B}HO~*$d#=!ROs$`yGp}^4#n~jj3&w_2}v1e$X_!k9@&-R7)J|`~% zcf_l%8Slei+$>v?sM?!zL4G>i{m#SezfWRXzEF4Z-2;Dyp}lwMgO@*UyVu>IZ1PYT zH16+6?9aKBd-xft(c$l%e*2(f9qL)ndTq0Rg-4)@Mi$)`^UBP3IY-cb_){@~px^PS zm(4)JzMeU=Xrpo}W8r(v5ceL<57r>Nv8ujSNv>^Fi!<*Mq9-Z)UEwY&*TRz=_PL#>uSTgi zzif<)(Roq#Lc;P!7gz{2;qIA?P_w7dXMd_ z5{gy~)BX_y@+ToB@((T{vg`xocQuqaGV?a21Fe|&?>mxzT4{=jBPr;p?o)}0|0)Ig zgGVS{?KVapi4ER*i2sBl6#h&gg4A+=Uq%X>(efZmC&*uc-;_LqBg7U*x=oT}*!)*Z zPLTgu&&e}DLh;`iikRvrDrd0ziNqOBiPUojAqmfFo}!)MXT3CWBt((1&TvU=VPs}0 zr68A>#IM?>fA4Q3e*LLG_ctJ9A~yUYwggfcO^)KlXY`@_rm1t+eHt zp6>7Vodz6!&XwlBkSTQ)ofIo`PNLYrjLU2jATew|Bnw^iKmoLk&yB9`IxD zs3*ewHFDN8;QKCX>h2FN-^2ZllIGOYtBk!>DrJ|pBo)$o1XO*MZ zcK_C5^SdDh|AYCk`z@Mz{XZ&_>ftlNtC~~BOtY-br}HJ#xh=#%=5SYuAS+tN+a?d3 zZa6G}A)v`5dU9W$(DU#R`LWqU8w43lYdT%OoPHE0g!?HoRNVielw|ZkA?3{@N>5<% z9ygKG%+r1|LdXpt)7JOphOPPxVuJ}<68X#%+z9!L0_WPR%4iv`FAuzwCr0xl3nkJI zDIYjT1Zy+e-N2=PM(mW&|KyR;KE8tngF^`CM$vc68~MGgOQepXwkVs|5C<%W6MKY( z6V>CdctcokxTg#+L0oSpkJzK`HFLTEdJxYL=NT!&5*&HlrnJRjJ9)m^l<((SC!Ff8 zD+G@OH4^PXw5r>WUAKIdG*$bUuB__n6Iu^*6~n7wjt*mFC|->NY)1#5)Yemc6P}Ar zEfRtHTXj#!=FiO>pPw*$)7i^&@1zt2AT*Wbu3(O{!)9x<{iG9Nkt!3C6`F#rk+&>x zv-8|cMXFh=g}z=DX_8cWl@5;dr|a{m#_{$+jnbGvdbyY|DR%}`U6B6uR1S>^16#E` zt#{#p&cfmpz1cLuovX!@@ptfNjFHG4cep&TF~^BSF;$(5_ajCG_h?=;!QI-iO?3G9 ze)Hxc4veX3#_bqg^sodv#HNj7xWp03sx(ch|EP?+hK0(Vs57TsYU_DxW6LPyOG4ze zndkS81MARhw|vs~TdO(`D#9n^Z}p~Jg_<+hNX}gnt3Vzqu!ePgw?$-AP0zRi z&6J*RT{M7jNpdDdIS;wt9 zaxA%>FRn+(ela`iM}agi#Z}=4*zw|{moK?8;_ijpz^o(50x@LBMOvcqq;9h)ddwE;%B4CB9?o>K!ZcD&<{n_m7?x{7R9^3MXIm5T4 zt{k&qf90H4FWN^<-V-Vs&{l0U>8b|#3dvothQ+{Vj-RE#MyF$1^j~aU^kGVT+CW8M zg8X#ThdsFCrY%;UaW7G)qaFpl&~2Fk_-b)iPdG|3Ix*0{c;)K4>bNm{KAU=XXJ(*2HE5F`?t|ZtWUd5fS-1g=y<9N>#WW;BZ;Jl2d;f zz{Qon+d0$raTV@YYn`jHP$%59AWIfC`N&^c-o?Z7^M05iu7MiXZmyw%WUl?uh^TDT zLD3S9kAga?tHC!EJMgID!M<++E4J+@o;4j-V(GWK>PcbEd+b>Fju7=6rH<8Uden0r zaqC5)$XH>#Jt(pllyM%=WGmbQi>#GZFlj4JeqFZunQ^J%oCH zB`3!-V;_81_li=f(IbNeFL$KT?eWZr@GIZXjHO#&7lh6m?0>u1>vW>)Vw5dGw(t9W z&8#0+aarf2-yI44n#dG9eA%DJ%A3)wX*_&fmBzKiX&Axhji|;MVc51EsFPc(d%zf? zLTOrzI+!e=G2VAxYXofh;Tq5?8=FPc}FGFwaLz zNPi2$Nx1A*BC8dNxRSrVQ_vq?a-2wJOQ62*5cEAVjj`fvoJvA z)LuE7=&vf)|1booPfWGJZ?`;Y|zQOO^cJCY-Na_CiJ5UDYQrwp6#&}ds=-It2nNeeN&>rso;@YaFMmAh3N{7b#@)y$083k z7S`Oc%PcRSle%B2d*r^zs;;ye;IvQX~{49&~Fk%nud4ziAvJm2*j|^%B5^gYc$bpV6sp$nlUtU z&E&z-R2T7OJm_cb{p)XW6@;O9-bc>`fa}vOtQ0Wa7+BI3(nrx-o6K*DBN;F_Ub&qw zCS7mHyekDZo{sCry*j;}pqSKb_@Q#nNzhLchwJe)x2!q$giCsdZ#18o@n!Oq;>h`DAq>bk<~;S-?g|#7@sk zZ+T6hd)APyOoKBM_lm_CKXMuNIK}*$;-`lj_|HFE0w&`Q&-KC}!HtYCHSJkcl`G0J z7yL;7m5kO_Y{9sFa*sRiiFi;Y;|{gby6`VBJUZ;xX%J}mDGtGMZWD*jGT!8Te$Z7t zGzj~IDbdO>BBln>yjZVqU_o;XLLqxsOtD?r^uT_gY@hnU_OqqZOc`EX@;O`_u3a#n zpeD@-W&;YCQr)8`O7gO1g|cun+)`f}ri>WoQrlLwDW|WZos&OW*QEWCo%bf=xBpRlAEa?94LNBn+t9l!3zH|=* z?%7Zd3Hv?PAcI?M1RCJy{qqay2p`)(9X%s(qOtV)gCHsZHtsHE8RD2t3@pANl`G%5 zlIn0)CGh!fK5$myCo&e4!twbxTd;HGU$)X-DB>IvFRUR@1asrqhSQl?9D&0XGgxk5 z?;WZu_na#>@xb?^C=Onip;~-QM`5jBRe2Xfm~C%hO42~2ua4fUlDtgZ-Wb6Xz8WL| zYl}?G!b%}PT=Bj0r6>@S%lN$nj)6ZtjC_)HB_SDP{Y6$J%%l`lWuZ@j7Z@<55=yn0 zB05@_t=mairnJ=7T_UD|eGBNDV%LndVS9H>0U3wdRU)4t+SW4-LP2DOZhLd12+Y3m zNuk0*AdnYAw>~}L*$rNI8w&i6&-Wn%oc}KkN^;Fe&b=(9)vFJdvw#g?hi{*0&`+-1 zAXjCYpIk9Dh|CxQr5g+xtiaH__3cK?dwC3DN&LHJZ1ihNJf;^&Fc4yDR!}0-A_+`E zi}5n%H=Pw&jfu$q94Oec zRc}0~Rll$gQx7GpERg`;YSp@p#T4j4t?YWXK|OGcemns%d1F{SLVmUgmvA#cHRzIWLmF#pV zRv|BMNJ+s%fIZo8E{m9{BZk2ku6bbigkjYu?7SbA@JC!{NCLUk&F%7{Yp;Auzvns5 zm6sl2`{`Ysc6?SkvZVz;J?0}ei+R4KWT7Uv~KH8CzG7LrWM z4XT$=10vO}@0D7P`JC~?_4mI_w<<(+tKwD867Dk3Yh0Y}mRn6)r}kJQi-PIS%mMb5Qe1JOqh)26qH8nl{U_#z zctOP8M9DsjsObxwy8;4X$q7s(WK=g0c4U<_N~uRu@7)r--fM?=3Kv&!5LX4<#bH|_ z<}Qp7;PINA6=}6a7CeOW0J0{C6{ZG=W4pncHXTz$OJY<%Ozs2C;{u6U7etc^WeMca z${K&8P=^u0=U-o?>pKLgA$H&tGLw*7DgKm@%z^(xv@8*6(mkqQXQViP-G$L(`?@Yu z+9LzH-tsJE!4bJ6s_Qe3HJ4_N&h4kQj1UA+-K>e?`Qb{akHba3F1p#^$+NH?*w#Bd zshzwY%T*=d4>+dRu-F~59lwpCOD}zEtx0Spa&!9CHsS(zc0#sCFf!~Bh^Fe`Gr6F% zE8gr9_sPQ0f@SS`L))pIDsJ_DM60fX18%xse{FFvdCS$#S8U!4?AD5SCg7S5)-+Wm zC^xJ#=dAbj2su>auSCSE2&h$9k@+-9<#2WK$dTAl^Bkw7$BzkT5zzFZq_Wns;|=Fd zdy>?nHFTR(9t>>C>h-Yv=mCh zdhWnTdZqL0Hd_tr<8e7GD_@D`Mn%S1%nx{sO4*}-43nHXUSXILvK2BRNe$Q|Y6{zY zOFO3&A>w4Gd|;5k{AGe|O(62XEkx*<6I13DP02cWdhXad{Y#vIp8!`r@Ql+u@zhnI zJ3OS4oy9SjTsx$RR*@ZA)Kh|Ab+y9rRghChe1b>z&FIF>oZK&($%paZ4ez@%X-^V= zLMV?H-6B8CLVTZj1MwcD#JCZ?Q7z;8FEZNx-*YZlABmQTkraV|op0g3EqhY-Z2piW z+bshwerAWWzykOgSvUfNPdV4;NL@s{+m4FgO~fZ~zH|28%6hpw?P}H*Lc3~zGJRHr zcEz@~=u23W?T-*z<^KpK@SunPcQC;+J9D}3fSoDh4IERGevZj((*}AGU>akBy>afE zo?x!F=i`|P%go1;!dkf)JmWz+%uKY5TLb!STY1?5885TteBRyQRkxx4;k5jcm^0kd zB`5H}x^EB}RQ0FD#uTWF<5cD-k-q>7;Iu%4&Cm}U`;X`cSiWGtf1qqD_rIeP>r#mO zQo{N#&t3lCF80kY7yIR37wh@g#e(nue_U*$tgaa?CuKO$46mKoi6?8A4=N0P5(0{s@2@)@}jS3R5)1kpQ>8z6BnTOH9l&L>vW9FH` z(tUYF)fHu%VzzK%sYU z{lhi`!}iWEwqWtU2Zk_gVQT#tvc>TI0}AjD-&)r|P_%WwGy%x?R{}*GcnulE=3t=J zp@u2DjlmFBAqY~iJ`PgQ2t~qF=c`(JxqVeMroffkeLdhtq)$yWBVw(&2}x2tI4{hlys-3f&2& z${;2gAZ|eh7*lEe)lWQVz6F%;g%G88vcDksz6QTn((K`XglaM&%-o*~LzTzZX9J7Z zlx7Qu7cq6bSIA@FTR4KD%wROZ5d`%Ll=T9@e^{@7mTZGn+o6;52+TJS7{YS=9adrj ziUAPM_UACgnQZF|{|(a4!YTN#a0;y2X2Q@}IMrGK0qHE9`d!Wa@4~P!0k(`!TVU`V z-PR}N7E)TV4T@_b#R>fUO2vw-*nK+13?E1x$s1(xYSt}t7qsqE$GLxrjmR;7%et&g zJNGPwsdA49Z#X>Y0u$eNf&{<2%ls2k+LyvtMa$>1>^v>_Q22%f49UJ_0Wq&!7(7~r zrY}Z1$=6@@^UGuJTX@sr)pE5kMsjl3&Klucb)NkeIZo9B6;)cPN6g}N9+SpnpB@bv zbn$`(r;$mVu8gIjD7QyQCyndFA$^KgRIw*GcUjYD3EzKqm>os>MZ%kbjQML;4Nj2{ zn9Ae73HdRauG~L~=52HuxNPr8`FQ3nP8XR_@P&Nsv8!ah4jMRI0UKnK7YU4NbjI36 zp&J6inci+ZQ*Rc`d=d>NZXoh2vA#@oxxwDN5shJZ9p#qGoKzs@+o`QbW_)X{s?8=; z2(qO|x+p&DM4Q4(K3P9F4%}e>+@OdoEW5|s3*4K0{I>34ecO!yz1OMoC5^5yG`7S& zzCCV|m^QQC4jX8iZPXQ6E$pMow9UBo)xdzHq@bfOL!B%)J{3DXXZeP;(fWdrB#~6J zZngUJVr0;wI^SZh{?51O0;BykgOm8i4Y#Nx^4Mwc-CyUAMu}@KhEgJ>AHkmhro`WO zEVmQJMpLhTBvibPdnLL3tJl_J6)E~Q3L>;f3#0eeaC!%N4;`qHF!8ZA50T<)iF53M zUJRWX717#P?iu@_xx;*N;0U|G1=Fp*5VikitYNa(R=p(`A1Sxa$)&K9;e7u}a*A2X zJBY@I{WUv!EBn{%k5`kYuT4Kv0*KlbK2ce(kFcF=xxK|(soMGA8kcr*9e6@is5ZNF zJU19aakH8uQ#!eNbAeOB(5u3WN1!Ug;BdBA9b|I;PwKWKs0JYkM6?8mO| zREe(Nc~`aHl;q>Q@Y4NtWS)*{|1FBS*L0ilxq{}9drLMW5>Fr10wn!1qNdMFX9+Hg z^9Oa6$&&jf$T39JyBz{)@lZ zPvFW#Sai7k_}DwbuzTVwd5*}uz_u_~T2Omkcq4g?4*W}Bnv1v2wboIk{@jUT@?lj` zuquduIjkgODseO&!9@A+{n-p^eB#E3oC3FKDY)Sm868dv5hAc~g{q55w zDT28iqeea@qx1mpkthtnd!s-Q84yPjyi|Gueq+{)61*0Z{O@jGl1K_(_#lp?1hV8Q z_*2JEe_w%##Q(ekLpsF6*^o2w6toaADIug&JX{F57!BT*1ujvraEnP{P!0d9IhWM0 zKl0~744kH0J2^MVK=gkg07?pjS76|Of9}L2F|E2JkxvBR)L@q}Z72y9@=hIyepurQ z;u}8c1pxq~O9)A-KRk!)Vgs^nQpX31$+g7Tv<)Y%jZqxOUq^w{+-7mPEy3u+StN2( zaet#2)_m+m$92$lu-zkEcOn#D8DV%?dt6I*y+&G~SswuYYX#d3iHsjsU>-(Y~?*h>lyM={aZ_7HG z7=%soKg+NVI$rb`PK?{QI!t4nNIIhYbGFmdXu< zJmJ9+3xzEHWx8|m&Lf1MY(q9wnsl_M`-6+bC9e3XGvKZoXK(UFE05ZkYiO6;r3+aN zzkBk43?HPO=XH4SOgEs!6WLl$h98g}g)Z+1R zb*3U0KAlHun(KKiGnmORQh{$fq__qD{-vl@fXth zVeuM@C3j`&U%zU-w(!pB(qr;t`3g0W$fwd#%SL;PA4p4c3WHPy@bBRZ59F`jf9GA{ z({5v!iM`RxF4%Z|cHk*56N7S%a}DW$)Sc26GH%Pe=FGBO=laqW~+Dm?%dZ^sG9BOYzxZ6k^`EoC(MxGj6xDU~wE|9M42i0RVHkvm&x z>eH%>7AJpbHSC2kP3P;#TJbxMvp3y}+(=!|m$R4CkWW2gY7R`_8rLGF5gBwEh4;U! zxvWh}vjZcQ%a5*&KD>m^KAh;&mgDZa04wq86j*5gFzh2#8}DO;8u?FBM52 zq&&ivyFpw>+qro)(Bgd+p%~4e^oa*?(%UYD*rELp7a5wn#dqh>rzM@fyr~ky1>*s> zmgA$W=2EgO!VCSpF-!qR8?ZN}%r;LirTc2Uo*0&y4@KU#OSR#9k8@7?TvoBgSl3qh zBoj0DgMlViv+({BVEbdIrmjLnbBUCl?I>c_FT*PMyW59+&yah!VortquHShd-CH1< zy_)bSn#!@Vfbr-$YhvoEyE^MiqMUrr7tz>f?76kvsSC9S5s3qb{m*I#6?NZva3*>f zI0VbPga0wY9Ojo?4H(1X+a?YoPFc9xB7mgrQVEllRqjB1AihPr*#pY+fbtzXrs>et zS;uh)KH0s;oOIvtzjdzCm^&g$>b}Y>5YuYf3q25N6!pSRZ@(&JIWV|);Z20%OS$4( z@=XxElAVs?{ZID0uG^PgB`;q;q_|*vIAjiQy{gppdpB?zuiGdNcDtV>+RH z*AV&aL^_u!Eb7Cjm(u6hNh}%0}_~Ue;DhUB{Bm`e}jk?p!uK|8sb&R@tQD5Js z6?o`Kk*|R`X5u7JiExO&u1vx^20W@;`sCp+D_t|}0Mbbej#(1Hwb4QO>_F~}>Es!d zkSR8Hh?qK@QCUs&CO!tmDvc548i)Z6dJ+h6(YyejWletvyB9I~94;0n)MJd$Hq3YHc8rabIg_7j@AeJnc2Pv8XLfSt_ zVpi+lA`gUAVoo5tK|CH?jn69v7aib!oOnvEXNXXu6h`JyuonbKXG}n#{Xpg|3=`h9 zpRE}JVP;a`FpI?`%^XrTxW;T|hS8~iZtk&^{K@ft_vWHk;D+=+; zZ$Zh^<0z|lnZ!p@6PTzD>d z#0Fv_?O-YCnGLx^=wL!%2a9vzkRn%rs#EyYldhsxWNEZAH zAO(841ph=&3w)38Bfo79g`c6Rd0@3+heJI0+g&rLVWA)d(dYF6@OatYsyYPn(!wjy z=grF<55DK(L=qtAmF*dZQ4&F2DMY3ML$>>zQWGyWxNuUHj$9ge)Mg$z|g`ZKB(Kvfb}-Rm%CU%IZw0 zp=y`NEfE}NokF4|q{L71?+UMIno4-UV15}m(1oKi2yh(~4Rg_}Mb;Zuk1xFifp}st z*iiPIpn{;rek*q%F+D8Wmi>C0Y8geS*t}(6Ft)wU9mwO@ppKrptK zLChIDdaYSt&j%FP|3U7qPM;!X8z!j*v3s0>Y>86HfUOxohFRb`1wrQh@Nh|Qce?u3Nw_Wy<-bOhNxB6WFHVw=$_=lnDcb2B)3Vzm+==SHQTeRd^IKv0y%@sS zh+nu%J1nfYy1#Ij04(OelMaPcIe_?34bMxt>!q1WnJXae+2X^;7O!4wmnMM?R>(0u zKKfLJ!kC4UFr-v3+42)G4Yeq*K=85@0=BM)tYOK3R;LZ@GjmUBfC#Dz0l~_OLN8-- zU&}Mqd;wroQvp;>19kud$d*Jh>h|D&4VmbU*r zNH9VFxuw6xf?N8WB?ud*iGht1r)r_~LfK#lYaLu`xl#zrSWw*l0oy?<#$tfa%ReOv z{1oNDKcWo(D@v2dQ?Z!t|3iJ|RsA^#9&~p9KWkI^55t7N47uN`62X-RFvwkfs^nk? z7XY+ms@Usback#yA_BVeNqYyE!T0||eU4Wq@wl5YOC!&;_0O!8!8zhy!ypifQz_%f z#?{%t$?@JGsF>nF`wZ?G8J9ifxc|kGeCV>260rDlX_UdIoqF^Vbvv z_N;+~g)y;GW>BV5h{EQ!vTGQ#D+=>G@b5m$_&tQ1v#5IvFO23Bx|b~{RyW5*ZrZAQ zINrHSxU;vaJzEQ;=loZ;~C9$X&ic|TtE`TV(RumkR`gc|{d{vU`RyaQq$Tz{_8 zM`mzq9X^ru0Sw6#Vri`lC2rn|+&;}(d$SU}nT0oG8x?SeSI2bi)4eZ+0=_Ln{_vqH zg|j0K%G8ogF{7=5lcFlW7sCk^!zNF7LY2DwOr98T@l}nk4Q}3d12|rlm2hDCdAxpu z>dN59>DPHtC7$a+R&{y{=#$%{0{eLw^VOa8^H^tb>R9XT(poKfx9ihBM~&C|9$Pg$tIR=&U$7s>wRgP;2Zq)?&PM7S2ONh zKcJ?Ec9r_PZ2*_C5^~Spg@-)7@h3r$fG~ zfQtd>l}op3Z=Wx&`1Yu;Kr}jYSrW@tKrZj#pk5RuyiQSG&#%Q9CRnsLGH!uCMnMV!Ec9|8GHnDFfNwgQn|F&ht1lDQ)%jmYBk9KG!={>| zN#J`HkV1B+Ewe#5|5~wzOk=H~hlrgViqg|5bgfuj&8{E8K0fxOz@!pSDKH-9kmlCH zlXRoM#%S~&_ie55>?R%A9@g~Nq3_7;_1pH}`XpVt(;4P3e#%X{QPUnkcqSv&36acb*1slB3;7mj+=6Qc~Grs{Z? zx+jv`^SBDBZj~cUItm=OpLM6UDOr7)ES|n5=SQlaL?vimO279>=TK{Nq{an8-q9pws;Cb8!vmrMA2O09f$TB)=&6ylRoK`mXq+Hj=jP>E<_^Yo9 zD*6_RUrFBEs7iFb8v@(pC0i&}ucb-yRqwmo6**O=X;yz2uE<|}>>NLBWRPFv?O~_r zzM^TPH{OX=%58aIXCw@wa@%&;)cZgUn zSwSj)2eczcU4_@AW@dhNsH1^O=2nAj;v2e&!i1+~>uEHVn}VNT?yqQ!z<)F*iQn$a z)&H?3LEoPR{^*jW+=s;YZH4B`P7A><=xq-d8d1%CQhI5!OLKM{K%;M#aPzw$1IoI2 zm1o7Ul_f-#K#P@fO#K*Z^tyEw&^b@8m}|6scOfjgO|jDFa$J7uCeJ?Y{gnft{J!M0 z^v3XPn8cEN8s7lbgHbGolJE2=T_rN86EE8G4c5z%xNe64B=Yc7>pR}3DV@EiU%A`m zz4H`n&-V@5#}AFY*IOUd!IpfdU48N`L%bRAn@_*b7BG|%?ekPUXHh%S1z@7P+9v^f zF}3mHKJj=U?Zu(h?pWA%wu(!z7RG~;cZ{qyKWvbFEpUGBp=C>mS~Iqe*y3hN zvusVHq*hOV=XjoCE6hk4T?7Qf4ZrqtI(y+q9EeZ*<`@?Vf8-!ji6!?b7m-7dx=)iv z&Q0qwD~iHg46QFbSd{VTQT283|KJm!<7NCo*)*Em!Dhfw{+8p{-%ZqleI_WhNp)+U7N6GNe#q_{Ny=)QXsw4O@Gekd3h`AoJ;lo z9+7$6p|J7(MVV<3Oethl_1N!Qi^JzZ#o^hW8_(2*+9J8f1D*-#v2ao)&cNIj558Y8 z;Uh9N4PDO@J(rVky2#lEfI0BkG)(_chA5-O(sf91x&`TTHRRiP`J{o@8skqu?@|8N zG5imu!@hBMR-EAD_9M5}Le^7a6G@-vbu{hc7uGNIYs+je9YidXo-7Te7bSG3XX`wM zeM~N8l)wL_|HQOoW*|h!XO}ItW_JsDs=%eQ`{NORh-O!zKfoNe5v_TZ`J=IF`supt zy@x)gi@6EW`!>^MF4y0Ff2mr#qsm|?eL+XPd+mJ+UmE|N*AeF;6}Is$w@yY3zR^fT zH2?Vgxten%y73E(iTLp(>zv>etaVhm)b7Tu(9D%aIX8tMhQN{*Fp@d9a<}eiYFf}k zlY93yWk?(1`63n281Xn8|4(XBDufasp}TFsrW(*FPF)_*YK%`|Xg7&dWjQT-{yBgD zTGuAj=bRwRjVSl7!Oeo#G)vEmV9w5jWQPq$dOl{PZ6V%4Q2*yL3D+6%mUPZ?>#YpC z3zIY0e^TqI{K1=vI~~au!T}2O=-bh+qhl-$7wx5a^onTP7^9PXFfv zHW)x-w?Pi|?)ePB$abyvl+qAo!^Xgja?x7&mXau9i(EMQ-Ei6M36n@oT{2^3x?}fSyW9_k7?wO_JyWnE-8!R>AXkTZnHb^*hx2Sz9gPA1}e{W_= z@XZt+%Mh62k?~bP$tWsb88P3;eS9f^sg8h|bPsEISUnUr7BVEC4T=JoHk@gZ!pP!0 z6;uoJUJfgchVI)GRydS|Y}xSPtg@_}E9qKL<}WG4jE6)-j^8eh$sN3+Y_*38Q{{h# zsR%Gky?qv@%Ecwgt1Yu%zZj3rre;P4rp$NGQf3w*xeS*J;n4LhFlB}=nasG-0zQ~5 zUXGxbMNYN%<$X`S=MqGm@%U`q>}zLBR!|DPSb-rhuJp+Wl-EMBB=%wlW)LBMK4d`X zesk^HV)GzfYpKgrdJqd&B~<<_lYsA`EHQ)yfT;u-NhuV643aF3 zMXqlC>jBKh|4KCye-EV-1jU?*K)TmjRN5Uc>UZ6;%bpRn!{p3o>kmSyn2BQOZ2f7* zAjE4y{owjnl|s)R{&W3rLlETosF1tk0O@RyNW`f<30Z#E8CRKXauJX#*H5l9#0X3# zE{Dm)x6U$g4?^Sr&cuCCTY*i_=~&*hLDp}Y26(_&z)YNM_oxi|(!ytpKsZ?lg;A?5 z_9ysk(Hgjzy})y6q|&25KZ6$7+R)fyJ0Kyu;_>0ee`P*@6`*v7U5@SRNIRG~Z=poa zRP~G}nEEhaQXjIPsSiue20isz=0gT%KHOmDBNfO_fKh;-Y3^T!phjUoujZt&0;(gR zX=f@GihZV1HvhLu$^2HS|K>=59EXUwXnfR{vWLP({C}*y1yoes z_cu;=w=}4fA~|%YARW>jB1nmZFmP!Er9>H|5fKpSmKs1pB&DT8I)-j|@2Jo7_1@={{bUvj zBXz;24%p#;YU9SY%>U^#{&5*(NS6UCEux?R9{nNW*RcDoP^6EL{p}-A{_qhb|M-ai zY9a{GM53$NG{9__j6U|njI8$LSRzQjo~D9MLP2_nGB~UTKJq|+J&r5@I6IaAodbs@ z@slMK8Lcp+rvNM9G?JKxvA>$EHN?w@WO8+aaHSD>?UxXlMePkAuzk67qQqm zbkz#1lK-IXlKXw*+FNS1sR&uXdA&TPqr;nP;N(=J6|?yJjN{i_BWF>QP0BZNI8VBl zDaSGUto?fKXz(1bdZzwfwCRm{N=LotOnHHlXr72CW=;D|0O(Z@lajxovsIIW+CZhQ1L zJodoOV|687-z)N9s~G~>rgtjcF_LpaE#lqX2%axXOv(@7arHJJ?64be@i&V28Q#;e zk=)CJRN5&{ndDhadv^Ef*b~C8dS`sIy#8S!lZ63%yA0t&*Kj_H3oMl0ab=3b3UPG$ zK}MFk2{cqrs8wZd`+cz|tWtU3zXsGp^S1XNUxkY|Y`rbC-JRG4=J592cRFVyi6lK( zgsa~^->RNM929oOYDRU@tLs(e8e=;2HvGWxN9D`%>kVrd)No>rdsJzW(Dq2~%-BY0 znO*q~h9RdR-OlQlwa`}^=?2b>)wBEC^jKW3f^h7`*wL`&)={_D-pn@%+}J-e8Mm}r z<`Ng>pVM@Y`_|tg21-5SB(~8pFR{cwKgjld-h)UmNPS`X;m9a|`p_`jkEg6omf*He zdlY&-W`)-m^wsbGZ)dsyIMro~{Bx?y+9apEr;zsc3;zkE^xCDTTQB`*qIVp=uhgD8 zP=!5#Xe^E@*c?7!rHCM?6qaOa8z}YrcDLHw_EatpI(y;}-#Y?M=D8m$m&trtyOTlH zhJUFcaXPmDS>%|S!azdj3TiReIsM*Y>)JLf(((a-^Up+=N1Afsc72L9;Z`##qic(% z#>sXK>!lLSu;-NiGYa!TTSGi@#CaG`8hcwqJyqE;`F&? zQ4#cj)ig5dsNwWrg`_uyk$d&54Q?)PcgkhiSQTg$w>wp4;^l82xsF?8X?-x>1n8Q2 znKvX>N44dIKC-M*N1p_y;I|RtDUO|N1>(0=XoY@Nn2|%wr>t*%oI2FySmR)!8`0uG z+a_Y;4nO=r_{FeoUV)qPahKVJpKz7A?)m1lQ(p4D;>+=e{8HpMZCicS+SzG6_@|ev z^P)`=J>uzGJ=ROBjV#xfW$#KjzW^+Xr3R8Le#qR$o!VhhHHg^XlQexF59= zS*&_q8N5O*;S!UaLVb~dzg5QmnZ+#4kvfhmhIwcI{Eb}Ffri%9k3mKm!^e|rTh@3) z%u$7-0QpmILo?v+XYwz>*nH<$-Fh~cy(e`c6MpEG=Z{kTPp@ylDHo@>?v_HX9?jc7 zaC>GkSg8Dcm{ve?mvq@pw78^ay(*LRBG`^yisKCw6D1JfyJ~ukC);zZovO!!8>9m z<$c3t`es~Wc$4Nr%`NwORiioL`yHf0p|WcoPo@f1p179I5f_o~>35-Wzm1ylduq^u-eK?f0KOFT5Yt?dzJ|nHVlE{-s!5wUGXk zpj+qafSpAlVaQe5mksSLU!EeZ2J*`ap{`P_6ocG-Eg>LFF*@{pfPPl_x730PRbTgS zFU<+pm$;8Tzb(Apt&9yBTwj5v&GnfLCLMiKUy6_;A4_`ig{ODZ)RQ58H8#mY!*Du}32|{x8AhFbrEBf(DmxqJ&d|9Re;c87*bu96!9TJYeB@Cly02jXCJWVojXt3t zuw^(7FxJTgR>iI}>K9kx4|C1Z&U#0k_68Fo&Q3yoJC_C9G1tu|l0q+jOfKvsk&7-N zibFB7Kkzve8P~+f7Tc8OWiU3@i%uC+ns?k7PV&ZFO!dX2nx{RIlh9OoB$VI3J{u5n zM!Qz~Ef>e#tnwTFQ?5+&W7Gzwfs(II9N!}{K=R-kG~8a8yE8cj7(dSeKf~x@b1WF-Ft<7iYm)zrfQOM9kp9jl z3MSMP5&acSkD5>WGn!rjRTQQ@kMUPLy(r(WczRJ}f>J(M$s-CmQqljBpVa*ZE(gp~ zjW8dbUr-cAibX;W3x|V=L*3vM*I>=?zxEOx!6{f^v*0;!d($bLLKx=p>GuXAc0o}j zZ@|Ad5J7l<|Il9>h(NyM<|=AVG$ik_BHn+5)Qcb^=)sr2w-1RTGm47x!?Z;xDPZeM zU}98JWnBE9EiCoGApd#rlMCP@2MH129VJsDlhKIrMLw`uFfM|bIAl7FkZMz%txo1L z;BLHP*Q_yq!ohwwJS}%yL=p?>6|5_Z;bbf)D8|1n2IA)ZRzSvcYF($j3 zX}-7`L=b-z$2#fPW?XDN8l2dUn3)L(I2*q_JEI#~`FeG6HZv`CTs3`;jKK$7@1HiI zi=P)<9FDdE=eZZhx*S{lsndePhkMFbD!6?2Z>YF&UL72610v@=RZ3@KQ%%y^8hLLu z!2G2z4=b(!LyCuAFPpz=k6&HvO}K8kGZvZ2Vh?OFo1)r*J3esbVqW3M)tnXKRx)+; zJ_&YOZ7OR$5@y$WdwQ<%t%?A69mRmv#<@yVWPEfo1z8Mba@8AOd&kET_Q7iBGUf63 zYo`_Et2f`7UR8EIoocF6e!8YLW4M2mL`bp5WNmzH_@Q)K#hF3fWCZcmW9zr;L=k;g z7lI!7a117Cx92o1(g7D88JpR2tBv6vk?bM`uOR_9v%3_?n#InvEDHJk{m5eBYKE+pQ&5_|7@4B+CU;%@Zc8 z_$k1{>0E<%(#|^=2)ub}Wp$mnNat*h`nb@o5$j4?b{dQyVhd!pTfzEG?>Iz_saW@Whi04X^NozqO&orPQhEH6CZ9u&bL<%J zj9)0Pr<$dTDgvlSi8p`hs=8P3{(LsBFz}t$cFm{k&gygb^4rGFZBy+!1#==4v%2KM zKQ2g!=)Y63(jP1Eu%Z#0>2jBbbcAn_H^mq}GnW$Tzg=35YY~=kN5bKD>2&Z+-)*Wg zN{5o6nC~_~ydJ;Q&1^|+drzR@I+w*B>$S^wnBr~T;PNAIXh@NZt#nGw8M>CkbpIQI zEA%XcEbS~bn&@hHvwWZIhd(ZRTf<8$Og+ZaenT6Am-=!}^sr*?Z3~YQIdT5ej<)g6+A0I@_-!yE2wvuiomklO#?E`O``u}A zgPr&n6E7a%W-GnkZ1>3U2Db@U$s^9*+a^)vcz?fr6M{u4aH4vrP{NQO5?Nm^P-E9KGIu=fG81`YsZy{q=r|pN1@H=&HHurdXUi3M1IrR!8 zdgA3TET0GCKHEkxZOX@{Z0#1&fru{9>+nG_z0sy0?7d!6@ThJIS7DEdKi1hp3zY<9S+qlYa&(bt>CMKtR*yIMtJ0}4W$y1wP z#@t;WH}M@=_B5M4h*^`JMG4k4!Sjx3XzEwP(__>t&PjfzIT<_7ZLvD}Hi-}bZloUU zb+^ATE#gz5hVp;eWv63c(I0YP(VCuc@VMP$*JRu`vR3AbfA#(%*REYHP4tbursufs z)zp|y@IebP`&j&*QTA-YNOnPeE-l%pJ{#&2^>I$yT=H@G4Qcn7RNRAWE5zuMwh3=h z4stg7!{f=p9KywE^FBQFQtw-O0QIyH`98FQ`~b7&=*cFW*ezeas|i%Ay3>tniM|~O29EAf<4oGW1??)E+5(#6!#D#<(EH z$12*H@pBQsIz=}t3@@&Zpq=f*gtqnqC3>i{DL-f$9}+a}ieA&YcvUipi}uW)!sjLd z)1W>PMmmiYc6eXV9FRT!0QJ`)zU7+sY~-AWaa3L&B(JppxC6IVPfGjL2s_XJb`oB<9{}h>RRJROvJb~KrnM5Sc4ic?7^RT%4wBLE=Y35k*7){^}c`}hl>x2 zNnnB6s$AZO_UmXAK9rqF)@lGpQ1U_r|GJ#$=e2=-*IP3@nwD4t`(QT5Z~4x(8#(lla)$J%FL{yG9&1M`(-*~5#2=A0~#9S*UM2@&g? zSy;y&s1{1$#ZIWuTKZO4^qhedJNkzVGB0DOe_@9>?gJP>eLh`+P^@w*qR zrnva}uy556p;Ul`PJQp>$;nm)^j52tXM5N8jE^&(4_v%8E=94AW`WV zBa%{D8QGjGR#%G*>L*Wfs$S4GTr%L=4-Hd`&aO|qO4~X~czYxqcW-;p*|LOls>h*x zz=2u>Pj!Ib0zVah>$A|BY2G*T!}~eyVi_#tLR!4vD0o8NYfWlKe)1bM6WKRj=o{;_ zcHfp^ToXo2gchAdPv{_0V%z|Hg^Y;%Ev?nryn_WK*9M7p z38r|eEnq2`ENA;~|0ql;Ll;;}>q38Vcl~9%N%m@4xJ-D#IkUm3-Gd+kCebfXvpS+e zMt+2}OU(#5@N93_USpwC6+k={pJNhIg;=59lx}ywK&i-?B&{)khh{6fe-c26R2wt3 zNXj{$m*@>0Xp6(mY@yat1*ja|rc{OK`h5ydH}B*)dS(nC8ogNTu@|0Pi&{*e{_cDu zLlI(}Uh7jYOjfB0P_4|y62Bgz?R36? z8$;uzgk|mkoQFulhqgS^ZtbGIOo3nepfbFXS-=!V1fRb;KL{$!sTbmzb+!nWerSQ_ zzge=vfdiE#y2?k{G69OYv!+I{Z{h>RXZHHJjLRZf(gQ)PIZGKy%03T zH%?oDkG#(=9qA!#9<5UwCVOi^hqa;#whQBReHWaf3wa74qriMXCUf^4yyczmMGW=N z$YGVWP9odZZVmLO=cyYn&}29Y>_29hn#fP48VqLl=1&rOKDl&gTymt@!q)E2sleh< zP!@1raT*!G)r&H)M3lF+dttUK@i;n2)?M7(R zH8)81tO6`7 zK0p08p#S!>A5hNEraI9Ai#g9fhYzD2Yv(MZH#TO>3Bv)QS@8|gn;TEi@IOo8B2iTY z{?p$o0sqzEM*mlbE0cSz7!y(VgC<~<5`5)*~^6Cu7MV=#1MD}{xKK- zc@Y)d;42?=_z$%>FdwQgd-6i{K-j-)d(0v}TTkA<;ej$UO6@)^LtOigBd!x6?*%xt zc1CUxBIssEC*%nc%V>=;1T#Zu$EReit`B-$yvnN53wwScY2%xa9qi?>S?o6pN9A+i zYjuNJU8E$IX*?Bdfyp!u^CHm z;FPp-)pz{3cTMNXLyiE8>*fHKdadu7W@W<{nx~~Z4<6Z;*44JzwV(|wXT3IIo+PaD z|Ln1jc(a`BS$vR)!19p~*wEVX^fuuqN%QUvg|*n+q<^kjPvIMR^qD(mbiSs?2=W6u zFIdP0p}H|j(_}`PJ2`qhPDy8Yr8?If|7cshLC0s-#Z5Snct1^ea&!#bjLJIr^dhCk zNn@OzQJ~enkHmMiBa03}R@MJ8gw+D55baT}GqaLhVUPj=QJ%h6y=Z5I3a@wTy4kH) z^K8;ni2>tA95sJ9g}H%(IG7|`Qn95TddzS_kM_M z%fn;i_T!xs0b7qwy4qvoev{3Q^Agf-b?yzzZjxzzEf?+$5|>l#HAS6fo{YCQW9!zS zj6z$!=-v!zk@Zs8PMkbFW(kU$iFNPq_}up9K4sZ{9_SFg@a3HmFskB`SU1fpFBDM^ zHyf?|z~vXd?5!-gb*i={mK5gqqX=Dhf)^C5rO!yY6_>T7ZDo^J%{z2Xa&_?L{=KKp z;i}$Eb;+M*n+YnJ%~Mc>C1OsEy>EQ=ad8}0YiZY7<{SFe>}zYrBPN^mF$AxxriK-1 zxTY?)*8Jal0X(2=`ll{vXErg`wrJ6!({TE|3Cj^;m~oerK!=0&nOzL@u(!v#o7BId zai#M*^b6HhE$Nm?F?ZQCh@1CXi_fs!bMJ^R5b}3Ss%*rIvSv>u+4x|4^b16bN}+z3 zW9V+aJ;~%jKNUU(KX7p~i^ru)j$Xb@LO9$PW`hFwvE>Qc2PT^Anx_+Z~?>q!`TDzb`=l-ad7&6V5x62&JxZRr{W3l268i?4^QntZt{ ztsMWrYqCu>AT3AFY9K$jfnB)DDOUB(^y!^r5B7we1M+0AwKn;KkAK9A|8$LgdE$cSHL@O-AB?z){r7sA0FN)y6=`yEMI zrF_uf;nt6jX?*z$B4Fbuzo@2L$l;1xl#26ten)tkzr!`SCBY64_ z(?76U-crp!(x`#lfFJ~|{QFKy*m>TwFG|01B6_i%q5$bUd0|jOy9({JbOW{$3?Yju zA84<3lE=bb`YN61MWbs&2I>{p2fQeR)+3s_LvM*ap zt5>AtFt|M?4@|=alb0N9((j~=e}!H{V0_;AoYllL6oshNe8{y560z6X46=pWqWlo`CJlQBj~l_+hAFxa7!Y^24&)NXWr!Yn4dK17VK?_EyTc2WnisM#;eonI3Y&gO9V)fn~p*TSLtpe4!9xS=%VWo)9Nry(y zvv*Opl0xaWdd4KBae0T5Ok)xjQ#q#3infxiXi$w#pOwH$H z|KfaiVznBUVIDwxd9iu30uUL#Iy%yT7m_sV-d7oZC`n^={;^f=yO zx0s?7X`-bJAtT^?bg%!Rr`W}1lYsyXOAWC@Ui}o7 zTI#Vr)ulom@Z*yA6VOv)s*xyp!6mkBl&S*$<=;wg!wz}OU6+ylKygI6A z%;KWamPWSIP1<)ZqASaO2)NH{3VW}Q8v9&oG7}m3FL@wPUHBCz?J0uyK$Ogw*KjD#EyOIza?%uW zD{#Z!0YGQ)F?FIUd5*ZR&5w2Lj}Xf!_4&@}CeznY|Fy@_o@g@`2Pcf>*>U69Y#}Cv zrTt#W_ZS=-UhievDXjuy9I_hyVM8cj=S~Bcdl0Vo5aFPvApnoB6^J34lVr-NmL-#k zAOL0?o=Br#eqrvV~5i#$!YI>RhZ5bWIQxv7udt@%#Wx|5}qCE~a72>b}%eaP6u z;}GAKq7hl9!`@!R-Dg_*$p7%9Ik4fB9-!TbvJfaTTOAm=ZM=N1;)^FP#%%{tlY08s zm>fWB38hst(}3sGETTqh>09=*>xSyxc}5*>gl>fc=_Bxuw3*dz8Bs~i(r2mPx_3EE zt0RJsFbfBsMfrV^bD~t~YoW<3FLA?Us7^k~Z-G!=>W1hSJSi~ZM4Zh^7T)!ByZ6!9 zo9jNTqbM=GW1twigf9}Vu<4rxsgRa>FfIZ_S8P8n#|yB_s@x>R4Z~ncP^^6j9VJ`Z zl>H*F67qoiGvu}{WgMqf21Np7J-nDI9n)Oh?Yvy(%cB(q-kk9Sj7v@hzm%PUxPv}y z5!-uK33`p~$xj0oGVmT%ybMRx&UDB;`>|nlSFztH&>kWMMt}?*U!WDrM_TA(v~a%z zqRycx>JYV)$o2U5^A{Wq4Q`~uQ=rCzYct@)wH7^hbw$6#2o7^7CUQQ66J2?8oA7OY z=gZy~y319fwnf}p{1APx_|eC#_PPdj9lh($GU8lLYaQ_pT=ve5j-=|4@AE(MB!qT8 zL>(P}GL3)9ePh-K!}qpzhYAifS`jh^q^IXaE>sp`(xOKoQ+m$JZEmP{o-GhCG_o^Vw6K7sfH>n#yp$!*z zH%IN~v39kwoNsr?HFQ?zMgvrH&JtGM>wQ;I;UXl&8SU&ZJ3H~OPe}-;t;c_ZFbwsk zCVbHpBQAyYWopy;B^ksTJ^N)Nld@`#DD^lORN(crVB4mEGvywm;0&f2DhDo9f&n^7 zogu7@qo1#iDcT?-yFi@e`0|znkUnSAP|HIicWj6wtFlBI{H^6WMvh$+$*cPh9T))y z(%=NPP+k?1*#s=pV{dLvoaQNKIULn}PB|?YiTu-zovGJ*II?DFuiph}tIWh+XTiAn zG(FeNgUOt6c zvQ;u9E^k(20kSyCuE)TzWKYOoh+8lp-@K?%2_hOS>pNyj$wivOy$D>1|}#T{Bty zNbNlJbH``bSJu;sg7Aosy_G<>*}U*{blqo7W7NnQM8w=^MbN5&&=jOr>FjQr(nr4|F$k&d0%ek^a!Pnuu%uc zmnSAWk0xGel?J24N?$AXDR!_*U`e-}hv%{R=lSf|HQOP)nQx&%*f&t>%)&^Md)gW zs=7j43T?Lcu<}EM9q8%-*(2&{-WLjv;aj6$=u!orwsI)iXwbU7-!e|GmtC7B)G_x7 zdG*uUrf1)Mp?g=ab^RfnbM?%f!!>T{lfQq7ZI4l(o%9Et=MN;Md^qlZh8W(pa&)N2 z!z&24h9ZniLj8|UjaRb!z1srn!rru=?e(*d=#N!L!*-{ZXp8T0U9S1#$Tu_u;2ge& z?TQ|$lxLj1TWA(tKA+T6Za6$CeO2Q!&0G9P@rT95J42@H3zYlJHucg3-Dq#-pGVRw zo#;O-P*!sj752@8?d(#J16LeAl9it^n<@ya1?|csneckTGJ3{2n}ms-usEI+ldpP8 zQS-hCNoDM<$=H(ps-kIh>zw||e8)5BaRYUrl?wWvtAd&_HAnl2Ez?5ZTm~ZTS+kF0 zBf0yG9>fO2sb}p|)%*ygdAy>+tkb}t<_MY@_Hb1?6RpK8LvQ?XK0r>N$h{wW6ecjf zv$wsoEjDXGAyYh*`q*O6Gw=hC;Se+$&6RMNnf3EI-nJx7X=h@H(^1g))~Bz`VE}qy z*!Ht-&DoBQ!g(o1ukl-`6jvYQ9MqTKu5;^zE7X{djqYV`OhaS^8_Csplu7;M_uX1> zsIab*wd5$;?=cbahyax{=rjbV;UlQ67uX7Ep_`HpZr?B++yJ*R%i}k}SbU6pTkocg zuk@>@4-FdEMvkVA^{WG*U+ij(X1rk*o*n?rX_6ijP(Eld_1Q=56Zu;#6}#MwZCO6| z3qkbn!~N4|%@VZZeo9_k>*1E)#PgQ7>B3gOm!tKq*O=23-2k}Qd+2hgwJwu1d52S2 zmKnq4!+6?@d<1%q$z9ts#syBg)AJu3c1x5$IE<7Om?HOEO6*^rQd^Wv@u#X=d;hv* zvq3nAR~cnKJNi)p%6y}(?KLrn>f&|lcosj$uj%b3Z?Y0Ml;?VIUxszq$tK-#?nr;e zx1(QE#Dyn2YB&jm&wFLn^eOD{+^suuYd;JpIy2Ttrlq|TOk%9YGdj4b-(FEs^RXNWc}B#H$IhZe>bTk zz`hL#)AvWs!aupe6>~gZeAJk2Z$%|(zX$TUI1oLbMfp$wsA3d5-DcDZB=4WU>1OH3 z6C9{bOZS*s7QxL%iDJ~8Xy?kY2vX~&# z!Z?zs;{%zjl9vn?vY>FAV_@GXK_?qSrF;w}v95k{+8rPbQ?Mz4Mx2WDSZi?XbeuIMo364i}RoAQgF+pAX-85f>)qnKejUnMGqef zYHt{h$VHlgWje((xlt_fz%}3lSr)n%oSK*ej_a^PCc;}uEeq%1%UDnbPc!SG*kXqG z7XEoHEx~I!@w=6V|Flv}7VIX*2vXz+vLKLg=Q%dTEJg*`NRUVa;n1SOdgF|l*AiO} zQ|3Nz-Y6FdJ+nyv77i&u&k=_1k1FoAiEf+%4>BD;m<<$fcb33Qnw2S-UTYl`4OeCF zl)(#RrbY6A=(9fSBvNaW@Ag77J{O|5Y?KtLNdb-OZRuk>EkdrWNzh>DS=6<(O>>lPRBV? zIVo{gG+LfgcT8bp$zNal*8T#O8=wVBtZ-)LDfh`nhy%IAQQ_xDy9f3a&#l9QmY(0aCK(e3@q+Te4 z`Zt54HUjaG1;w}?hls-x=_bS$kD2p2iGW`<2h3n}4D9a=EWzkGZZhE8g-GRqy21HJ zH)735k1_Sz2Pu2WU?a;cq|6%2FBK_Xgzbb+E|LQh??6=QfW_d7&!tRyn?s~v?MSs13T#Xr1Mk~4m zJ*kL`6a*JAO8{8<=M~*#P{lI?8F*Phq8kv4epX~|{pBc;e)4S~gToKKmb{HqHyJYV z{+hp>m=Ng0l79OzwlZ|K5&--|ci3SSu>|FTAQ86^g7hRmE1Cbe$5$<=`f#F($G>!w z`E%&})QuQU)gEZ*gE?48%C{)Feh3vYhb0LDY$P0XNB^nrzq*a=^%G>T0pw^rmheNU=vOLY2v@k2OP>IhIAX? zO^hlA*54jT(Jc_uOB9}s%N`lG5d!~j5`!B5x{lx70*M>gMEa}#x{~}brc;n*4!m;A zfk?m530^s7R`FkzKd)Rf>NMZe6EUmSTrxH!0MPtlhnYwR{^*wjXTB~Dnk86%I&knV z1$QHm2!sR>YJOJ!4GFUs>LQ>k141J~?}#eN}(YPL94#OysDTOM{{=I0GfzRryj2}^H_$&SvaHa8HvzmjKH$~tM;GtM z_Of(zsKJqQ;LHCXppXQDLcA_6IT8!Q#{lG=$}cdS{rgVkzuu_0|8=AC)9w6ehmZd0 z_Wy5~0cq#|3(nBkuL#jQEb6r=fIx$?{?BOnzr-0@5NEVO-w6NPH==gJTu#Be2oR{W z;7DY70s@s*Jj1Wbzkn(beD^N_%zrkC4urlZzoCy|9F<`VS&-1z53(IvVm|^U_Qx~) zs{C8x?cWlGKw9$WU$q{`D&J9}?wOu>pe~Z-mX#gv>=Xn&hk}Wna#mkePO|u5PZJu1 zw0ak}udH^p1)J(fHQbD?J}*3dFFe92nU?;6;G=FviDIQZY(nF$fmF6Z)kz0_k~ zPn)aXk0wb;1`RpVi4S^qZ_4|Rs=E?E*6nTlA%Nofu~M5@%27p=mHt_Zb3oGgQu%n1 zAt#OeI<&yh459z1xZrs_{^7{GcA=vMeW zDIVIiubRAK2qGu~~PN2S82gBu@lYi%F+$+5~U9ezQ) zX#@^^zYw{}++8`{5FM&ysqwV)#?V#{PW*>2*aR`}4gV^RM1hL0M-%OuR47VA~z$4@U<- zLA$BmN;P^dbP`KX(>4)rt$zq6ZS!n3K$QSG6b*t#JWTC-s-{cDWj;SO*bv|Np196% zyVmsC`u)nL@x+ryJd493r{`t5;{D|V4<&XnrPv01T%l?&b6g|tVUC_~og7%!=yg+l zv1xfr7+tbmer>j?sSigQdj8UEE274IcD=vFw_5k`#*NqKsHv8aN7KC?zHdA&N! zfjHJy5(y#2B433o+56{g%Y$AMzWb!Qi)b_B{!ytD6PNZTy%NuL7N15zhl#!qjV;pZ zM%62Mk?Abfs4@yE#=NhxF|4p-?JjqhGG!$&l@WxfhHl>tZAK@ za)P(DsJ>V~EOZ`g({pj`xsmq@r%9Of4uD9TVsEK6+jgz8lbU#iW1$jS{9QJMHpSFN zHFUI7Lyq5Hp1^=Vz32PfH^(oh(CBv+r!f`AOlP&l@0S~WbG$X^_bBC_C>So&>av2`Y0+;~ zW#l34rT$W7IS}4%wHq&LzUF9ui#?~v`(4pRX~x{)K0&p`>XaF9zKEI1^-**VRa&HU zhi61)?bB;wowd{Hp-Q;7SH`EMk-DaFs*^{$YrZ!<8yvCK9qDyO)6?gqZhCGKpA&dj z-4()oPJ7qvY(dHsQvNzYXY}QeXBkc_(dm%B?Uc0TTCxc|MAtxqW&xER8}InF3F>*# zEr?AC!co0Vybpf?NDQ2z;*L6lS=l>vUB0}Q@hS1RcUpH8y}PROL5j}k(>32IqU52m z+@i?#SD%XF(~gHAMmJ-VKe4@6DsfOWte8uIo7xNb*XThVn1#Jm+qUnvoycaeKK}?> zUfYSPE7~Z%gQ172bdgC<0mN_8!Pyhs#g?0ip6?U1y&**j^c6Y+<=ngD@Ab}AxdMj4 z-!kkQkymXqfE&g|?X^lPYJ|_ml{kF$4s{kn@3Cf&Z%SD;aiq~nzdx($yQkr7p zOIC|YAcPGvQcn3oXAx4C5XXAY*O);)+HwF}qvmG$IFylRF8wLw=H$_h$+fY*ca)L| z_uKl0x9-)ruNdvcH?&tP3FKEFY zB0t4n>TUH`>K7~i!VPb5J}7_etR{Ntzk&X7Y8>!HQCiZrsGA^K9IL-2F`-iD7iZIR z@MY3WVVC{jbIkN4W1~q&We-bM2StX!;io#Gi>#UlCFS2uStB^$Qi3;Q{irK?g9sO%5Y z95=EW?QnM`E2s;Vw(9hDMzwx}d=!0KJsyg&k}P5$o8yGoKlE6*zR=`6kqPndzSYw! z2=qg?cTwLuMXe@JX48&{R1^40c)l^J5^*Xzet+v|DKf3=bVkk^*7s$OtPX*>xBhh| z{h8XT1-?dN4;#IF8T~f~Aw{x%g|jURm5<=RxNS#4hoA|Ihh8JhioP&ntth=z)*sUY zCGE9#T2cE!I`0ba&)wI#G4QRt7^)GI0bx-WdxxKih+&G$ogd$QZUzrADurjyQZ@x2>C6UFTV&tT0E`WHoP^S| zFN~g9*0@0O8H!}vN);d(i%$_xTWgqxZj>IEY9H5RiCA0Nxb;lV72-|7D(BWg4Ho1TYhx2`hVwar_#_bm;kO)QP#5{`eXS%*kNsT|8^VUA^B1G3 z52|V*?a3$IhkE#fY@@3VdiVm5n@vGKQD$m${yfS@#M!$1&h~C2{g#N{^f*+^-SqkP zW&2)GvNE1i{r9@c{GO3d3va$d3xU>z&_wdRWLJ`^msGA7pF0*2E4@eeq#Nllm`8+_ z(Z9W>Dyn#Xex6(S_J`CuK}<+mMb_8>rL_}I_U_3tM;P;Q^Li( znn?v=%M?O)EMI*zilQ!+w!ifCOcsy*)Q;Vt3XA@7__>2NeRP%bl-0!ZC7s}@%~3*e ziFrdF%eu6Hn$Q!2=MN4?9*I~(msl!z9=wjGx|djLwO?{_&g4q`;!3Uu`?2v={u>1w zu_C7~{o`+@Tbz@R`N~nD;~#xc0jp)#=6%QI6NBXJ4{k4& z`O_+bTrqVQ(!@UHhiL}hkni6;Q>#!f4oER)FMlI7Db$dqTU%-%acIoj5>*^=djnR; zf+93lRg$H0#3uak?Zeht46UM+?1!;fT?ZXN0hUay)J6djN*AO-e~&^d05H`>*J6wa zlsRdX1>dO?K76+4DYI^=Ay31X$?Yp;b7>2Y_GoUVcI#+LVIrK5-( z98|KS&q~smWXP|Ahkz0j2J+0&ddUF3(~Vx;QRv}n7Q4w%s;}wZ!=U{IDU*P1UhD#l zMFHkM>}m%>Uncy{Tmi&D5cC_YHR~4f;^68H=BD8Mr_6w@?w*Vk0~*?{AJ*;{H73f= z-1bXD=2(FBoqe%4rm4jxwR|>~4@w4vN*N2t{N$SJ55{}2&Gm?2B3FvZYUj<4& zJ~Nu8xm~~j@O@n?dBPNEr`Wx#3*U8DCxn-=+Mh668j+TNyf1d^-F&C(q#JdS#LzpZ zc1x>epB~nr*a;Ywsq*9aI-;N}UJ=xDI_oZBtSftEwOY~J{Q|7)%r(BDcN14w8i3NXx zIF9T&uL$FOd6DR}zc-WD!Hl+M$ESArgW-V_MEFXRfmHS9i}B`t&V_fm_;>3f%kz@D zmzPS`fg64(lx5=2tIC_R!kim7mfsKFSs!|1YD1qi|B;+1kjeLcHTHKCo_JMT8?SA$ zlR1N+5(T_q;bSt+qO24)N}(U+PrnKm_jvTkW*-}eH zrCX2&>F!1vK>d8y9@VXTJniQ6x>rSMx!y#Xlc6%+h}Ggr zRC<7&`)YTsU`MEL?AU5RW!^A(6r1@l338DUS3aOIEI#i>KMtotT__kS-j2J~&PlGU9~us%Jp#M$Ybf{&Ct(3r_nuW!`g)w-go-h`02eFOBPGFmL1~8lY~9%Pn-_(E z=(Xa=y6Uax#flx<&C|*@ldzRXx=N5L=RzI_-MM>@biWjAkQ8_5Ry0{}7_i+6&*^48 zNy)9>wyrSATQ(3f8=Y=^-^6oMCew_pah5A)SQS71-Nmk&J1qvKN|^FQYHCSg-n2@b zltH(u6@c`_4K#$LP4;Ngq;m?7*2%al7eu$rGds zq}xH}y|2_~=W1J_#Xi_qJJ=8kCo?>+>VCBnAd>fbBqbn`+u~`Afxxcu3976OtoS zCEz{75{}HlKvnU}`m;;c8$m9-fcc(gG3IqTq4g{l_|G&m&Syz8U!!f9CZEvWR~dHV zDsLy+{iR2fcZY&>eBqah1rB03Y=ipv(x4# z<(298U+vg-#%F&`;PLRKVWx3-g`sO;2t|00$_49wl51R#qzWP{KP&U_qv8Hf7SdA% z*|Sqg!>P71oKdI4llVEaXqDyLSpj!a)R`~md4~kAJSj$fXO)ASDL&28TSDIfQ}3dA zhIe02iKuxcp_2KEJgG;qgo^J->%4b;@2a9qGi*S+v&&m))h08gXr>kG$~M|x7KsJ# zEL*q@)Jt#ePameAZrKW6*}R{cmfo?+bcM~aT6~99%?kqB)6G65$ZJHhr0))?2(56k zBzb?zWPy!8YFjJswXq#C3{bq8(m5TH@axa}a9#Z5?)cEUyS>n2UXN_>k2zY$y?eDW zCRT_|2(Ej6v%!tWNrUTAb3*A*to0NYR%$lt0nq0k1=3B03vL}UKfnp%ovWOsm{2O; zbMDV1#!ML$Aq_$K8q-wwJ|pUfhQr{Qc~raAsPBZ~v-8lL`zdBpz=IJfq~7=v_2Q>E zeT02$quiP2Jc)LRXeCf3ZeVHKGm+A8_Ff;Dml))fa&Or-_^GT6j}noM0#ag<15tdG zPm#zv4GKp*RK5ztnI^BNh6Yj3)!;_xtw*i!rH^Ee1bD*DeLt)gp!H+xaW^}=%JhwY zIcK>vA5M3Q8!+bwTD-Vf?)QK6cA;rA?XPY*C*V(GF~~V55SXW46H0gCwqErPO}2Y~ z)P$sxoEX$BKLao2|Eevf(Xg$yK5R?{BSwfu-hf#vm^+b3(uK$ zR8LY^axjMKwi#@tX?7emTaA#oG$gnUxzjX8-mYp{G*#P;chu&dr`4D@0TgSOREYzn zk#sM_%+9wlXCF4my_)zce#B^~52>cY#{{a<&!xHtb=x8?!p&PK(%ju%6qXH4M_(qaCzP0F?%}K0mpuwVsb=PhHFxK^ z+JDZ?SF810FK(!(zo_^;#a^^W6i9q?oxH+Dg3M2e*&cB8*l@N}t@Hd7zq}83CwPWf zvEPwKHx4VpL`0Bee=r&{b9}--$&fv=aY{Ox{9Fu4(bqpJyw`6wDHl_c_7f^|Suf)4 zMOVPd(K$82_4Boy8y_(B@pYaf3(Uh8X1(BCBmLnWkgO{C>~HLWpT^9e*7L<{a`J@7 z5Pc0K@8gL99nq{sxV@ngCH}O-v2cte@a=253*Ke!A69jLfcV&Z4M`)!Cjkab$eXse zFB0tnk3dpA++Jfz8$$Jin!D2_tDbMl1`U8$9*NkC!VoLs*d*7FExu)b)_YDNFi*1< z^Jm2C(fZfQunb*Yefr$~2)Hw74DpvS+0JB2zaxZS#t^2gOhRYig8l{+=4|ZdqV-%Q^W^#7^EZbaIHgI1@32dF9r5PHulwlJ(34 z;gmn$sKh_v6ICKxB8=`w1>DVr3*L{m_D#&j$FH98r-5|;;@f{nj0vRdi;`ku_tX2h z&}2#UtF}vQf_N<+x_SZVY_P?tRHTL@3s5o`eSx`Okl(Xy(cHfc;Fv!h_ zU))^eToYRGMo9)#35th*Ffg}!YRi8E zHOELIG6$*DgM5}48ZZh4PyAFk68dq4#ScuVH{)VXEa&;R0%)eW{^m{Qq91c{`-+FJ z{_s`kkH|THxwK}WNLIZ786o-KP=XnljQt-qD17xY_piw5A6=4Uo|FCMtoGk90cidU zPFVgYPJVJi>mN=O|3Oz6NVI>0q%Ya-^%3hYkgz&7$@~P#MDMTW@GrV1{iG}Kldr!z z!mmX9zvu|R8iJF~FU0*Bx94Dcf&bNBXpH-@Th8HrwHG)6F{-s{5Wj41de48p_}ARL zE>FXS`+w2Zn=N^u?5{pB4*5)lPeen#2DZKbed&h`k>KB_{J*L85Cl^E2f*)={{N|> zOZ}|qFp}sW1^k~?^vAzT`k%1=ST(={~=ZX*G$#@lc@kmRc>MawBxbx zFk}I--?v+`N5R)7InCOFL!P`OKfLq)M}H{z-5)v<#e_D)A`UuB*ZOQ}iM3zo#n7#= zQ;6O${lL(l9;~Sv<6w@w>oM5x+DPtCS=B%cSanBYe>!>q7F6q+ZNM^2|KRh7|!W%HzDHNWFsuDiCF#a&Kjgd6z*_m}rKsVS7^~ zrDncG57&;Z^w>>Nm1ytS_n3l4qinU1&qpS$>ynW#y~y?bQ{M5#QB<2?C%k)&r1gBr zrIR&;;v>u6_fbLblC5H(@8L_am_k)ULREtv)!u=5KFXbt^T%OB%N|FA?^7FYHowaQ z^Ks%79~&J+t&0;&ogAt@Dt(>c6vg++DQ;XW1y3pP>nDK574ftdveu(VRaqw|l)mkM zVZr*GlVIpVCW4>uXlquc(x2lqhE-Kok$)+Jmy#impzZqE!w;L}Kw>goR(0Z_Rtn>k z((V5D;`6Lss=*g$uCtfHdmXlm(<6zGlZGa#MRJFa-aD(v7o#XgLXR01C^kt&LBmhNP3?642`EVVDh2=?>NWAB&Fm;D&5$;GX^!}$EPZhJ!5xz~M zEWRbp2tWG8(M-}tN@;X$gAHEm>2d5pjhHHeWRgWZ+;`TODwOCs9sU|t#%0}jJKn;{ z!^*^#LImBIQmoE0LX_Bv&kchT#Ye~oM{NZz8$`GlHz)}crvS70falS!y7iMC_6Or;p7e(wiNba+QSZDA%&vURp6PJ#t2*+>=gDXs9P> zz-&mP;C>F1uJS>_RqDFV{zw%sxO@FjykrIu49yPZ7ocayo8R0&cwaW_XK;)oeCE45 zeVC7qFP}M+dzMmpz6=%ZFEn{Gk!#7sN?xtAhiC4&CgqO3@wEOvxjU-ey>V+VYT-A0 zhuY~D;Yz$BZy?j>?t`%uUr2f2m@{S$4;so$B7y~cIUUhfXI=}OPC$b`&ybd>0^@Ie zgJV+x`{##6OpSUtM?8(VPF0&J{sMdL$#Tc}v+uB8su07Bzl`|cC8gR*<~8FbJ**bZRz1CQ zal&Vf3*?0fuB18bWUrJ1{2^I=z8q_~jg|nI;CLq@gy=u1A>uBC)5Euyh<5YO}au_lQ;Jn^~7&Zgmr`_qg=zBg#|7 zd4ma8yonexiyeyb0#|y$DV68JB2~(sZ;htWJguo>Fj1O>#^RLi<-y2UDOJ_L1Ho;K zAo$hnHz|@gBYX%y$J86mj_mml*+GUsq0LGV3b(OyNzYuwe)U1CLgW==Nw$dZDx%al z4b_NTho#`_Cr-(;Zxu;jD;7pc5?B^A-4^PNY=|wXV=0OHtzU(1dGPa>#~85MyP_md zt`0)$4mT(X`W^2NX3a*^qmlrECwhl3&{nY*KOOInnO<+avYlj2o*e=w&pK5BJq^sn z{03>AC{jD!y<3c)6=0HOvHeE^Q|&SvMVFHDRLR%{6E`YTvI~l6B@~BSV8yli$d~O5 z*Dn!GXvCOI#H>&wEcn($ueXyF%-I#iD0rcRSGw<(PN38J9Uthb3GE7p<*5DlOi}pZ6{mqVQMkevf%@VLy^? zD!5u6pB}^pggxq8W7glP6>YV-*&cxe1cs)-kB;H0<#5Qgzh(>vWOi2411v(h8ugo& zl=i?6;lgZBc+N>&_M>d(m`l>Nl`kgFFVWB=;Fa?+WRLM805QVgo z#ZXF^i@O$E`kn6s3AJdhlmPVzZxb1>jx$CF8@eO-G10lpM#ia^dp}SC;puQ`ztdV1?u3S6-Su*A z=P!zpL+H;O6NwKX!tN@m17ZF{O{@|^Qvpbd7_8^k9RcGBIhU>X-sV93GN;3PX-p|F z49cwWt}$rzgHIEEa{`*soXIbk2DNOv5{4U7PmQ`_sjt27`&4e6tgrK@uR#0T3tY3Z z6KA;|Sl_)1@I33W>K}0L^SGC!yQUo@T7In=dYEy%VXnc-G?8HcV#A?8A#$U*Xvnd9 z>4pAm?3!aujmvl@YoLuyoH%ef4#vcgw#o0Q?gQq!yUHU8tolXv^JO#a)bu zS=hY!TkLK_?w)!EDmv8iaj2fsrppt`J>7BiYiy({&be#Vj(8M%_mMWv3)SVa&87&w zxhzZ{dan^y@>kJ$6K_Sl2v^Kp4e@Y!JSzL{xre|xvJnH@$AmP>4i%Q%^YDXy3#pXq4Wpeo<+o_9^-gCGW&qSx=Q^@ z>cqTf3urJi8YZ+9Rr{!%mPqWu(&K{pIdiROCH2R%q{kS8ZL9u-IIcGYVRo+lhSv3Y z3ZbZBMJ>TTeyRzFdRS0R{Leo)>XHxd%%f%Gk^*kWY5}T#VTpc6mr956bB7(rB)WPV zZ6dj5u}mFfD}2?v=mSXe_z51-u3g|>C2Vf%8XU=2-A0hRdgf&Em(HkX_2 z0ygRdw-s^Xi)-@IE3g@G3f#ZZV zru7#6!-`8nf((N0H)_!Y?M=A z6s7Kf-g>*_*kJO$`rtN|pqEc5jOVTyAD@FUi8-V?+C_N`yCV4G08l^TvR;y5RAd=jnlwKRkhvB=% zw)I{Y<#XupmP3k3$8{`e+K3Ob!T*%iuy8gv=JlNB_H;%P^(ILfSh26g%pS_>VYE0# z%Rsg`el3MLysmy<9w2Gl;ubXAXv-bSayZekIQFOQ-H1w^JRCGio1BiOABA90I@e!! zW@zYW2K+Z}eVxEe@CzfJL-i8HIxyoKb?mY6D{4fHWX^_a-VzeE<*#31=hTCxdiw_UCLrvi~C-5JihgN96c-J zEM!3j5KrW``4S6yuVp2wc`DK89(&`Z+!1pQJcu>76Ok6wsF-Y&`VmZtWc1dWwlO2P z^YpoE+wh_qz+-pPXEpB8MV)u7Ek&~)y`sJ$z)kV0FZ*M7N1}~4JVcP}W^N|pY~$EV z#tCy}sp?2kE#vmu^&Aw}*y^Jrb?7lPyg3dAM&=7#y`TbKZp8ABZbf%Jly^Nslb`N% zeMM`sqj&l=^mBp8tNqskQI%DL>&CxVh{F0t^6L1m<9w?RpjN_a+)XE~!+ZTM`cs)# zHJ(=m^EQSv9SA=4SF6k5YGprW6A=E<(ZbbY7=>>m$5{9T2<=&)wC}Wz=WA{L{?y3H zXWYTKFQ~pQ#;_pyxwcEulF7pEMXt|DQ$6C`hee^O@S_!PX|)|)I3=!+yF5f*L$Wh3 zk%uaZP2V0fKlU3c^ek^*?}=ldm87K4LAe;4Ug9T+a5`UOW^Df;IB=*e^(2NfM4ddP ziaUcp!r$YKEO~9Umtt*}uZu}a>}bvSVqN$EN|m!s<@koLrTZAfiw&Ove>1752CV|+ zI3c=}YXtfD+?$T(ha#kg4WCic4ZC{Ixwwt$slYB1nNv42`$+KyLv{zF@{Tg8qoUJo zr=(nwtp@g8WrrNIZ=WKu7&Ii zp>RU{*zx%xnT&Y!5b;G^X#yUu|EA{yc_9K`nqGk`agT@Vf5`br82%;aL&U@NU*&wb zAg@sfI3W8vxKi*uToAZr%-`o0@Nn_})Yk!pVKTZA?n4H-@n7Qpr+g1L#9<1B0kW`! zmk(j)#lMTd0ou^v#b<)F*b@*!VtDZ%KuV7AaUh=j_-GJrUVK8xbv_0*xLnKy$uPiX zW8mcB{w;m;ryLIV?*kY9mc!wOEW+V2f>RNn!zqTeXwfmmeLz8hw8SD{LvS{55s7)Y zV0t*q^{`AM#lrrCztxn$MN> zbtq^z;HL!WK}E#MNlY)E=gW#DEn3DCkC+M3jB~#VYDj8VuH?@8VBbr(MI=^!-NIEn zrM*Qy;7UNP+3(uN(Eqd~0MN3?yiaNB-1jPlM4-3AMQYR50x`Lj8?E2HIe*H$d?cUg z2EgayTa7cAnA*}-! z$Eh)QAorK)=Wm}|ijE`uf48`&ycmX7M(f%mE#LXADwM+(Y5C3tN>5N$h+zxr>zmdK z<0XNg!5Y)#KA>e!9_Fn*0&fTTs*9{|ulMSht&5Tc?vyuT%S1%Ws5;E0 zWNp8w%TTJ+=9Jz>9sVU`VTXo@Lu5wWR+EKn@~sGaW;6o*nDc?h>o1;}dU8xkMT@6> zYJDFqhrSYJ`j=n0e{AQ@KwEz~>8|)B6p?jNkn@dV8CFWmj|ir8>;#~Fd1O?k^Pb;3 zUOlC-N7@>nRZDoj%msdLoyj98XN=LzwM#2z1XI`)Kg%XRlb8ExLqr1!XxlcQ7jbs+0 zGL{sU&ZZN_wde2Yq^%(H^l4J#Fme)=S$}U<+s1o3;Xd%?ruD6+5fBh&O{?vqJcHFD ztrv{6FnT>g30Pci8Zj!l(;{ zn3N*uenfV`34VcG#AYc?)*>P}ukPA+x400@&E49qXgy{`vfz}ti;O29(5M#MdiMNN zwh>cH0QK7&I;RJ(tjK@|w7d)gc+1IciISfbBW}?NiD+ph9@my_Kh?gwi$@m3IiZVV zM{FBvuwYV#IK2~ym6{->&~;P34M*tpqT@qTA(NGjAkDO_TuxqTc2UoXRpQ&H%SqnV z2%^n9(3`%yz6ac?F-sYBagJZ(CT+Bzs4LNm?VBV%p=(yB_`b3U08cnNEasmM`&zRE zo(2TJpqdp|MrqTO=-KmLdS}6He1vk<8GFZLgIVilHr?#>LE8yM^swZ0ezp``U3>bgF z5L5Yhx9f|b=7Zi04}fvfm{MG*whi4!NLau&C_rTjsUp{9m_|*pEJrS#eZ;Li=Nq|# zCf$xUN>AKS2Tt{o@n08Fhp$)A|YZ@BcCFp zH+uJ#J^B5)M-^z@j^DQ>-+!dx0Hw z$F=rnFN5difvAe%6F@TZ2_+y=?D+IxxmJHn3{#@x`AgaDPbE4Y$l}di2RyI?{1z?y zTVV}Ug>y$@sJ<4*H-`ho*c>znVDe-V!(bP(=fZyl{*G%)zzB&HMri;$2@hl+=N=yT z$Ja90Kikv`uoM331Akb|Fv6yXu+O3NVS(@Xs}pj7NB0!TfZZxx2A>#mAcIf&t8dZE zf_)1|7M}>7mmR_+i_Zr!5yStb-^Reh`&(h|&xXbO`vd=OSiE3o{EEYXz{AT0abUPx z@z=H~b?`eQA|4(Nus4A}{%%%0uAMGF?=T)1H<0D5e8oxvscTr#0 zMRkb#f|{}1+!%E|AmIFkG3n-$%6w`jRUql6To=>^{6@iISTDpr1QOmnzZ9OifBm@b z#<6Pa3GmK&WVNkX@AK|bcoTN>%1umFqhr?Y{8E^CU{J93vu{XZSoD;) zTd#ITB5ys_zju#p907K#j}Z0tPlR@r$rdS_L5Z~MtVM)d*@DPs;p?+XH#eV)6}FED z@Bk6uTPs~1srBSZs_*&8M%o3##Y&oL^VJSxG7vB%)ewFXbdNRYo)^LMd^1{EOxhdk zZEek|PJCJtRt~9mqC#7#R#bXS>YkeQ6$cw0-ul!gmN66+v3aG+ZdJLIj|Qf^Nfc&k zNzv(S^q5K=HH#|LKYjH$zp||PzGPMQ+Obb7hPo2B5>x@pCRgai4|UzJtUE>6c#@PL zGY(8(HYc7%@es`xcG;Sf&Ile_4fhRLhkJG=uIZQ`J*XUdb&()EAg6@T0DPtIb(`zP zCfI#7c+*-OG$kG+ysGC@iC^Wrau5(<)Bq3&AA}1VD}VlC)41@C`P(Ved}||NHP0?e z&3E^PZ_98L?*|PAm&cl}hT8&nS|o%0kO~3WlEJJcy#4xEy;9BD&TYI*ii$65 zyyYGJv`m_VQa>t4hkukTiZVVmte;x@;XSO`#*$OTOzTdH`(%7TPshh*U6#2o(O0RD zb2A1#Pt__7|03)>^CAj^MGD_AU1OD_>qqGa`i((GN)6KKv2{-2;qr0`z0+;HiF#%L zf#js%*nanO9oh}cStm)_p5t4*u{@2*WxC$SmIyfdqwh9p;+~Io7zcQ~{o29q$&;Y3 z^by6zvQ-5+z)(S<#}i>EHuDlX>P2X)2nG4{o>T84ROdeH z>n90j7&B7#qzhHwI0%b)=B8_GYnlt!0|T`KFW1{Tu;)Ia8w8rQ41D@}F}Rs!RRZ;& zeMXh>lm>m=D6pAz1_k;Rf5@aS+2nyx@w;(m_IXLyT#f;b%on^PInj^w%%X~Woq$+{ zZwdqn!tNARnW<|Jt4r33QaP9Faw0Ufh{oAI(MTn#eYh8^-;yTh|EiygDm-HQa@C$Z zfx!5J|A`p3Xo3MlZFT6toU^2>%9(-dH*`|};gK7sYndgI9~Vdld*6^IuDm+@w+(&W zTQUw44ln%uX!!;lbgIVZnq zdP!cTzZW<*5{KSPI3ia_ili<#Uq7*CA}*t4D)Nd5WS5w66zFrU7dy)t*SEjk3oej2W}JH_W}VkU7aP$ zAT>sM@L!W)@Xspqa&X-7+z}T!^zyASYIu_$EcRv@zQ#3nl)aiY_gA-5Q#GN=SO~F; zck7pG*zYFMOx2syt@cx0Lgul_M0+$5Ltw&XSXt{ZrmQ7<2APYML+nU|n(E}2u8Pi- z5t)QJ(if@@7fo~Y-c&S-0hqVD7teA@-|Ph#DdnSmQ9G{jh@)UHYj>%Ho${U^tS7>v zshW;IZ$j!^m%8m^Wz8es7Wnc3>PAQmG8RcqAaVd&^&E%0MTk!d`mXI+Nnn+NwxX+# zID>}(#G3UBT><+e^!0u3r``ICiek;U2jNUsKU_@G3Xb#b)04lV1fOSh zvArZn(>eK67&2Ci;u@4yt)K>n5N>o)j;Ab~x_AL!>+3~NBt(p1`wVSV$-1R%I4WlL z%}Qhp6e6s_N}Rj=`-f_W$o4IpN%mB%$GCn7uv5O_E*)L{7F$;BTULpy`?ze=9>d{m zD^9!ybzb6&T&X93FIW@3u#rBNv;aO34?eZOa70Fls5=3Nz74*uP8}DMlG&xET z9t<2v><5zXgX#*Pg27)iZhQTVAHV^XE2NOHV28Y;z?UO@m9tV%g+%LkNrXzH`LPp# zZp0T=fd@W65y|p1Xn_Uc&bD~xc8hyP6V4m&_Qwd~&x}T`Fp03($$7^)J3I#ebeOQf)I0D&efcpiw6_5K^F}1BuyJN8qbTFV zWkQKNLQ$l5%HXpMtp0KQ4FZSW>>C7DGiW0cSv(`?eAFM#`}c3(L5+q9+JMd@x>7wI zV4y-XKcVBN;u4A)l#X>y-4397P2P!lN9VPAF^>^HXt*el2&>`?+*k{M<<4ZE{>)X1 z--rknPY#iU|5@T*$aFMFhV0^zk`C& z0#^ao1{Z|j%=*3IyDTNnh+pgIOjjSW6~Hs<^P>ry4mi7Mr=3`1Wtez79h6%=mM@z?=Q6 zk_;>R1q6J4oVf_{^@nY6Q&~JKS75^EQhU?Dhtt1N!-FybV+0Sj!1jzci0%%Cb}#`0 zMV1>p=RMG$MY3rr`#jN0Oq7|I3z?0rl91$=vk0lX;5HL{IpTAucXC{ln+`a?q(S(*w zx52e<-#HjcbiBzi{?4%8i{+PYUV@MZ@(Fy%{>e!ge5T(sJAVYGa)i6e(vR1=L{UL; zoEdQ`gvLRTOKos<1TXmq(NKXIFPj6(v!_NIoUH#6?l?85}a9ZJ6(;TkCtU!X{u!UoK3syjkBe&p+iWR!2zCSd%(^B;9d{~wd-ul@-nn>0X@@Bd$m2-d{w zN9731fxv|%&LKWMCO7vW`aeY^+`c6g+0_r!3X+-ZTl9nc8A^q0aomS6JtL4scelm! zQ`N=s1~*yljT#K#-~zIT$(m8`{kLpu{xe5$j=#MIc+lv|5vUkQVDcm>Fq~+Dg^uB8 zHSXRPm%Oje=~0I55ARCFH#jKH#{Flq$y3uFiJ$+9WXqor=Z%4BCgJRKB{QFry?Uq~RQ5`C`G-wbxTz$ma23F88wLJ}BA!wI;wN!Y0H zyifM4O-QCL2P~iqEr9Yopn%Cgxhb@#nlVM`Ojgj2ou$A+G(~wE`91cCjkf&M|Nc9? zJ1=MV>a-c+ChI%+a5-3oL|&t4)`X8@b{=qm8nkWcJ{@;KEivq|zaKHe$0QiyHgBo5iMB=-)fO2qt{{culBb2<~ zxpx02*RmO~iuS*`5jSft;-pd+IKm8;ZUo%jcZi2rF}>T3Vxp5u>O4o%>% zdk%B+bV8CpnP~lw;|zZ|E@1}B=gGjdt19nHzzIcxEfEI^#u~K*a(Q!V1wqwQ3AO(T z$!GlOcI61hKQWGt!u|6`tNR=h4d`SUae*pCbTECNsdwqXj4C`)QEM9$~rX8x+yy1 zxj(}+nG*13iXZ(wW~8C}O*iC-5yEel-^j z!H+BQB{(^#g$cX_AegQLhLRm5^8OHZ7TuD5NfNh;Ha|4Q*H)^vPXh(zXUHDZD{4G% zsOHXTx61xBD?_dLU}sZjJIW9%&h>;Puf(fKSY5O~Cw!bI`pP>^vH4QiV)gAEH-=>Q zcKs=}b#rFD*`aj}O9ytsPO@-xw!7HlO_!wsQIw|N9$;li=Haj60hJHhZ^TI+%Gs`O zSp4t|QxS-LLuOhjV#;2*^6E`Pz3K8S&wbs!*xt^1D>_xriCG?$bsL^7n>qa>_K@qk z=J%ugqcm^a#v8od`Ytza!8c?cK=2E`ouTccEDh{^_1fa#JK{+FOl~64$l2 zU_;Xq&rD-~0`PjS@Vd@(*y7_i)$LCAV_UZ1gH!$M?CLE(;SEq}<2)NgHjm<^)svNw z!ngG&)&1P()0dGiEeYBq>NRx%l4SYeY;#U|-=-H(E{ZVsPs>J%Jeq$>s|C<3*^2zH+}c3y36wQ>e;m?i}9h}BY98DS;yB6&F6Z|yTyAPLO& zcb?(@C|B~yPwg5=J9fPeqKBz;h-ok9(|;K67^vSHAv+_h{d|2EeT~#}>{CBHU92?Y za!K|O=WJ75G7c^1&NJ>+nMlmGkMjbyKlTMM(*~!{9L%iph&^_=&qM+TJY%ECzvGCC zPy#XzDQ~hStOSVMg4@e3(Q7xRM`A?V2j1&(y%U>**gLTo$=#iNf!SKKjJeO6cTL{> z)O5_>PSk$ZjMo&a8lv5Y^5CE(W7zck-M1@C=2EKT7Q!BHk?hDi${uvbnf4o_&+(I< z?QtPVX~(r}OZ&K+ZW#9}j|5h3g7lsfr5*z_1^r~u&HdqtEechF^)7BJ1`;;$gmENK zD-~M3(gC~Irr!__6ZdS?(kM4e7LvR|3@k;_u%XxTCJ@i0>~FT;t*XCw8#2nWDxEz` z<_KtZx;6EB|Bj8voEiJxJ8(0^(tVU~>gDeO==kb$^(0+e6lce-yGSj01xhvaDfuD+ zU#t9r%i9CFWQIk{6s&5N_jBM;b&tHJqCabrp=Q#9G<1u8O`o z4*9^UE`cdUM{p?qt{N_u_pBxoccFN45W0OxR*k*DCXU5FU+UJY^d2p>_`1bH`%5g zTUg<$iOgO!?~ojtw?`NXOMgyyw0+7`Q;{mD7-(S0M1?sg4C`E>Zk*wQush>?{;Q$K^r61L=p~M~+!s$@Z)~ z|1MyvkseQJx(1-N$Mpj-rV*&Tmx*)Bf>UU^ZpR-3+8;4n8O}2wmpjJgML>BjrCEs+ zg~S*VS-7t5Cmp<}{F)9A$TWA6ZkW9aFZyONf7v6P(rh~KxjiIwh#_`_5%FAebw2kr zce$^bwSKK=b>4#<^Ww<;Xm2uawRp1nfWY!WwP^H{#M7g!P~lN|73&-~qEZNUAP>7Cw-GLW#z0a3gO<3i&9^bTD)`HKb`w)A^;9FTE%4 zN|MLY%@tJ&_p{UrAUxXLIQjGCYKg-WPKmI4U+*v58zlu_Pr0m@*=>{rzx%cay*79% z*3+1=H5=JaR>$3jCG5Nbl?+EQWbWl&y4MwAha_u5^|- zM)~Y#P_V&{eO#L@PCwOKn0Dvb=WGX*E)2~?E&Wlf3S2E71G*z7dw?n5o1DeH5eJrT zeuEtAG^?dro5sdE+o%g($>bdN#`YjF_Xo>+zt>e%!F81%v-S{)XrF@hw2xg#4H_Ta zSHNeZ=UC9@)3UeN%<3O~IL79)5WQ0Tx@lW80#(0*Nf(~wyK%Rvou1_LK-}!NzrISf z0~+jbzi|>_>Ykt^q|V8{XT@|op>F17tSsAj()J+Qt2@V?G;Qqq`zszZ5%8EU&eccAm=srd zFwbfl5UAk18kWtuw^(r5sYHotk!Hv$p#iv5xg@;-wmr71H;#TpKjOAZF+e&nTd~B% zaHZ6%4qS8Cuym^TIDV`(ai=-5(?_t%ybQ}4ULK8m)=WC%Vq0441ilFFCOdDBW#Z>i zUcuhVHr{Lgc2+Ss&52&ZqN~OfPDIy}k(31myyl;u*F?(fEtjZ^=_mL&)VS0M2}erg zbL=X-6>!033A36(Kj6qfJ#$A#b8$ox-mulQc$gi}HpXPbEGoq?` ziyh`^5%hDt6qA<|T>pb%LNjc1+GeYi~;u8b=aHkJC z0~}n*UoG-3ZNr~m;Oc&+mfMWxPW+xHo6l2{FF>7hkL_eREpuZ2YI>kq@8*&cV%Kze z4m>hEJg84gOI%w>ya6D`^W!IC>u1S3ikfuO5VrA;Vr-z!0l1_Hy#+*D@h`7#&kj3A z_^umMFM#v&`rGx-xAp5i&022Y@lc0pw`1ftiRB*=$3Lb^x?NqnYATPonrehOuU3C- z_I5eXs!yuZ=eoWf@8+L9`_XSn7y{iqHB9+XqXoro4DY|$n@{!KDGF2(u5P+JL}DUe z-vl``#isG2)A~AGGTA}p4lfn8xSD-kn7cZ@_lA5sSVTW$Bdypkk9(yMPa$|7YH(7`{Hl$1CyM}>rEE~NLOCQhejeN^&&(}3y#Z*_}$`(oN61lGZFHNjgc0PCdIA%^4z!E zb*r&K&AUZzSdooxQ7orj)bCj$Wh{WKT75YeR@xQ$j%oZlAovwPtF-PUsrs;C)=>qm z5#LoUvUcG?VsmWwD|XJOA$ugq+lWf5Wj>eZ8%dOnTWBi!qPLzK#Ro3HnYYhyX>

UnIY39JSWoS0ugq|EW@0Rsb_(0HGD<=~EOy4>ED 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
X=JTl4c4b{#kH5ln%J?8$| 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 QO&%t;Dw=yOS{^kk?1netdgD1QMn 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%0A_4{q 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

T)^=Fo8h`Ft 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

^P@ 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�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⪻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

)pY=iLO)%Be$*Z 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%0A>*1e*EJ&FfYD{!-UGbxWtUw4%mz!$}jnY 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

`vFvv4--ctErC{ld9xdHSl(E_Pzl%Sg@XMG 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

nykt@f}n>5`5&? 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 beans ) and name an entry \"bean\" ( for (Bean bean : beans) {...} ). An entry of a table is a row (singular) and a table can contain an unbounded number of rows (plural). This and the fact that the Oracle Database uses the same concept for their tables and views lead to the decision to use the plural to name a table or a view. \u21a9 \u21a9 \u21a9","title":"Naming Conventions"},{"location":"2-naming-conventions/naming-conventions/#naming-conventions","text":"","title":"Naming Conventions"},{"location":"2-naming-conventions/naming-conventions/#general-guidelines","text":"Never use names with a leading numeric character. Always choose meaningful and specific names. Avoid using abbreviations unless the full name is excessively long. Avoid long abbreviations. Abbreviations should be shorter than 5 characters. Any abbreviations must be widely known and accepted. Create a glossary with all accepted abbreviations. Never use keywords as names. A list of keywords may be found in the dictionary view v$reserved_words . Avoid adding redundant or meaningless prefixes and suffixes to identifiers. Example: create table emp_table . Always use one spoken language (e.g. English, German, French) for all objects in your application. Always use the same names for elements with the same meaning.","title":"General Guidelines"},{"location":"2-naming-conventions/naming-conventions/#naming-conventions-for-plsql","text":"In general, the Oracle Database is not case sensitive with names. A variable named personname is equal to one named PersonName, as well as to one named PERSONNAME. Some products (e.g. TMDA by Trivadis, APEX, OWB) put each name within double quotes (\") so the Oracle Database will treat these names to be case sensitive. Using case sensitive variable names force developers to use double quotes for each reference to the variable. Our recommendation is to write all names in lowercase and to avoid double quoted identifiers. A widely used convention is to follow a {prefix}variablecontent{suffix} pattern. The following table shows a possible set of naming conventions. Identifier Prefix Suffix Example Global Variable g_ g_version Local Variable l_ l_version Cursor c_ c_employees Record r_ r_employee Array / Table t_ t_employees Object o_ o_employee Cursor Parameter p_ p_empno In Parameter in_ in_empno Out Parameter out_ out_ename In/Out Parameter io_ io_employee Record Type Definitions r_ _type r_employee_type Array/Table Type Definitions t_ _type t_employees_type Exception e_ e_employee_exists Constants co_ co_empno Subtypes _type big_string_type","title":"Naming Conventions for PL/SQL"},{"location":"2-naming-conventions/naming-conventions/#database-object-naming-conventions","text":"Never enclose object names (table names, column names, etc.) in double quotes to enforce mixed case or lower case object names in the data dictionary.","title":"Database Object Naming Conventions"},{"location":"2-naming-conventions/naming-conventions/#collection-type","text":"A collection type should include the name of the collected objects in their name. Furthermore, they should have the suffix _ct to identify it as a collection. Optionally prefixed by a project abbreviation. Examples: employees_ct orders_ct","title":"Collection Type"},{"location":"2-naming-conventions/naming-conventions/#column","text":"Singular name of what is stored in the column (unless the column data type is a collection, in this case you use plural 1 names) Add a comment to the database dictionary for every column.","title":"Column"},{"location":"2-naming-conventions/naming-conventions/#check-constraint","text":"Table name or table abbreviation followed by the column and/or role of the check constraint, a _ck and an optional number suffix. Examples: employees_salary_min_ck orders_mode_ck","title":"Check Constraint"},{"location":"2-naming-conventions/naming-conventions/#dml-instead-of-trigger","text":"Choose a naming convention that includes: either the name of the object the trigger is added to, any of the triggering events: _br_iud for Before Row on Insert, Update and Delete _io_id for Instead of Insert and Delete or the name of the object the trigger is added to, the activity done by the trigger, the suffix _trg Examples: employees_br_iud orders_audit_trg orders_journal_trg","title":"DML / Instead of Trigger"},{"location":"2-naming-conventions/naming-conventions/#foreign-key-constraint","text":"Table abbreviation followed by referenced table abbreviation followed by a _fk and an optional number suffix. Examples: empl_dept_fk sct_icmd_ic_fk1","title":"Foreign Key Constraint"},{"location":"2-naming-conventions/naming-conventions/#function","text":"Name is built from a verb followed by a noun in general. Nevertheless, it is not sensible to call a function get_... as a function always gets something. The name of the function should answer the question \u201cWhat is the outcome of the function?\u201d Optionally prefixed by a project abbreviation. Example: employee_by_id If more than one function provides the same outcome, you have to be more specific with the name.","title":"Function"},{"location":"2-naming-conventions/naming-conventions/#index","text":"Indexes serving a constraint (primary, unique or foreign key) are named accordingly. Other indexes should have the name of the table and columns (or their purpose) in their name and should also have _idx as a suffix.","title":"Index"},{"location":"2-naming-conventions/naming-conventions/#object-type","text":"The name of an object type is built by its content (singular) followed by a _ot suffix. Optionally prefixed by a project abbreviation. Example: employee_ot","title":"Object Type"},{"location":"2-naming-conventions/naming-conventions/#package","text":"Name is built from the content that is contained within the package. Optionally prefixed by a project abbreviation. Examples: employees_api - API for the employee table logging_up - Utilities including logging support","title":"Package"},{"location":"2-naming-conventions/naming-conventions/#primary-key-constraint","text":"Table name or table abbreviation followed by the suffix _pk . Examples: employees_pk departments_pk sct_contracts_pk","title":"Primary Key Constraint"},{"location":"2-naming-conventions/naming-conventions/#procedure","text":"Name is built from a verb followed by a noun. The name of the procedure should answer the question \u201cWhat is done?\u201d Procedures and functions are often named with underscores between words because some editors write all letters in uppercase in the object tree, so it is difficult to read them. Optionally prefixed by a project abbreviation. Examples: calculate_salary set_hiredate check_order_state","title":"Procedure"},{"location":"2-naming-conventions/naming-conventions/#sequence","text":"Name is built from the table name (or its abbreviation) the sequence serves as primary key generator and the suffix _seq or the purpose of the sequence followed by a _seq . Optionally prefixed by a project abbreviation. Examples: employees_seq order_number_seq","title":"Sequence"},{"location":"2-naming-conventions/naming-conventions/#synonym","text":"Synonyms should be used to address an object in a foreign schema rather than to rename an object. Therefore, synonyms should share the name with the referenced object.","title":"Synonym"},{"location":"2-naming-conventions/naming-conventions/#system-trigger","text":"Name of the event the trigger is based on. Activity done by the trigger Suffix _trg Examples: ddl_audit_trg logon_trg","title":"System Trigger"},{"location":"2-naming-conventions/naming-conventions/#table","text":"Plural 1 name of what is contained in the table (unless the table is designed to always hold one row only \u2013 then you should use a singular name). Suffixed by _eb when protected by an editioning view. Add a comment to the database dictionary for every table and every column in the table. Optionally prefixed by a project abbreviation. Examples: employees departments countries_eb - table interfaced by an editioning view named countries sct_contracts sct_contract_lines sct_incentive_modules","title":"Table"},{"location":"2-naming-conventions/naming-conventions/#temporary-table-global-temporary-table","text":"Naming as described for tables. Optionally suffixed by _tmp Optionally prefixed by a project abbreviation. Examples: employees_tmp contracts_tmp","title":"Temporary Table (Global Temporary Table)"},{"location":"2-naming-conventions/naming-conventions/#unique-key-constraint","text":"Table name or table abbreviation followed by the role of the unique key constraint, a _uk and an optional number suffix. Examples: employees_name_uk departments_deptno_uk sct_contracts_uk sct_coli_uk sct_icmd_uk1","title":"Unique Key Constraint"},{"location":"2-naming-conventions/naming-conventions/#view","text":"Plural 1 name of what is contained in the view. Optionally suffixed by an indicator identifying the object as a view (mostly used, when a 1:1 view layer lies above the table layer) Editioning views are named like the original underlying table to avoid changing the existing application code when introducing edition based redefinition (EBR). Add a comment to the database dictionary for every view and every column. Optionally prefixed by a project abbreviation. Examples: active_orders orders_v - a view to the orders table countries - an editioning view for table countries_eb We see a table and a view as a collection. A jar containing beans is labeled \"beans\". In Java we call such a collection also \"beans\" ( List beans ) and name an entry \"bean\" ( for (Bean bean : beans) {...} ). An entry of a table is a row (singular) and a table can contain an unbounded number of rows (plural). This and the fact that the Oracle Database uses the same concept for their tables and views lead to the decision to use the plural to name a table or a view. \u21a9 \u21a9 \u21a9","title":"View"},{"location":"3-coding-style/coding-style/","text":"Coding Style Formatting Rules Rule Description 1 Keywords and names are written in lowercase 1 . 2 3 space indention 2 . 3 One command per line. 4 Keywords loop , else , elsif , end if , when on a new line. 5 Commas in front of separated elements. 6 Call parameters aligned, operators aligned, values aligned. 7 SQL keywords are right aligned within a SQL command. 8 Within a program unit only line comments -- are used. 9 Brackets are used when needed or when helpful to clarify a construct. Example 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 create or replace package body employee_api is procedure set_salary ( in_employee_id in integer ) is co_employee_id constant employees . employee_id % type : = in_employee_id ; cursor c_employees ( p_employee_id in employees . employee_id % type ) is select last_name , first_name , salary from employees where employee_id = p_employee_id order by last_name , first_name ; r_employee c_employees % rowtype ; l_new_salary employees . salary % type ; begin open c_employees ( p_employee_id => co_employee_id ); fetch c_employees into r_employee ; close c_employees ; new_salary ( in_employee_id => in_employee_id , out_salary => l_new_salary ); -- Check whether salary has changed if r_employee . salary <> l_new_salary then update employees set salary = l_new_salary where employee_id = in_employee_id ; end if ; end set_salary ; end employee_api ; Code Commenting Conventions Inside a program unit only use the line commenting technique -- unless you temporarly deactivate code sections for testing. To comment the source code for later document generation, comments like /** ... */ are used. Within these documentation comments, tags may be used to define the documentation structure. Tools like Oracle SQL Developer or PL/SQL Developer include documentation functionality based on a javadoc-like tagging. Commenting Tags Tag Meaning Example param Description of a parameter. @param in_string input string return Description of the return value of a function. @return result of the calculation throws Describe errors that may be raised by the program unit. @throws NO_DATA_FOUND Example This is an example using the documentation capabilities of SQL Developer. 1 2 3 4 5 6 7 8 9 10 11 12 13 /** Check whether we passed a valid sql name @param in_name string to be checked @return in_name if the string represents a valid sql name @throws ORA-44003: invalid SQL name Call Example:

 select TVDAssert.valid_sql_name('TEST') from dual; select TVDAssert.valid_sql_name('123') from dual 
*/ It used to be good practice to use uppercase keywords and lowercase names to help visualize code structure. But practically all editors support more or less advanced color highlighting of code, similar to the examples in these guidelines. Hence as of version 4.0 we are now recommending all lowercase, as this is easier and faster for the brain to process. You may choose to prefer the old rule - however, it is important to always be consistent, like for example keywords always in uppercase and names always in lowercase. \u21a9 Tabs are not used because the indentation depends on the editor configuration. We want to ensure that the code looks the same, independent of the editor used. Hence, no tabs. But why not use 8 spaces? That's the traditional value for a tab. When writing a package function the code in the body has an indentation of 3. That's 24 characters as a starting point for the code. We think it's too much. Especially if we try to keep a line below 100 or 80 characters. Other good options would be 2 or 4 spaces. We settled for 3 spaces as a compromise. The indentation is still good visible, but does not use too much space. \u21a9","title":"Coding Style"},{"location":"3-coding-style/coding-style/#coding-style","text":"","title":"Coding Style"},{"location":"3-coding-style/coding-style/#formatting","text":"","title":"Formatting"},{"location":"3-coding-style/coding-style/#rules","text":"Rule Description 1 Keywords and names are written in lowercase 1 . 2 3 space indention 2 . 3 One command per line. 4 Keywords loop , else , elsif , end if , when on a new line. 5 Commas in front of separated elements. 6 Call parameters aligned, operators aligned, values aligned. 7 SQL keywords are right aligned within a SQL command. 8 Within a program unit only line comments -- are used. 9 Brackets are used when needed or when helpful to clarify a construct.","title":"Rules"},{"location":"3-coding-style/coding-style/#example","text":"1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 create or replace package body employee_api is procedure set_salary ( in_employee_id in integer ) is co_employee_id constant employees . employee_id % type : = in_employee_id ; cursor c_employees ( p_employee_id in employees . employee_id % type ) is select last_name , first_name , salary from employees where employee_id = p_employee_id order by last_name , first_name ; r_employee c_employees % rowtype ; l_new_salary employees . salary % type ; begin open c_employees ( p_employee_id => co_employee_id ); fetch c_employees into r_employee ; close c_employees ; new_salary ( in_employee_id => in_employee_id , out_salary => l_new_salary ); -- Check whether salary has changed if r_employee . salary <> l_new_salary then update employees set salary = l_new_salary where employee_id = in_employee_id ; end if ; end set_salary ; end employee_api ;","title":"Example"},{"location":"3-coding-style/coding-style/#code-commenting","text":"","title":"Code Commenting"},{"location":"3-coding-style/coding-style/#conventions","text":"Inside a program unit only use the line commenting technique -- unless you temporarly deactivate code sections for testing. To comment the source code for later document generation, comments like /** ... */ are used. Within these documentation comments, tags may be used to define the documentation structure. Tools like Oracle SQL Developer or PL/SQL Developer include documentation functionality based on a javadoc-like tagging.","title":"Conventions"},{"location":"3-coding-style/coding-style/#commenting-tags","text":"Tag Meaning Example param Description of a parameter. @param in_string input string return Description of the return value of a function. @return result of the calculation throws Describe errors that may be raised by the program unit. @throws NO_DATA_FOUND","title":"Commenting Tags"},{"location":"3-coding-style/coding-style/#example_1","text":"This is an example using the documentation capabilities of SQL Developer. 1 2 3 4 5 6 7 8 9 10 11 12 13 /** Check whether we passed a valid sql name @param in_name string to be checked @return in_name if the string represents a valid sql name @throws ORA-44003: invalid SQL name Call Example:
 select TVDAssert.valid_sql_name('TEST') from dual; select TVDAssert.valid_sql_name('123') from dual 
*/ It used to be good practice to use uppercase keywords and lowercase names to help visualize code structure. But practically all editors support more or less advanced color highlighting of code, similar to the examples in these guidelines. Hence as of version 4.0 we are now recommending all lowercase, as this is easier and faster for the brain to process. You may choose to prefer the old rule - however, it is important to always be consistent, like for example keywords always in uppercase and names always in lowercase. \u21a9 Tabs are not used because the indentation depends on the editor configuration. We want to ensure that the code looks the same, independent of the editor used. Hence, no tabs. But why not use 8 spaces? That's the traditional value for a tab. When writing a package function the code in the body has an indentation of 3. That's 24 characters as a starting point for the code. We think it's too much. Especially if we try to keep a line below 100 or 80 characters. Other good options would be 2 or 4 spaces. We settled for 3 spaces as a compromise. The indentation is still good visible, but does not use too much space. \u21a9","title":"Example"},{"location":"4-language-usage/1-general/g-1010/","text":"G-1010: Try to label your sub blocks. Minor Maintainability Reason It's a good alternative for comments to indicate the start and end of a named processing. Example (bad) 1 2 3 4 5 6 7 8 9 10 begin begin null ; end ; begin null ; end ; end ; / Example (good) 1 2 3 4 5 6 7 8 9 10 11 12 begin << prepare_data >> begin null ; end prepare_data ; << process_data >> begin null ; end process_data ; end good ; /","title":"G-1010: Try to label your sub blocks."},{"location":"4-language-usage/1-general/g-1010/#g-1010-try-to-label-your-sub-blocks","text":"Minor Maintainability","title":"G-1010: Try to label your sub blocks."},{"location":"4-language-usage/1-general/g-1010/#reason","text":"It's a good alternative for comments to indicate the start and end of a named processing.","title":"Reason"},{"location":"4-language-usage/1-general/g-1010/#example-bad","text":"1 2 3 4 5 6 7 8 9 10 begin begin null ; end ; begin null ; end ; end ; /","title":"Example (bad)"},{"location":"4-language-usage/1-general/g-1010/#example-good","text":"1 2 3 4 5 6 7 8 9 10 11 12 begin << prepare_data >> begin null ; end prepare_data ; << process_data >> begin null ; end process_data ; end good ; /","title":"Example (good)"},{"location":"4-language-usage/1-general/g-1020/","text":"G-1020: Always have a matching loop or block label. Minor Maintainability Reason Use a label directly in front of loops and nested anonymous blocks: To give a name to that portion of code and thereby self-document what it is doing. So that you can repeat that name with the end statement of that block or loop. Example (bad) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 declare i integer ; co_min_value constant integer : = 1 ; co_max_value constant integer : = 10 ; co_increment constant integer : = 1 ; begin << prepare_data >> begin null ; end ; << process_data >> begin null ; end ; i : = co_min_value ; << while_loop >> while ( i <= co_max_value ) loop i : = i + co_increment ; end loop ; << basic_loop >> loop exit basic_loop when true ; end loop ; << for_loop >> for i in co_min_value .. co_max_value loop sys . dbms_output . put_line ( i ); end loop ; end ; / Example (good) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 declare i integer ; co_min_value constant integer : = 1 ; co_max_value constant integer : = 10 ; co_increment constant integer : = 1 ; begin << prepare_data >> begin null ; end prepare_data ; << process_data >> begin null ; end process_data ; i : = co_min_value ; << while_loop >> while ( i <= co_max_value ) loop i : = i + co_increment ; end loop while_loop ; << basic_loop >> loop exit basic_loop when true ; end loop basic_loop ; << for_loop >> for i in co_min_value .. co_max_value loop sys . dbms_output . put_line ( i ); end loop for_loop ; end ; /","title":"G-1020: Always have a matching loop or block label."},{"location":"4-language-usage/1-general/g-1020/#g-1020-always-have-a-matching-loop-or-block-label","text":"Minor Maintainability","title":"G-1020: Always have a matching loop or block label."},{"location":"4-language-usage/1-general/g-1020/#reason","text":"Use a label directly in front of loops and nested anonymous blocks: To give a name to that portion of code and thereby self-document what it is doing. So that you can repeat that name with the end statement of that block or loop.","title":"Reason"},{"location":"4-language-usage/1-general/g-1020/#example-bad","text":"1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 declare i integer ; co_min_value constant integer : = 1 ; co_max_value constant integer : = 10 ; co_increment constant integer : = 1 ; begin << prepare_data >> begin null ; end ; << process_data >> begin null ; end ; i : = co_min_value ; << while_loop >> while ( i <= co_max_value ) loop i : = i + co_increment ; end loop ; << basic_loop >> loop exit basic_loop when true ; end loop ; << for_loop >> for i in co_min_value .. co_max_value loop sys . dbms_output . put_line ( i ); end loop ; end ; /","title":"Example (bad)"},{"location":"4-language-usage/1-general/g-1020/#example-good","text":"1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 declare i integer ; co_min_value constant integer : = 1 ; co_max_value constant integer : = 10 ; co_increment constant integer : = 1 ; begin << prepare_data >> begin null ; end prepare_data ; << process_data >> begin null ; end process_data ; i : = co_min_value ; << while_loop >> while ( i <= co_max_value ) loop i : = i + co_increment ; end loop while_loop ; << basic_loop >> loop exit basic_loop when true ; end loop basic_loop ; << for_loop >> for i in co_min_value .. co_max_value loop sys . dbms_output . put_line ( i ); end loop for_loop ; end ; /","title":"Example (good)"},{"location":"4-language-usage/1-general/g-1030/","text":"G-1030: Avoid defining variables that are not used. Major Efficiency, Maintainability Reason Unused variables decrease the maintainability and readability of your code. Example (bad) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 create or replace package body my_package is procedure my_proc is l_last_name employees . last_name % type ; l_first_name employees . first_name % type ; co_department_id constant departments . department_id % type : = 10 ; e_good exception ; begin select e . last_name into l_last_name from employees e where e . department_id = co_department_id ; exception when no_data_found then null ; -- handle_no_data_found; when too_many_rows then null ; -- handle_too_many_rows; end my_proc ; end my_package ; / Example (good) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 create or replace package body my_package is procedure my_proc is l_last_name employees . last_name % type ; co_department_id constant departments . department_id % type : = 10 ; e_good exception ; begin select e . last_name into l_last_name from employees e where e . department_id = co_department_id ; raise e_good ; exception when no_data_found then null ; -- handle_no_data_found; when too_many_rows then null ; -- handle_too_many_rows; end my_proc ; end my_package ; /","title":"G-1030: Avoid defining variables that are not used."},{"location":"4-language-usage/1-general/g-1030/#g-1030-avoid-defining-variables-that-are-not-used","text":"Major Efficiency, Maintainability","title":"G-1030: Avoid defining variables that are not used."},{"location":"4-language-usage/1-general/g-1030/#reason","text":"Unused variables decrease the maintainability and readability of your code.","title":"Reason"},{"location":"4-language-usage/1-general/g-1030/#example-bad","text":"1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 create or replace package body my_package is procedure my_proc is l_last_name employees . last_name % type ; l_first_name employees . first_name % type ; co_department_id constant departments . department_id % type : = 10 ; e_good exception ; begin select e . last_name into l_last_name from employees e where e . department_id = co_department_id ; exception when no_data_found then null ; -- handle_no_data_found; when too_many_rows then null ; -- handle_too_many_rows; end my_proc ; end my_package ; /","title":"Example (bad)"},{"location":"4-language-usage/1-general/g-1030/#example-good","text":"1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 create or replace package body my_package is procedure my_proc is l_last_name employees . last_name % type ; co_department_id constant departments . department_id % type : = 10 ; e_good exception ; begin select e . last_name into l_last_name from employees e where e . department_id = co_department_id ; raise e_good ; exception when no_data_found then null ; -- handle_no_data_found; when too_many_rows then null ; -- handle_too_many_rows; end my_proc ; end my_package ; /","title":"Example (good)"},{"location":"4-language-usage/1-general/g-1040/","text":"G-1040: Avoid dead code. Major Maintainability Reason Any part of your code, which is no longer used or cannot be reached, should be eliminated from your programs to simplify the code. Example (bad) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 declare co_dept_purchasing constant departments . department_id % type : = 30 ; begin if 2 = 3 then -- dead code detection works with literals only null ; -- some dead code here end if ; null ; -- some enabled code here << my_loop >> loop exit my_loop when true ; null ; -- some dead code here end loop my_loop ; null ; -- some other enabled code here case when 1 = 1 and 'x' = 'y' then -- dead code detection works with literals only null ; -- some dead code here else null ; -- some further enabled code here end case ; << my_loop2 >> for r_emp in ( select last_name from employees where department_id = co_dept_purchasing or commission_pct is not null and 5 = 6 -- dead code detection works with literals only ) -- \"or commission_pct is not null\" is dead code loop sys . dbms_output . put_line ( r_emp . last_name ); end loop my_loop2 ; return ; null ; -- some dead code here end ; / Example (good) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 declare co_dept_admin constant dept . deptno % type : = 10 ; begin null ; -- some enabled code here null ; -- some other enabled code here null ; -- some further enabled code here << my_loop2 >> for r_emp in ( select last_name from employees where department_id = co_dept_admin or commission_pct is not null ) loop sys . dbms_output . put_line ( r_emp . last_name ); end loop my_loop2 ; end ; /","title":"G-1040: Avoid dead code."},{"location":"4-language-usage/1-general/g-1040/#g-1040-avoid-dead-code","text":"Major Maintainability","title":"G-1040: Avoid dead code."},{"location":"4-language-usage/1-general/g-1040/#reason","text":"Any part of your code, which is no longer used or cannot be reached, should be eliminated from your programs to simplify the code.","title":"Reason"},{"location":"4-language-usage/1-general/g-1040/#example-bad","text":"1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 declare co_dept_purchasing constant departments . department_id % type : = 30 ; begin if 2 = 3 then -- dead code detection works with literals only null ; -- some dead code here end if ; null ; -- some enabled code here << my_loop >> loop exit my_loop when true ; null ; -- some dead code here end loop my_loop ; null ; -- some other enabled code here case when 1 = 1 and 'x' = 'y' then -- dead code detection works with literals only null ; -- some dead code here else null ; -- some further enabled code here end case ; << my_loop2 >> for r_emp in ( select last_name from employees where department_id = co_dept_purchasing or commission_pct is not null and 5 = 6 -- dead code detection works with literals only ) -- \"or commission_pct is not null\" is dead code loop sys . dbms_output . put_line ( r_emp . last_name ); end loop my_loop2 ; return ; null ; -- some dead code here end ; /","title":"Example (bad)"},{"location":"4-language-usage/1-general/g-1040/#example-good","text":"1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 declare co_dept_admin constant dept . deptno % type : = 10 ; begin null ; -- some enabled code here null ; -- some other enabled code here null ; -- some further enabled code here << my_loop2 >> for r_emp in ( select last_name from employees where department_id = co_dept_admin or commission_pct is not null ) loop sys . dbms_output . put_line ( r_emp . last_name ); end loop my_loop2 ; end ; /","title":"Example (good)"},{"location":"4-language-usage/1-general/g-1050/","text":"G-1050: Avoid using literals in your code. Minor Changeability Reason Literals are often used more than once in your code. Having them defined as a constant reduces typos in your code and improves the maintainability. All constants should be collated in just one package used as a library. If these constants should be used in SQL too it is good practice to write a deterministic package function for every constant. To avoid an extreme plethora of constants or false positives, a literal should not occur more than once within a file. Example (bad) 1 2 3 4 5 6 begin some_api . setup ( in_department_id => 10 ); some_api . process ( in_department_id => 10 ); some_api . teardown ( in_department_id => 10 ); end ; / Example (good) 1 2 3 4 5 6 7 8 9 10 11 create or replace package constants_up is co_dept_admin constant departments . department_id % type : = 10 ; end constants_up ; / begin some_api . setup ( in_department_id => constants_up . co_dept_admin ); some_api . process ( in_department_id => constants_up . co_dept_admin ); some_api . teardown ( in_department_id => constants_up . co_dept_admin ); end ; /","title":"G-1050: Avoid using literals in your code."},{"location":"4-language-usage/1-general/g-1050/#g-1050-avoid-using-literals-in-your-code","text":"Minor Changeability","title":"G-1050: Avoid using literals in your code."},{"location":"4-language-usage/1-general/g-1050/#reason","text":"Literals are often used more than once in your code. Having them defined as a constant reduces typos in your code and improves the maintainability. All constants should be collated in just one package used as a library. If these constants should be used in SQL too it is good practice to write a deterministic package function for every constant. To avoid an extreme plethora of constants or false positives, a literal should not occur more than once within a file.","title":"Reason"},{"location":"4-language-usage/1-general/g-1050/#example-bad","text":"1 2 3 4 5 6 begin some_api . setup ( in_department_id => 10 ); some_api . process ( in_department_id => 10 ); some_api . teardown ( in_department_id => 10 ); end ; /","title":"Example (bad)"},{"location":"4-language-usage/1-general/g-1050/#example-good","text":"1 2 3 4 5 6 7 8 9 10 11 create or replace package constants_up is co_dept_admin constant departments . department_id % type : = 10 ; end constants_up ; / begin some_api . setup ( in_department_id => constants_up . co_dept_admin ); some_api . process ( in_department_id => constants_up . co_dept_admin ); some_api . teardown ( in_department_id => constants_up . co_dept_admin ); end ; /","title":"Example (good)"},{"location":"4-language-usage/1-general/g-1060/","text":"G-1060: Avoid storing ROWIDs or UROWIDs in database tables. Blocker Reliability Reason It is an extremely dangerous practice to store rowid 's in a table, except for some very limited scenarios of runtime duration. Any manually explicit or system generated implicit table reorganization will reassign the row's rowid and break the data consistency. Instead of using rowid for later reference to the original row one should use the primary key column(s). Example (bad) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 begin insert into employees_log ( employee_id , last_name , first_name , rid ) select employee_id , last_name , first_name , rowid from employees ; end ; / Example (good) 1 2 3 4 5 6 7 8 9 10 11 12 begin insert into employees_log ( employee_id , last_name , first_name ) select employee_id , last_name , first_name from employees ; end ; /","title":"G-1060: Avoid storing ROWIDs or UROWIDs in database tables."},{"location":"4-language-usage/1-general/g-1060/#g-1060-avoid-storing-rowids-or-urowids-in-database-tables","text":"Blocker Reliability","title":"G-1060: Avoid storing ROWIDs or UROWIDs in database tables."},{"location":"4-language-usage/1-general/g-1060/#reason","text":"It is an extremely dangerous practice to store rowid 's in a table, except for some very limited scenarios of runtime duration. Any manually explicit or system generated implicit table reorganization will reassign the row's rowid and break the data consistency. Instead of using rowid for later reference to the original row one should use the primary key column(s).","title":"Reason"},{"location":"4-language-usage/1-general/g-1060/#example-bad","text":"1 2 3 4 5 6 7 8 9 10 11 12 13 14 begin insert into employees_log ( employee_id , last_name , first_name , rid ) select employee_id , last_name , first_name , rowid from employees ; end ; /","title":"Example (bad)"},{"location":"4-language-usage/1-general/g-1060/#example-good","text":"1 2 3 4 5 6 7 8 9 10 11 12 begin insert into employees_log ( employee_id , last_name , first_name ) select employee_id , last_name , first_name from employees ; end ; /","title":"Example (good)"},{"location":"4-language-usage/1-general/g-1070/","text":"G-1070: Avoid nesting comment blocks. Minor Maintainability Reason Having an end-of-comment within a block comment will end that block-comment. This does not only influence your code but is also very hard to read. Example (bad) 1 2 3 4 5 6 7 begin /* comment one -- nested comment two */ null ; -- comment three /* nested comment four */ null ; end ; / Example (good) 1 2 3 4 5 6 7 begin /* comment one, comment two */ null ; -- comment three, comment four null ; end ; /","title":"G-1070: Avoid nesting comment blocks."},{"location":"4-language-usage/1-general/g-1070/#g-1070-avoid-nesting-comment-blocks","text":"Minor Maintainability","title":"G-1070: Avoid nesting comment blocks."},{"location":"4-language-usage/1-general/g-1070/#reason","text":"Having an end-of-comment within a block comment will end that block-comment. This does not only influence your code but is also very hard to read.","title":"Reason"},{"location":"4-language-usage/1-general/g-1070/#example-bad","text":"1 2 3 4 5 6 7 begin /* comment one -- nested comment two */ null ; -- comment three /* nested comment four */ null ; end ; /","title":"Example (bad)"},{"location":"4-language-usage/1-general/g-1070/#example-good","text":"1 2 3 4 5 6 7 begin /* comment one, comment two */ null ; -- comment three, comment four null ; end ; /","title":"Example (good)"},{"location":"4-language-usage/1-general/g-1080/","text":"G-1080: Avoid using the same expression on both sides of a relational comparison operator or a logical operator. Blocker Maintainability, Efficiency, Testability Reason Using the same value on either side of a binary operator is almost always a mistake. In the case of logical operators, it is either a copy/paste error and therefore a bug, or it is simply wasted code and should be simplified. This rule ignores operators + , * and || , and expressions: 1=1 , 1<>1 , 1!=1 , 1~=1 and 1^=1 . Example (bad) 1 2 3 4 5 6 7 8 9 10 11 12 13 declare co_max_salary constant emp . salary % type : = 3000 ; begin select emp . first_name , emp . last_name , emp . salary , emp . hire_date from employees emp where emp . salary > co_max_salary or emp . salary > co_max_salary order by emp . last_name , emp . first_name ; end ; / Example (good) 1 2 3 4 5 6 7 8 9 10 11 12 declare co_max_salary constant emp . salary % type : = 3000 ; begin select emp . first_name , emp . last_name , emp . salary , emp . hire_date from employees emp where emp . salary > co_max_salary order by emp . last_name , emp . first_name ; end ; /","title":"G-1080: Avoid using the same expression on both sides of a relational comparison operator or a logical operator."},{"location":"4-language-usage/1-general/g-1080/#g-1080-avoid-using-the-same-expression-on-both-sides-of-a-relational-comparison-operator-or-a-logical-operator","text":"Blocker Maintainability, Efficiency, Testability","title":"G-1080: Avoid using the same expression on both sides of a relational comparison operator or a logical operator."},{"location":"4-language-usage/1-general/g-1080/#reason","text":"Using the same value on either side of a binary operator is almost always a mistake. In the case of logical operators, it is either a copy/paste error and therefore a bug, or it is simply wasted code and should be simplified. This rule ignores operators + , * and || , and expressions: 1=1 , 1<>1 , 1!=1 , 1~=1 and 1^=1 .","title":"Reason"},{"location":"4-language-usage/1-general/g-1080/#example-bad","text":"1 2 3 4 5 6 7 8 9 10 11 12 13 declare co_max_salary constant emp . salary % type : = 3000 ; begin select emp . first_name , emp . last_name , emp . salary , emp . hire_date from employees emp where emp . salary > co_max_salary or emp . salary > co_max_salary order by emp . last_name , emp . first_name ; end ; /","title":"Example (bad)"},{"location":"4-language-usage/1-general/g-1080/#example-good","text":"1 2 3 4 5 6 7 8 9 10 11 12 declare co_max_salary constant emp . salary % type : = 3000 ; begin select emp . first_name , emp . last_name , emp . salary , emp . hire_date from employees emp where emp . salary > co_max_salary order by emp . last_name , emp . first_name ; end ; /","title":"Example (good)"},{"location":"4-language-usage/2-variables-and-types/1-general/g-2110/","text":"G-2110: Try to use anchored declarations for variables, constants and types. Major Maintainability, Reliability Reason Changing the size of the database column last_name in the employees table from varchar2(20) to varchar2(30) will result in an error within your code whenever a value larger than the hard coded size is read from the table. This can be avoided using anchored declarations. Example (bad) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 create or replace package body my_package is procedure my_proc is l_last_name varchar2 ( 20 char ); co_first_row constant integer : = 1 ; begin select e . last_name into l_last_name from employees e where rownum = co_first_row ; exception when no_data_found then null ; -- handle no_data_found when too_many_rows then null ; -- handle too_many_rows (impossible) end my_proc ; end my_package ; / Example (good) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 create or replace package body my_package is procedure my_proc is l_last_name employees . last_name % type ; co_first_row constant integer : = 1 ; begin select e . last_name into l_last_name from employees e where rownum = co_first_row ; exception when no_data_found then null ; -- handle no_data_found when too_many_rows then null ; -- handle too_many_rows (impossible) end my_proc ; end my_package ; /","title":"G-2110: Try to use anchored declarations for variables, constants and types."},{"location":"4-language-usage/2-variables-and-types/1-general/g-2110/#g-2110-try-to-use-anchored-declarations-for-variables-constants-and-types","text":"Major Maintainability, Reliability","title":"G-2110: Try to use anchored declarations for variables, constants and types."},{"location":"4-language-usage/2-variables-and-types/1-general/g-2110/#reason","text":"Changing the size of the database column last_name in the employees table from varchar2(20) to varchar2(30) will result in an error within your code whenever a value larger than the hard coded size is read from the table. This can be avoided using anchored declarations.","title":"Reason"},{"location":"4-language-usage/2-variables-and-types/1-general/g-2110/#example-bad","text":"1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 create or replace package body my_package is procedure my_proc is l_last_name varchar2 ( 20 char ); co_first_row constant integer : = 1 ; begin select e . last_name into l_last_name from employees e where rownum = co_first_row ; exception when no_data_found then null ; -- handle no_data_found when too_many_rows then null ; -- handle too_many_rows (impossible) end my_proc ; end my_package ; /","title":"Example (bad)"},{"location":"4-language-usage/2-variables-and-types/1-general/g-2110/#example-good","text":"1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 create or replace package body my_package is procedure my_proc is l_last_name employees . last_name % type ; co_first_row constant integer : = 1 ; begin select e . last_name into l_last_name from employees e where rownum = co_first_row ; exception when no_data_found then null ; -- handle no_data_found when too_many_rows then null ; -- handle too_many_rows (impossible) end my_proc ; end my_package ; /","title":"Example (good)"},{"location":"4-language-usage/2-variables-and-types/1-general/g-2120/","text":"G-2120: Try to have a single location to define your types. Minor Changeability Reason Single point of change when changing the data type. No need to argue where to define types or where to look for existing definitions. A single location could be either a type specification package or the database (database-defined types). Example (bad) 1 2 3 4 5 6 7 8 9 10 create or replace package body my_package is procedure my_proc is subtype big_string_type is varchar2 ( 1000 char ); l_note big_string_type ; begin l_note : = some_function (); do_something ( l_note ); end my_proc ; end my_package ; / Example (good) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 create or replace package types_up is subtype big_string_type is varchar2 ( 1000 char ); end types_up ; / create or replace package body my_package is procedure my_proc is l_note types_up . big_string_type ; begin l_note : = some_function (); do_something ( l_note ); end my_proc ; end my_package ; /","title":"G-2120: Try to have a single location to define your types."},{"location":"4-language-usage/2-variables-and-types/1-general/g-2120/#g-2120-try-to-have-a-single-location-to-define-your-types","text":"Minor Changeability","title":"G-2120: Try to have a single location to define your types."},{"location":"4-language-usage/2-variables-and-types/1-general/g-2120/#reason","text":"Single point of change when changing the data type. No need to argue where to define types or where to look for existing definitions. A single location could be either a type specification package or the database (database-defined types).","title":"Reason"},{"location":"4-language-usage/2-variables-and-types/1-general/g-2120/#example-bad","text":"1 2 3 4 5 6 7 8 9 10 create or replace package body my_package is procedure my_proc is subtype big_string_type is varchar2 ( 1000 char ); l_note big_string_type ; begin l_note : = some_function (); do_something ( l_note ); end my_proc ; end my_package ; /","title":"Example (bad)"},{"location":"4-language-usage/2-variables-and-types/1-general/g-2120/#example-good","text":"1 2 3 4 5 6 7 8 9 10 11 12 13 14 create or replace package types_up is subtype big_string_type is varchar2 ( 1000 char ); end types_up ; / create or replace package body my_package is procedure my_proc is l_note types_up . big_string_type ; begin l_note : = some_function (); do_something ( l_note ); end my_proc ; end my_package ; /","title":"Example (good)"},{"location":"4-language-usage/2-variables-and-types/1-general/g-2130/","text":"G-2130: Try to use subtypes for constructs used often in your code. Minor Changeability Reason Single point of change when changing the data type. Your code will be easier to read as the usage of a variable/constant may be derived from its definition. Examples of possible subtype definitions: Type Usage ora_name_type Object corresponding to the Oracle Database naming conventions (table, variable, column, package, etc.). max_vc2_type String variable with maximal VARCHAR2 size. array_index_type Best fitting data type for array navigation. id_type Data type used for all primary key (id) columns. Example (bad) 1 2 3 4 5 6 7 8 9 create or replace package body my_package is procedure my_proc is l_note varchar2 ( 1000 char ); begin l_note : = some_function (); do_something ( l_note ); end my_proc ; end my_package ; / Example (good) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 create or replace package types_up is subtype big_string_type is varchar2 ( 1000 char ); end types_up ; / create or replace package body my_package is procedure my_proc is l_note types_up . big_string_type ; begin l_note : = some_function (); do_something ( l_note ); end my_proc ; end my_package ; /","title":"G-2130: Try to use subtypes for constructs used often in your code."},{"location":"4-language-usage/2-variables-and-types/1-general/g-2130/#g-2130-try-to-use-subtypes-for-constructs-used-often-in-your-code","text":"Minor Changeability","title":"G-2130: Try to use subtypes for constructs used often in your code."},{"location":"4-language-usage/2-variables-and-types/1-general/g-2130/#reason","text":"Single point of change when changing the data type. Your code will be easier to read as the usage of a variable/constant may be derived from its definition. Examples of possible subtype definitions: Type Usage ora_name_type Object corresponding to the Oracle Database naming conventions (table, variable, column, package, etc.). max_vc2_type String variable with maximal VARCHAR2 size. array_index_type Best fitting data type for array navigation. id_type Data type used for all primary key (id) columns.","title":"Reason"},{"location":"4-language-usage/2-variables-and-types/1-general/g-2130/#example-bad","text":"1 2 3 4 5 6 7 8 9 create or replace package body my_package is procedure my_proc is l_note varchar2 ( 1000 char ); begin l_note : = some_function (); do_something ( l_note ); end my_proc ; end my_package ; /","title":"Example (bad)"},{"location":"4-language-usage/2-variables-and-types/1-general/g-2130/#example-good","text":"1 2 3 4 5 6 7 8 9 10 11 12 13 14 create or replace package types_up is subtype big_string_type is varchar2 ( 1000 char ); end types_up ; / create or replace package body my_package is procedure my_proc is l_note types_up . big_string_type ; begin l_note : = some_function (); do_something ( l_note ); end my_proc ; end my_package ; /","title":"Example (good)"},{"location":"4-language-usage/2-variables-and-types/1-general/g-2135/","text":"G-2135: Avoid assigning values to local variables that are not used by a subsequent statement. Major Efficiency, Maintainability, Testability Reason Expending resources calculating and assigning values to a local variable and never use the value subsequently is at best a waste, at worst indicative of a mistake that leads to a bug. Example (bad) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 create or replace package body my_package is procedure my_proc is co_employee_id constant employees . employee_id % type : = 1042 ; co_hello constant type_up . text : = 'Hello, ' ; l_last_name employees . last_name % type ; l_message types_up . text ; begin select emp . last_name into l_last_name from employees emp where emp . employee_id = co_employee_id ; l_message : = co_hello || l_last_name ; exception when no_data_found then null ; -- handle_no_data_found; when too_many_rows then null ; -- handle_too_many_rows; end my_proc ; end my_package ; / Example (good) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 create or replace package body my_package is procedure my_proc is co_employee_id constant employees . employee_id % type : = 1042 ; co_hello constant type_up . text : = 'Hello, ' ; l_last_name employees . last_name % type ; l_message types_up . text ; begin select emp . last_name into l_last_name from employees emp where emp . employee_id = co_employee_id ; l_message : = co_hello || l_last_name ; message_api . send_message ( l_message ); exception when no_data_found then null ; -- handle_no_data_found; when too_many_rows then null ; -- handle_too_many_rows; end my_proc ; end my_package ; /","title":"G-2135: Avoid assigning values to local variables that are not used by a subsequent statement."},{"location":"4-language-usage/2-variables-and-types/1-general/g-2135/#g-2135-avoid-assigning-values-to-local-variables-that-are-not-used-by-a-subsequent-statement","text":"Major Efficiency, Maintainability, Testability","title":"G-2135: Avoid assigning values to local variables that are not used by a subsequent statement."},{"location":"4-language-usage/2-variables-and-types/1-general/g-2135/#reason","text":"Expending resources calculating and assigning values to a local variable and never use the value subsequently is at best a waste, at worst indicative of a mistake that leads to a bug.","title":"Reason"},{"location":"4-language-usage/2-variables-and-types/1-general/g-2135/#example-bad","text":"1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 create or replace package body my_package is procedure my_proc is co_employee_id constant employees . employee_id % type : = 1042 ; co_hello constant type_up . text : = 'Hello, ' ; l_last_name employees . last_name % type ; l_message types_up . text ; begin select emp . last_name into l_last_name from employees emp where emp . employee_id = co_employee_id ; l_message : = co_hello || l_last_name ; exception when no_data_found then null ; -- handle_no_data_found; when too_many_rows then null ; -- handle_too_many_rows; end my_proc ; end my_package ; /","title":"Example (bad)"},{"location":"4-language-usage/2-variables-and-types/1-general/g-2135/#example-good","text":"1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 create or replace package body my_package is procedure my_proc is co_employee_id constant employees . employee_id % type : = 1042 ; co_hello constant type_up . text : = 'Hello, ' ; l_last_name employees . last_name % type ; l_message types_up . text ; begin select emp . last_name into l_last_name from employees emp where emp . employee_id = co_employee_id ; l_message : = co_hello || l_last_name ; message_api . send_message ( l_message ); exception when no_data_found then null ; -- handle_no_data_found; when too_many_rows then null ; -- handle_too_many_rows; end my_proc ; end my_package ; /","title":"Example (good)"},{"location":"4-language-usage/2-variables-and-types/1-general/g-2140/","text":"G-2140: Never initialize variables with NULL. Minor Maintainability Reason Variables are initialized to null by default. Example (bad) 1 2 3 4 5 6 declare l_note big_string_type : = null ; begin sys . dbms_output . put_line ( l_note ); end ; / Example (good) 1 2 3 4 5 6 declare l_note big_string_type ; begin sys . dbms_output . put_line ( l_note ); end ; /","title":"G-2140: Never initialize variables with NULL."},{"location":"4-language-usage/2-variables-and-types/1-general/g-2140/#g-2140-never-initialize-variables-with-null","text":"Minor Maintainability","title":"G-2140: Never initialize variables with NULL."},{"location":"4-language-usage/2-variables-and-types/1-general/g-2140/#reason","text":"Variables are initialized to null by default.","title":"Reason"},{"location":"4-language-usage/2-variables-and-types/1-general/g-2140/#example-bad","text":"1 2 3 4 5 6 declare l_note big_string_type : = null ; begin sys . dbms_output . put_line ( l_note ); end ; /","title":"Example (bad)"},{"location":"4-language-usage/2-variables-and-types/1-general/g-2140/#example-good","text":"1 2 3 4 5 6 declare l_note big_string_type ; begin sys . dbms_output . put_line ( l_note ); end ; /","title":"Example (good)"},{"location":"4-language-usage/2-variables-and-types/1-general/g-2145/","text":"G-2145: Never self-assign a variable. Blocker Maintainability Reason There is no reason to assign a variable to itself. It is either a redundant statement that should be removed, or it is a mistake where some other value was intended in the assignment. Example (bad) 1 2 3 4 5 6 7 8 9 10 11 12 declare co_parallel_degree constant types_up . name % type : = 'parallel_degree' ; l_function_result pls_integer ; l_parallel_degree pls_integer ; begin l_function_result : = maintenance . get_config ( co_parallel_degree ); if l_function_result is not null then l_parallel_degree : = l_parallel_degree ; do_something ( l_parallel_degree ); end if ; end ; / Example (good) 1 2 3 4 5 6 7 8 9 10 11 12 declare co_parallel_degree constant types_up . name % type : = 'parallel_degree' ; l_function_result pls_integer ; l_parallel_degree pls_integer ; begin l_function_result : = maintenance . get_config ( co_parallel_degree ); if l_function_result is not null then l_parallel_degree : = l_function_result ; do_something ( l_parallel_degree ); end if ; end ; /","title":"G-2145: Never self-assign a variable."},{"location":"4-language-usage/2-variables-and-types/1-general/g-2145/#g-2145-never-self-assign-a-variable","text":"Blocker Maintainability","title":"G-2145: Never self-assign a variable."},{"location":"4-language-usage/2-variables-and-types/1-general/g-2145/#reason","text":"There is no reason to assign a variable to itself. It is either a redundant statement that should be removed, or it is a mistake where some other value was intended in the assignment.","title":"Reason"},{"location":"4-language-usage/2-variables-and-types/1-general/g-2145/#example-bad","text":"1 2 3 4 5 6 7 8 9 10 11 12 declare co_parallel_degree constant types_up . name % type : = 'parallel_degree' ; l_function_result pls_integer ; l_parallel_degree pls_integer ; begin l_function_result : = maintenance . get_config ( co_parallel_degree ); if l_function_result is not null then l_parallel_degree : = l_parallel_degree ; do_something ( l_parallel_degree ); end if ; end ; /","title":"Example (bad)"},{"location":"4-language-usage/2-variables-and-types/1-general/g-2145/#example-good","text":"1 2 3 4 5 6 7 8 9 10 11 12 declare co_parallel_degree constant types_up . name % type : = 'parallel_degree' ; l_function_result pls_integer ; l_parallel_degree pls_integer ; begin l_function_result : = maintenance . get_config ( co_parallel_degree ); if l_function_result is not null then l_parallel_degree : = l_function_result ; do_something ( l_parallel_degree ); end if ; end ; /","title":"Example (good)"},{"location":"4-language-usage/2-variables-and-types/1-general/g-2150/","text":"G-2150: Avoid comparisons with NULL value, consider using IS [NOT] NULL. Blocker Portability, Reliability Reason The null value can cause confusion both from the standpoint of code review and code execution. You must always use the is null or is not null syntax when you need to check if a value is or is not null . Example (bad) 1 2 3 4 5 6 7 8 declare l_value integer ; begin if l_value = null then null ; end if ; end ; / Example (good) 1 2 3 4 5 6 7 8 declare l_value integer ; begin if l_value is null then null ; end if ; end ; /","title":"G-2150: Avoid comparisons with NULL value, consider using IS [NOT] NULL."},{"location":"4-language-usage/2-variables-and-types/1-general/g-2150/#g-2150-avoid-comparisons-with-null-value-consider-using-is-not-null","text":"Blocker Portability, Reliability","title":"G-2150: Avoid comparisons with NULL value, consider using IS [NOT] NULL."},{"location":"4-language-usage/2-variables-and-types/1-general/g-2150/#reason","text":"The null value can cause confusion both from the standpoint of code review and code execution. You must always use the is null or is not null syntax when you need to check if a value is or is not null .","title":"Reason"},{"location":"4-language-usage/2-variables-and-types/1-general/g-2150/#example-bad","text":"1 2 3 4 5 6 7 8 declare l_value integer ; begin if l_value = null then null ; end if ; end ; /","title":"Example (bad)"},{"location":"4-language-usage/2-variables-and-types/1-general/g-2150/#example-good","text":"1 2 3 4 5 6 7 8 declare l_value integer ; begin if l_value is null then null ; end if ; end ; /","title":"Example (good)"},{"location":"4-language-usage/2-variables-and-types/1-general/g-2160/","text":"G-2160: Avoid initializing variables using functions in the declaration section. Critical Reliability Reason If your initialization fails, you will not be able to handle the error in your exceptions block. Example (bad) 1 2 3 4 5 6 7 8 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 ; / Example (good) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 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 ; /","title":"G-2160: Avoid initializing variables using functions in the declaration section."},{"location":"4-language-usage/2-variables-and-types/1-general/g-2160/#g-2160-avoid-initializing-variables-using-functions-in-the-declaration-section","text":"Critical Reliability","title":"G-2160: Avoid initializing variables using functions in the declaration section."},{"location":"4-language-usage/2-variables-and-types/1-general/g-2160/#reason","text":"If your initialization fails, you will not be able to handle the error in your exceptions block.","title":"Reason"},{"location":"4-language-usage/2-variables-and-types/1-general/g-2160/#example-bad","text":"1 2 3 4 5 6 7 8 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 ; /","title":"Example (bad)"},{"location":"4-language-usage/2-variables-and-types/1-general/g-2160/#example-good","text":"1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 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 ; /","title":"Example (good)"},{"location":"4-language-usage/2-variables-and-types/1-general/g-2170/","text":"G-2170: Never overload variables. Major Reliability Reason The readability of your code will be higher when you do not overload variables. Example (bad) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 begin << main >> declare co_main constant user_objects . object_name % type : = 'test_main' ; co_sub constant user_objects . object_name % type : = 'test_sub' ; co_sep constant user_objects . object_name % type : = ' - ' ; l_variable user_objects . object_name % type : = co_main ; begin << sub >> declare l_variable user_objects . object_name % type : = co_sub ; begin sys . dbms_output . put_line ( l_variable || co_sep || main . l_variable ); end sub ; end main ; end ; / Example (good) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 begin << main >> declare co_main constant user_objects . object_name % type : = 'test_main' ; co_sub constant user_objects . object_name % type : = 'test_sub' ; co_sep constant user_objects . object_name % type : = ' - ' ; l_main_variable user_objects . object_name % type : = co_main ; begin << sub >> declare l_sub_variable user_objects . object_name % type : = co_sub ; begin sys . dbms_output . put_line ( l_sub_variable || co_sep || l_main_variable ); end sub ; end main ; end ; /","title":"G-2170: Never overload variables."},{"location":"4-language-usage/2-variables-and-types/1-general/g-2170/#g-2170-never-overload-variables","text":"Major Reliability","title":"G-2170: Never overload variables."},{"location":"4-language-usage/2-variables-and-types/1-general/g-2170/#reason","text":"The readability of your code will be higher when you do not overload variables.","title":"Reason"},{"location":"4-language-usage/2-variables-and-types/1-general/g-2170/#example-bad","text":"1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 begin << main >> declare co_main constant user_objects . object_name % type : = 'test_main' ; co_sub constant user_objects . object_name % type : = 'test_sub' ; co_sep constant user_objects . object_name % type : = ' - ' ; l_variable user_objects . object_name % type : = co_main ; begin << sub >> declare l_variable user_objects . object_name % type : = co_sub ; begin sys . dbms_output . put_line ( l_variable || co_sep || main . l_variable ); end sub ; end main ; end ; /","title":"Example (bad)"},{"location":"4-language-usage/2-variables-and-types/1-general/g-2170/#example-good","text":"1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 begin << main >> declare co_main constant user_objects . object_name % type : = 'test_main' ; co_sub constant user_objects . object_name % type : = 'test_sub' ; co_sep constant user_objects . object_name % type : = ' - ' ; l_main_variable user_objects . object_name % type : = co_main ; begin << sub >> declare l_sub_variable user_objects . object_name % type : = co_sub ; begin sys . dbms_output . put_line ( l_sub_variable || co_sep || l_main_variable ); end sub ; end main ; end ; /","title":"Example (good)"},{"location":"4-language-usage/2-variables-and-types/1-general/g-2180/","text":"G-2180: Never use quoted identifiers. Major Maintainability Reason Quoted identifiers make your code hard to read and maintain. Example (bad) 1 2 3 4 5 6 7 8 9 10 11 12 declare \"sal+comm\" integer ; -- violates also naming conventions (G-9102) \"my constant\" constant integer : = 1 ; -- violates also naming conventions (G-9114) \"my exception\" exception ; -- violates also naming conventsion (G-9113) begin \"sal+comm\" : = \"my constant\" ; do_something ( \"sal+comm\" ); exception when \"my exception\" then null ; end ; / Example (good) 1 2 3 4 5 6 7 8 9 10 11 12 declare l_sal_comm integer ; co_my_constant constant integer : = 1 ; e_my_exception exception ; begin l_sal_comm : = co_my_constant ; do_something ( l_sal_comm ); exception when e_my_exception then null ; end ; /","title":"G-2180: Never use quoted identifiers."},{"location":"4-language-usage/2-variables-and-types/1-general/g-2180/#g-2180-never-use-quoted-identifiers","text":"Major Maintainability","title":"G-2180: Never use quoted identifiers."},{"location":"4-language-usage/2-variables-and-types/1-general/g-2180/#reason","text":"Quoted identifiers make your code hard to read and maintain.","title":"Reason"},{"location":"4-language-usage/2-variables-and-types/1-general/g-2180/#example-bad","text":"1 2 3 4 5 6 7 8 9 10 11 12 declare \"sal+comm\" integer ; -- violates also naming conventions (G-9102) \"my constant\" constant integer : = 1 ; -- violates also naming conventions (G-9114) \"my exception\" exception ; -- violates also naming conventsion (G-9113) begin \"sal+comm\" : = \"my constant\" ; do_something ( \"sal+comm\" ); exception when \"my exception\" then null ; end ; /","title":"Example (bad)"},{"location":"4-language-usage/2-variables-and-types/1-general/g-2180/#example-good","text":"1 2 3 4 5 6 7 8 9 10 11 12 declare l_sal_comm integer ; co_my_constant constant integer : = 1 ; e_my_exception exception ; begin l_sal_comm : = co_my_constant ; do_something ( l_sal_comm ); exception when e_my_exception then null ; end ; /","title":"Example (good)"},{"location":"4-language-usage/2-variables-and-types/1-general/g-2185/","text":"G-2185: Avoid using overly short names for explicitly or implicitly declared identifiers. Major Maintainability Reason You should ensure that the name you have chosen well defines its purpose and usage. While you can save a few keystrokes typing very short names, the resulting code is obscure and hard for anyone besides the author to understand. Example (bad) 1 2 3 4 5 6 7 8 9 10 11 12 declare i integer ; c constant integer : = 1 ; -- violates also naming conventions (G-9114) e exception ; -- violates also naming conventions (G-9113) begin i : = c ; do_something ( i ); exception when e then null ; end ; / Example (good) 1 2 3 4 5 6 7 8 9 10 11 12 declare l_sal_comm integer ; co_my_constant constant integer : = 1 ; e_my_exception exception ; begin l_sal_comm : = co_my_constant ; do_something ( l_sal_comm ); exception when e_my_exception then null ; end ; /","title":"G-2185: Avoid using overly short names for explicitly or implicitly declared identifiers."},{"location":"4-language-usage/2-variables-and-types/1-general/g-2185/#g-2185-avoid-using-overly-short-names-for-explicitly-or-implicitly-declared-identifiers","text":"Major Maintainability","title":"G-2185: Avoid using overly short names for explicitly or implicitly declared identifiers."},{"location":"4-language-usage/2-variables-and-types/1-general/g-2185/#reason","text":"You should ensure that the name you have chosen well defines its purpose and usage. While you can save a few keystrokes typing very short names, the resulting code is obscure and hard for anyone besides the author to understand.","title":"Reason"},{"location":"4-language-usage/2-variables-and-types/1-general/g-2185/#example-bad","text":"1 2 3 4 5 6 7 8 9 10 11 12 declare i integer ; c constant integer : = 1 ; -- violates also naming conventions (G-9114) e exception ; -- violates also naming conventions (G-9113) begin i : = c ; do_something ( i ); exception when e then null ; end ; /","title":"Example (bad)"},{"location":"4-language-usage/2-variables-and-types/1-general/g-2185/#example-good","text":"1 2 3 4 5 6 7 8 9 10 11 12 declare l_sal_comm integer ; co_my_constant constant integer : = 1 ; e_my_exception exception ; begin l_sal_comm : = co_my_constant ; do_something ( l_sal_comm ); exception when e_my_exception then null ; end ; /","title":"Example (good)"},{"location":"4-language-usage/2-variables-and-types/1-general/g-2190/","text":"G-2190: Avoid using ROWID or UROWID. Blocker Portability, Reliability Reason Be careful about your use of Oracle Database specific data types like rowid and urowid . They might offer a slight improvement in performance over other means of identifying a single row (primary key or unique index value), but that is by no means guaranteed. Use of rowid or urowid means that your SQL statement will not be portable to other SQL databases. Many developers are also not familiar with these data types, which can make the code harder to maintain. Example (bad) 1 2 3 4 5 6 7 8 9 declare l_department_name departments . department_name % type ; l_rowid rowid ; begin update departments set department_name = l_department_name where rowid = l_rowid ; end ; / Example (good) 1 2 3 4 5 6 7 8 9 declare l_department_name departments . department_name % type ; l_department_id departments . department_id % type ; begin update departments set department_name = l_department_name where department_id = l_department_id ; end ; /","title":"G-2190: Avoid using ROWID or UROWID."},{"location":"4-language-usage/2-variables-and-types/1-general/g-2190/#g-2190-avoid-using-rowid-or-urowid","text":"Blocker Portability, Reliability","title":"G-2190: Avoid using ROWID or UROWID."},{"location":"4-language-usage/2-variables-and-types/1-general/g-2190/#reason","text":"Be careful about your use of Oracle Database specific data types like rowid and urowid . They might offer a slight improvement in performance over other means of identifying a single row (primary key or unique index value), but that is by no means guaranteed. Use of rowid or urowid means that your SQL statement will not be portable to other SQL databases. Many developers are also not familiar with these data types, which can make the code harder to maintain.","title":"Reason"},{"location":"4-language-usage/2-variables-and-types/1-general/g-2190/#example-bad","text":"1 2 3 4 5 6 7 8 9 declare l_department_name departments . department_name % type ; l_rowid rowid ; begin update departments set department_name = l_department_name where rowid = l_rowid ; end ; /","title":"Example (bad)"},{"location":"4-language-usage/2-variables-and-types/1-general/g-2190/#example-good","text":"1 2 3 4 5 6 7 8 9 declare l_department_name departments . department_name % type ; l_department_id departments . department_id % type ; begin update departments set department_name = l_department_name where department_id = l_department_id ; end ; /","title":"Example (good)"},{"location":"4-language-usage/2-variables-and-types/2-numeric-data-types/g-2210/","text":"G-2210: Avoid declaring NUMBER variables, constants or subtypes with no precision. Critical Efficiency Reason If you do not specify precision number is defaulted to 38 or the maximum supported by your system, whichever is less. You may well need all this precision, but if you know you do not, you should specify whatever matches your needs. Also, consider using a simpler data type that uses fewer resources, such as pls_integer . Example (bad) 1 2 3 4 create or replace package types_up is subtype salary_type is number ; end types_up ; / Example (good) 1 2 3 4 create or replace package types_up is subtype salary_type is number ( 5 , 1 ); end types_up ; /","title":"G-2210: Avoid declaring NUMBER variables, constants or subtypes with no precision."},{"location":"4-language-usage/2-variables-and-types/2-numeric-data-types/g-2210/#g-2210-avoid-declaring-number-variables-constants-or-subtypes-with-no-precision","text":"Critical Efficiency","title":"G-2210: Avoid declaring NUMBER variables, constants or subtypes with no precision."},{"location":"4-language-usage/2-variables-and-types/2-numeric-data-types/g-2210/#reason","text":"If you do not specify precision number is defaulted to 38 or the maximum supported by your system, whichever is less. You may well need all this precision, but if you know you do not, you should specify whatever matches your needs. Also, consider using a simpler data type that uses fewer resources, such as pls_integer .","title":"Reason"},{"location":"4-language-usage/2-variables-and-types/2-numeric-data-types/g-2210/#example-bad","text":"1 2 3 4 create or replace package types_up is subtype salary_type is number ; end types_up ; /","title":"Example (bad)"},{"location":"4-language-usage/2-variables-and-types/2-numeric-data-types/g-2210/#example-good","text":"1 2 3 4 create or replace package types_up is subtype salary_type is number ( 5 , 1 ); end types_up ; /","title":"Example (good)"},{"location":"4-language-usage/2-variables-and-types/2-numeric-data-types/g-2220/","text":"G-2220: Try to use PLS_INTEGER instead of NUMBER for arithmetic operations with integer values. Critical Efficiency Reason pls_integer having a length of -2,147,483,648 to 2,147,483,647, on a 32bit system. There are many reasons to use pls_integer instead of number : pls_integer uses less memory pls_integer uses machine arithmetic, which is up to three times faster than library arithmetic, which is used by number . Example (bad) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 declare l_result number ( 9 , 0 ) : = 0 ; -- violates also G-2130, G-2230 co_upper_bound constant pls_integer : = 1 e8 ; begin << burning_cpu >> for i in 1 .. co_upper_bound loop if i > 0 then l_result : = l_result + 1 ; end if ; end loop burning_cpu ; sys . dbms_output . put_line ( l_result ); end ; / Example (good) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 declare l_result pls_integer : = 0 ; co_upper_bound constant pls_integer : = 1 e8 ; begin << burning_less_cpu >> for i in 1 .. co_upper_bound loop if i > 0 then l_result : = l_result + 1 ; end if ; end loop burning_less_cpu ; sys . dbms_output . put_line ( l_result ); end ; /","title":"G-2220: Try to use PLS_INTEGER instead of NUMBER for arithmetic operations with integer values."},{"location":"4-language-usage/2-variables-and-types/2-numeric-data-types/g-2220/#g-2220-try-to-use-pls_integer-instead-of-number-for-arithmetic-operations-with-integer-values","text":"Critical Efficiency","title":"G-2220: Try to use PLS_INTEGER instead of NUMBER for arithmetic operations with integer values."},{"location":"4-language-usage/2-variables-and-types/2-numeric-data-types/g-2220/#reason","text":"pls_integer having a length of -2,147,483,648 to 2,147,483,647, on a 32bit system. There are many reasons to use pls_integer instead of number : pls_integer uses less memory pls_integer uses machine arithmetic, which is up to three times faster than library arithmetic, which is used by number .","title":"Reason"},{"location":"4-language-usage/2-variables-and-types/2-numeric-data-types/g-2220/#example-bad","text":"1 2 3 4 5 6 7 8 9 10 11 12 13 14 declare l_result number ( 9 , 0 ) : = 0 ; -- violates also G-2130, G-2230 co_upper_bound constant pls_integer : = 1 e8 ; begin << burning_cpu >> for i in 1 .. co_upper_bound loop if i > 0 then l_result : = l_result + 1 ; end if ; end loop burning_cpu ; sys . dbms_output . put_line ( l_result ); end ; /","title":"Example (bad)"},{"location":"4-language-usage/2-variables-and-types/2-numeric-data-types/g-2220/#example-good","text":"1 2 3 4 5 6 7 8 9 10 11 12 13 14 declare l_result pls_integer : = 0 ; co_upper_bound constant pls_integer : = 1 e8 ; begin << burning_less_cpu >> for i in 1 .. co_upper_bound loop if i > 0 then l_result : = l_result + 1 ; end if ; end loop burning_less_cpu ; sys . dbms_output . put_line ( l_result ); end ; /","title":"Example (good)"},{"location":"4-language-usage/2-variables-and-types/2-numeric-data-types/g-2230/","text":"G-2230: Try to use SIMPLE_INTEGER datatype when appropriate. Critical Efficiency Reason simple_integer does no checks on numeric overflow, which results in better performance compared to the other numeric datatypes. With Oracle Database 11g, the new data type simple_integer has been introduced. It is a sub-type of pls_integer and covers the same range. The basic difference is that simple_integer is always not null . When the value of the declared variable is never going to be null then you can declare it as simple_integer . Another major difference is that you will never face a numeric overflow using simple_integer as this data type wraps around without giving any error. simple_integer data type gives major performance boost over pls_integer when code is compiled in native mode, because arithmetic operations on simple_integer type are performed directly at the hardware level. Example (bad) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 declare l_result number ( 9 , 0 ) : = 0 ; -- violates also G-2130, G-2220 co_upper_bound constant pls_integer : = 1 e8 ; begin << burning_cpu >> for i in 1 .. co_upper_bound loop if i > 0 then l_result : = l_result + 1 ; end if ; end loop burning_cpu ; sys . dbms_output . put_line ( l_result ); end ; / Example (good) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 declare l_result simple_integer : = 0 ; co_upper_bound constant pls_integer : = 1 e8 ; begin << burning_cpu >> for i in 1 .. co_upper_bound loop if i > 0 then l_result : = l_result + 1 ; end if ; end loop burning_cpu ; sys . dbms_output . put_line ( l_result ); end ; /","title":"G-2230: Try to use SIMPLE_INTEGER datatype when appropriate."},{"location":"4-language-usage/2-variables-and-types/2-numeric-data-types/g-2230/#g-2230-try-to-use-simple_integer-datatype-when-appropriate","text":"Critical Efficiency","title":"G-2230: Try to use SIMPLE_INTEGER datatype when appropriate."},{"location":"4-language-usage/2-variables-and-types/2-numeric-data-types/g-2230/#reason","text":"simple_integer does no checks on numeric overflow, which results in better performance compared to the other numeric datatypes. With Oracle Database 11g, the new data type simple_integer has been introduced. It is a sub-type of pls_integer and covers the same range. The basic difference is that simple_integer is always not null . When the value of the declared variable is never going to be null then you can declare it as simple_integer . Another major difference is that you will never face a numeric overflow using simple_integer as this data type wraps around without giving any error. simple_integer data type gives major performance boost over pls_integer when code is compiled in native mode, because arithmetic operations on simple_integer type are performed directly at the hardware level.","title":"Reason"},{"location":"4-language-usage/2-variables-and-types/2-numeric-data-types/g-2230/#example-bad","text":"1 2 3 4 5 6 7 8 9 10 11 12 13 14 declare l_result number ( 9 , 0 ) : = 0 ; -- violates also G-2130, G-2220 co_upper_bound constant pls_integer : = 1 e8 ; begin << burning_cpu >> for i in 1 .. co_upper_bound loop if i > 0 then l_result : = l_result + 1 ; end if ; end loop burning_cpu ; sys . dbms_output . put_line ( l_result ); end ; /","title":"Example (bad)"},{"location":"4-language-usage/2-variables-and-types/2-numeric-data-types/g-2230/#example-good","text":"1 2 3 4 5 6 7 8 9 10 11 12 13 14 declare l_result simple_integer : = 0 ; co_upper_bound constant pls_integer : = 1 e8 ; begin << burning_cpu >> for i in 1 .. co_upper_bound loop if i > 0 then l_result : = l_result + 1 ; end if ; end loop burning_cpu ; sys . dbms_output . put_line ( l_result ); end ; /","title":"Example (good)"},{"location":"4-language-usage/2-variables-and-types/3-character-data-types/g-2310/","text":"G-2310: Avoid using CHAR data type. Blocker Reliability Reason char is a fixed length data type, which should only be used when appropriate. char columns/variables are always filled to its specified lengths; this may lead to unwanted side effects and undesired results. Example (bad) 1 2 3 4 5 create or replace package types_up is subtype description_type is char ( 200 ); end types_up ; / Unexpected trailing spaces can lead to wrong results. 1 2 3 4 5 6 7 8 9 with dept as ( select cast ( department_name as varchar2 ( 30 char )) as dname_vc2 , cast ( department_name as char ( 30 char )) as dname_char from departments ) select count ( * ) from dept where dname_vc2 = dname_char ; 1 2 3 COUNT(*) ---------- 0 Example (good) 1 2 3 4 5 create or replace package types_up is subtype description_type is varchar2 ( 200 char ); end types_up ; /","title":"G-2310: Avoid using CHAR data type."},{"location":"4-language-usage/2-variables-and-types/3-character-data-types/g-2310/#g-2310-avoid-using-char-data-type","text":"Blocker Reliability","title":"G-2310: Avoid using CHAR data type."},{"location":"4-language-usage/2-variables-and-types/3-character-data-types/g-2310/#reason","text":"char is a fixed length data type, which should only be used when appropriate. char columns/variables are always filled to its specified lengths; this may lead to unwanted side effects and undesired results.","title":"Reason"},{"location":"4-language-usage/2-variables-and-types/3-character-data-types/g-2310/#example-bad","text":"1 2 3 4 5 create or replace package types_up is subtype description_type is char ( 200 ); end types_up ; / Unexpected trailing spaces can lead to wrong results. 1 2 3 4 5 6 7 8 9 with dept as ( select cast ( department_name as varchar2 ( 30 char )) as dname_vc2 , cast ( department_name as char ( 30 char )) as dname_char from departments ) select count ( * ) from dept where dname_vc2 = dname_char ; 1 2 3 COUNT(*) ---------- 0","title":"Example (bad)"},{"location":"4-language-usage/2-variables-and-types/3-character-data-types/g-2310/#example-good","text":"1 2 3 4 5 create or replace package types_up is subtype description_type is varchar2 ( 200 char ); end types_up ; /","title":"Example (good)"},{"location":"4-language-usage/2-variables-and-types/3-character-data-types/g-2320/","text":"G-2320: Never use VARCHAR data type. Blocker Portability, Reliability Reason Do not use the varchar data type. Use the varchar2 data type instead. Although the varchar data type is currently synonymous with varchar2 , the varchar data type is scheduled to be redefined as a separate data type used for variable-length character strings compared with different comparison semantics. Example (bad) 1 2 3 4 create or replace package types_up is subtype description_type is varchar ( 200 ); end types_up ; / Example (good) 1 2 3 4 create or replace package types_up is subtype description_type is varchar2 ( 200 char ); end types_up ; /","title":"G-2320: Never use VARCHAR data type."},{"location":"4-language-usage/2-variables-and-types/3-character-data-types/g-2320/#g-2320-never-use-varchar-data-type","text":"Blocker Portability, Reliability","title":"G-2320: Never use VARCHAR data type."},{"location":"4-language-usage/2-variables-and-types/3-character-data-types/g-2320/#reason","text":"Do not use the varchar data type. Use the varchar2 data type instead. Although the varchar data type is currently synonymous with varchar2 , the varchar data type is scheduled to be redefined as a separate data type used for variable-length character strings compared with different comparison semantics.","title":"Reason"},{"location":"4-language-usage/2-variables-and-types/3-character-data-types/g-2320/#example-bad","text":"1 2 3 4 create or replace package types_up is subtype description_type is varchar ( 200 ); end types_up ; /","title":"Example (bad)"},{"location":"4-language-usage/2-variables-and-types/3-character-data-types/g-2320/#example-good","text":"1 2 3 4 create or replace package types_up is subtype description_type is varchar2 ( 200 char ); end types_up ; /","title":"Example (good)"},{"location":"4-language-usage/2-variables-and-types/3-character-data-types/g-2330/","text":"G-2330: Never use zero-length strings to substitute NULL. Blocker Portability, Reliability Reason Today zero-length strings and null are currently handled identical by the Oracle Database. There is no guarantee that this will still be the case in future releases, therefore if you mean null use null . Example (bad) 1 2 3 4 5 6 7 8 9 10 11 create or replace package body constants_up is co_null_string constant types_up . text : = '' ; function null_string return varchar2 deterministic is begin return co_null_string ; end null_string ; end constants_up ; / Example (good) 1 2 3 4 5 6 7 8 9 create or replace package body constants_up is function empty_string return varchar2 deterministic is begin return null ; end empty_string ; end constants_up ; /","title":"G-2330: Never use zero-length strings to substitute NULL."},{"location":"4-language-usage/2-variables-and-types/3-character-data-types/g-2330/#g-2330-never-use-zero-length-strings-to-substitute-null","text":"Blocker Portability, Reliability","title":"G-2330: Never use zero-length strings to substitute NULL."},{"location":"4-language-usage/2-variables-and-types/3-character-data-types/g-2330/#reason","text":"Today zero-length strings and null are currently handled identical by the Oracle Database. There is no guarantee that this will still be the case in future releases, therefore if you mean null use null .","title":"Reason"},{"location":"4-language-usage/2-variables-and-types/3-character-data-types/g-2330/#example-bad","text":"1 2 3 4 5 6 7 8 9 10 11 create or replace package body constants_up is co_null_string constant types_up . text : = '' ; function null_string return varchar2 deterministic is begin return co_null_string ; end null_string ; end constants_up ; /","title":"Example (bad)"},{"location":"4-language-usage/2-variables-and-types/3-character-data-types/g-2330/#example-good","text":"1 2 3 4 5 6 7 8 9 create or replace package body constants_up is function empty_string return varchar2 deterministic is begin return null ; end empty_string ; end constants_up ; /","title":"Example (good)"},{"location":"4-language-usage/2-variables-and-types/3-character-data-types/g-2340/","text":"G-2340: Always define your VARCHAR2 variables using CHAR SEMANTIC (if not defined anchored). Blocker Reliability Reason Changes to the nls_length_semantic will only be picked up by your code after a recompilation. In a multibyte environment a varchar2(10) definition may not necessarily hold 10 characters when multibyte characters are part of the value that should be stored, unless the definition was done using the char semantic. Example (bad) 1 2 3 4 create or replace package types_up is subtype description_type is varchar2 ( 200 ); end types_up ; / Example (good) 1 2 3 4 create or replace package types_up is subtype description_type is varchar2 ( 200 char ); end types_up ; /","title":"G-2340: Always define your VARCHAR2 variables using CHAR SEMANTIC (if not defined anchored)."},{"location":"4-language-usage/2-variables-and-types/3-character-data-types/g-2340/#g-2340-always-define-your-varchar2-variables-using-char-semantic-if-not-defined-anchored","text":"Blocker Reliability","title":"G-2340: Always define your VARCHAR2 variables using CHAR SEMANTIC (if not defined anchored)."},{"location":"4-language-usage/2-variables-and-types/3-character-data-types/g-2340/#reason","text":"Changes to the nls_length_semantic will only be picked up by your code after a recompilation. In a multibyte environment a varchar2(10) definition may not necessarily hold 10 characters when multibyte characters are part of the value that should be stored, unless the definition was done using the char semantic.","title":"Reason"},{"location":"4-language-usage/2-variables-and-types/3-character-data-types/g-2340/#example-bad","text":"1 2 3 4 create or replace package types_up is subtype description_type is varchar2 ( 200 ); end types_up ; /","title":"Example (bad)"},{"location":"4-language-usage/2-variables-and-types/3-character-data-types/g-2340/#example-good","text":"1 2 3 4 create or replace package types_up is subtype description_type is varchar2 ( 200 char ); end types_up ; /","title":"Example (good)"},{"location":"4-language-usage/2-variables-and-types/4-boolean-data-types/g-2410/","text":"G-2410: Try to use boolean data type for values with dual meaning. Minor Maintainability Reason The use of true and false clarifies that this is a boolean value and makes the code easier to read. Example (bad) 1 2 3 4 5 6 7 8 9 10 11 12 13 declare co_newfile constant pls_integer : = 1000 ; co_oldfile constant pls_integer : = 500 ; l_bigger pls_integer ; begin if co_newfile < co_oldfile then l_bigger : = constants_up . co_numeric_true ; else l_bigger : = constants_up . co_numeric_false ; end if ; do_something ( l_bigger ); end ; / Example (better) 1 2 3 4 5 6 7 8 9 10 11 12 13 declare co_newfile constant pls_integer : = 1000 ; co_oldfile constant pls_integer : = 500 ; l_bigger boolean ; begin if co_newfile < co_oldfile then l_bigger : = true ; else l_bigger : = false ; end if ; do_something ( l_bigger ); end ; / Example (good) 1 2 3 4 5 6 7 8 9 declare co_newfile constant pls_integer : = 1000 ; co_oldfile constant pls_integer : = 500 ; l_bigger boolean ; begin l_bigger : = nvl ( co_newfile < co_oldfile , false ); do_something ( l_bigger ); end ; /","title":"G-2410: Try to use boolean data type for values with dual meaning."},{"location":"4-language-usage/2-variables-and-types/4-boolean-data-types/g-2410/#g-2410-try-to-use-boolean-data-type-for-values-with-dual-meaning","text":"Minor Maintainability","title":"G-2410: Try to use boolean data type for values with dual meaning."},{"location":"4-language-usage/2-variables-and-types/4-boolean-data-types/g-2410/#reason","text":"The use of true and false clarifies that this is a boolean value and makes the code easier to read.","title":"Reason"},{"location":"4-language-usage/2-variables-and-types/4-boolean-data-types/g-2410/#example-bad","text":"1 2 3 4 5 6 7 8 9 10 11 12 13 declare co_newfile constant pls_integer : = 1000 ; co_oldfile constant pls_integer : = 500 ; l_bigger pls_integer ; begin if co_newfile < co_oldfile then l_bigger : = constants_up . co_numeric_true ; else l_bigger : = constants_up . co_numeric_false ; end if ; do_something ( l_bigger ); end ; /","title":"Example (bad)"},{"location":"4-language-usage/2-variables-and-types/4-boolean-data-types/g-2410/#example-better","text":"1 2 3 4 5 6 7 8 9 10 11 12 13 declare co_newfile constant pls_integer : = 1000 ; co_oldfile constant pls_integer : = 500 ; l_bigger boolean ; begin if co_newfile < co_oldfile then l_bigger : = true ; else l_bigger : = false ; end if ; do_something ( l_bigger ); end ; /","title":"Example (better)"},{"location":"4-language-usage/2-variables-and-types/4-boolean-data-types/g-2410/#example-good","text":"1 2 3 4 5 6 7 8 9 declare co_newfile constant pls_integer : = 1000 ; co_oldfile constant pls_integer : = 500 ; l_bigger boolean ; begin l_bigger : = nvl ( co_newfile < co_oldfile , false ); do_something ( l_bigger ); end ; /","title":"Example (good)"},{"location":"4-language-usage/2-variables-and-types/5-large-objects/g-2510/","text":"G-2510: Avoid using the LONG and LONG RAW data types. Major Portability Reason long and long raw data types have been deprecated by the Oracle Database since version 8i - support might be discontinued in future Oracle Database releases. There are many constraints to long datatypes in comparison to the lob types. Example (bad) 1 2 3 4 5 6 7 8 declare l_long long ; -- violates also G-2130 l_raw long raw ; -- violates also G-2130 begin do_something ( l_long ); do_something ( l_raw ); end ; / Example (good) 1 2 3 4 5 6 7 8 declare l_long clob ; l_raw blob ; begin do_something ( l_long ); do_something ( l_raw ); end ; /","title":"G-2510: Avoid using the LONG and LONG RAW data types."},{"location":"4-language-usage/2-variables-and-types/5-large-objects/g-2510/#g-2510-avoid-using-the-long-and-long-raw-data-types","text":"Major Portability","title":"G-2510: Avoid using the LONG and LONG RAW data types."},{"location":"4-language-usage/2-variables-and-types/5-large-objects/g-2510/#reason","text":"long and long raw data types have been deprecated by the Oracle Database since version 8i - support might be discontinued in future Oracle Database releases. There are many constraints to long datatypes in comparison to the lob types.","title":"Reason"},{"location":"4-language-usage/2-variables-and-types/5-large-objects/g-2510/#example-bad","text":"1 2 3 4 5 6 7 8 declare l_long long ; -- violates also G-2130 l_raw long raw ; -- violates also G-2130 begin do_something ( l_long ); do_something ( l_raw ); end ; /","title":"Example (bad)"},{"location":"4-language-usage/2-variables-and-types/5-large-objects/g-2510/#example-good","text":"1 2 3 4 5 6 7 8 declare l_long clob ; l_raw blob ; begin do_something ( l_long ); do_something ( l_raw ); end ; /","title":"Example (good)"},{"location":"4-language-usage/2-variables-and-types/6-cursor-variables/g-2610/","text":"G-2610: Never use self-defined weak ref cursor types. Minor Changeability, Maintainability, Portability, Reusability Reason There is no reason to define your own weak ref cursor types, as they are not different from the built-in sys_refcursor . Introducing your own types just gives you unnecessary maintenance to perform. Example (bad) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 declare type local_weak_cursor_type is ref cursor ; c_data local_weak_cursor_type ; begin if configuration . use_employee then open c_data for select e . employee_id , e . first_name , e . last_name from employees e ; else open c_data for select e . emp_id , e . name from emp e ; end if ; end ; / Example (good) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 declare c_data sys_refcursor ; begin if configuration . use_employee then open c_data for select e . employee_id , e . first_name , e . last_name from employees e ; else open c_data for select e . emp_id , e . name from emp e ; end if ; end ; /","title":"G-2610: Never use self-defined weak ref cursor types."},{"location":"4-language-usage/2-variables-and-types/6-cursor-variables/g-2610/#g-2610-never-use-self-defined-weak-ref-cursor-types","text":"Minor Changeability, Maintainability, Portability, Reusability","title":"G-2610: Never use self-defined weak ref cursor types."},{"location":"4-language-usage/2-variables-and-types/6-cursor-variables/g-2610/#reason","text":"There is no reason to define your own weak ref cursor types, as they are not different from the built-in sys_refcursor . Introducing your own types just gives you unnecessary maintenance to perform.","title":"Reason"},{"location":"4-language-usage/2-variables-and-types/6-cursor-variables/g-2610/#example-bad","text":"1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 declare type local_weak_cursor_type is ref cursor ; c_data local_weak_cursor_type ; begin if configuration . use_employee then open c_data for select e . employee_id , e . first_name , e . last_name from employees e ; else open c_data for select e . emp_id , e . name from emp e ; end if ; end ; /","title":"Example (bad)"},{"location":"4-language-usage/2-variables-and-types/6-cursor-variables/g-2610/#example-good","text":"1 2 3 4 5 6 7 8 9 10 11 12 13 14 declare c_data sys_refcursor ; begin if configuration . use_employee then open c_data for select e . employee_id , e . first_name , e . last_name from employees e ; else open c_data for select e . emp_id , e . name from emp e ; end if ; end ; /","title":"Example (good)"},{"location":"4-language-usage/3-dml-and-sql/1-general/g-3110/","text":"G-3110: Always specify the target columns when coding an insert statement. Blocker Maintainability, Reliability Reason Data structures often change. Having the target columns in your insert statements will lead to change-resistant code. Example (bad) 1 2 3 4 5 6 7 8 9 10 11 12 13 create or replace package body dept_api is procedure ins_dept ( in_dept_row in dept % rowtype ) is begin insert into departments values ( departments_seq . nextval , in_dept_row . department_name , in_dept_row . manager_id , in_dept_row . location_id ); end ins_dept ; end dept_api ; / Example (good) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 create or replace package body dept_api is procedure ins_dept ( in_dept_row in dept % rowtype ) is begin insert into departments ( department_id , department_name , manager_id , location_id ) values ( departments_seq . nextval , in_dept_row . department_name , in_dept_row . manager_id , in_dept_row . location_id ); end ins_dept ; end dept_api ; /","title":"G-3110: Always specify the target columns when coding an insert statement."},{"location":"4-language-usage/3-dml-and-sql/1-general/g-3110/#g-3110-always-specify-the-target-columns-when-coding-an-insert-statement","text":"Blocker Maintainability, Reliability","title":"G-3110: Always specify the target columns when coding an insert statement."},{"location":"4-language-usage/3-dml-and-sql/1-general/g-3110/#reason","text":"Data structures often change. Having the target columns in your insert statements will lead to change-resistant code.","title":"Reason"},{"location":"4-language-usage/3-dml-and-sql/1-general/g-3110/#example-bad","text":"1 2 3 4 5 6 7 8 9 10 11 12 13 create or replace package body dept_api is procedure ins_dept ( in_dept_row in dept % rowtype ) is begin insert into departments values ( departments_seq . nextval , in_dept_row . department_name , in_dept_row . manager_id , in_dept_row . location_id ); end ins_dept ; end dept_api ; /","title":"Example (bad)"},{"location":"4-language-usage/3-dml-and-sql/1-general/g-3110/#example-good","text":"1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 create or replace package body dept_api is procedure ins_dept ( in_dept_row in dept % rowtype ) is begin insert into departments ( department_id , department_name , manager_id , location_id ) values ( departments_seq . nextval , in_dept_row . department_name , in_dept_row . manager_id , in_dept_row . location_id ); end ins_dept ; end dept_api ; /","title":"Example (good)"},{"location":"4-language-usage/3-dml-and-sql/1-general/g-3115/","text":"G-3115: Avoid self-assigning a column. Blocker Maintainability Reason There is normally no reason to assign a column to itself. It is either a redundant statement that should be removed, or it is a mistake where some other value was intended in the assignment. One exception to this rule can be when you attempt to fire cross edition triggers when using Edition Based Redefinition. Example (bad) 1 2 update employees set first_name = first_name ; Example (good) 1 2 update employees set first_name = initcap ( first_name );","title":"G-3115: Avoid self-assigning a column."},{"location":"4-language-usage/3-dml-and-sql/1-general/g-3115/#g-3115-avoid-self-assigning-a-column","text":"Blocker Maintainability","title":"G-3115: Avoid self-assigning a column."},{"location":"4-language-usage/3-dml-and-sql/1-general/g-3115/#reason","text":"There is normally no reason to assign a column to itself. It is either a redundant statement that should be removed, or it is a mistake where some other value was intended in the assignment. One exception to this rule can be when you attempt to fire cross edition triggers when using Edition Based Redefinition.","title":"Reason"},{"location":"4-language-usage/3-dml-and-sql/1-general/g-3115/#example-bad","text":"1 2 update employees set first_name = first_name ;","title":"Example (bad)"},{"location":"4-language-usage/3-dml-and-sql/1-general/g-3115/#example-good","text":"1 2 update employees set first_name = initcap ( first_name );","title":"Example (good)"},{"location":"4-language-usage/3-dml-and-sql/1-general/g-3120/","text":"G-3120: Always use table aliases when your SQL statement involves more than one source. Blocker Maintainability Reason It is more human readable to use aliases instead of writing columns with no table information. Especially when using subqueries the omission of table aliases may end in unexpected behavior and result. Example (bad) 1 2 3 4 5 6 7 select last_name , first_name , department_name from employees join departments using ( department_id ) where extract ( month from hire_date ) = extract ( month from sysdate ); If the jobs table has no employee_id column and employees has one this query will not raise an error but return all rows of the employees table as a subquery is allowed to access columns of all its parent tables - this construct is known as correlated subquery. 1 2 3 4 5 6 7 8 select last_name , first_name from employees where employee_id in ( select employee_id from jobs where job_title like '%Manager%' -- NOSONAR: G-1050 literal is ok for a standalone query ); Example (better) 1 2 3 4 5 6 7 select e . last_name , e . first_name , d . department_name from employees e join departments d on ( e . department_id = d . department_id ) where extract ( month from e . hire_date ) = extract ( month from sysdate ); Example (good) Using meaningful aliases improves the readability of your code. 1 2 3 4 5 6 7 select emp . last_name , emp . first_name , dept . department_name from employees emp join departments dept on ( emp . department_id = dept . department_id ) where extract ( month from emp . hire_date ) = extract ( month from sysdate ); If the jobs table has no employee_id column this query will return an error due to the directive (given by adding the table alias to the column) to read the employee_id column from the jobs table. 1 2 3 4 5 6 7 8 select emp . last_name , emp . first_name from employees emp where emp . employee_id in ( select j . employee_id from jobs j where j . job_title like '%Manager%' -- NOSONAR: G-1050 literal is ok for a standalone query );","title":"G-3120: Always use table aliases when your SQL statement involves more than one source."},{"location":"4-language-usage/3-dml-and-sql/1-general/g-3120/#g-3120-always-use-table-aliases-when-your-sql-statement-involves-more-than-one-source","text":"Blocker Maintainability","title":"G-3120: Always use table aliases when your SQL statement involves more than one source."},{"location":"4-language-usage/3-dml-and-sql/1-general/g-3120/#reason","text":"It is more human readable to use aliases instead of writing columns with no table information. Especially when using subqueries the omission of table aliases may end in unexpected behavior and result.","title":"Reason"},{"location":"4-language-usage/3-dml-and-sql/1-general/g-3120/#example-bad","text":"1 2 3 4 5 6 7 select last_name , first_name , department_name from employees join departments using ( department_id ) where extract ( month from hire_date ) = extract ( month from sysdate ); If the jobs table has no employee_id column and employees has one this query will not raise an error but return all rows of the employees table as a subquery is allowed to access columns of all its parent tables - this construct is known as correlated subquery. 1 2 3 4 5 6 7 8 select last_name , first_name from employees where employee_id in ( select employee_id from jobs where job_title like '%Manager%' -- NOSONAR: G-1050 literal is ok for a standalone query );","title":"Example (bad)"},{"location":"4-language-usage/3-dml-and-sql/1-general/g-3120/#example-better","text":"1 2 3 4 5 6 7 select e . last_name , e . first_name , d . department_name from employees e join departments d on ( e . department_id = d . department_id ) where extract ( month from e . hire_date ) = extract ( month from sysdate );","title":"Example (better)"},{"location":"4-language-usage/3-dml-and-sql/1-general/g-3120/#example-good","text":"Using meaningful aliases improves the readability of your code. 1 2 3 4 5 6 7 select emp . last_name , emp . first_name , dept . department_name from employees emp join departments dept on ( emp . department_id = dept . department_id ) where extract ( month from emp . hire_date ) = extract ( month from sysdate ); If the jobs table has no employee_id column this query will return an error due to the directive (given by adding the table alias to the column) to read the employee_id column from the jobs table. 1 2 3 4 5 6 7 8 select emp . last_name , emp . first_name from employees emp where emp . employee_id in ( select j . employee_id from jobs j where j . job_title like '%Manager%' -- NOSONAR: G-1050 literal is ok for a standalone query );","title":"Example (good)"},{"location":"4-language-usage/3-dml-and-sql/1-general/g-3130/","text":"G-3130: Try to use ANSI SQL-92 join syntax. Major Maintainability, Portability Reason ANSI SQL-92 join syntax supports the full outer join. A further advantage of the ANSI SQL-92 join syntax is the separation of the join condition from the query filters. Example (bad) 1 2 3 4 5 6 7 8 select e . employee_id , e . last_name , e . first_name , d . department_name from employees e , departments d where e . department_id = d . department_id and extract ( month from e . hire_date ) = extract ( month from sysdate ); Example (good) 1 2 3 4 5 6 7 8 select emp . employee_id , emp . last_name , emp . first_name , dept . department_name from employees emp join departments dept on dept . department_id = emp . department_id where extract ( month from emp . hire_date ) = extract ( month from sysdate );","title":"G-3130: Try to use ANSI SQL-92 join syntax."},{"location":"4-language-usage/3-dml-and-sql/1-general/g-3130/#g-3130-try-to-use-ansi-sql-92-join-syntax","text":"Major Maintainability, Portability","title":"G-3130: Try to use ANSI SQL-92 join syntax."},{"location":"4-language-usage/3-dml-and-sql/1-general/g-3130/#reason","text":"ANSI SQL-92 join syntax supports the full outer join. A further advantage of the ANSI SQL-92 join syntax is the separation of the join condition from the query filters.","title":"Reason"},{"location":"4-language-usage/3-dml-and-sql/1-general/g-3130/#example-bad","text":"1 2 3 4 5 6 7 8 select e . employee_id , e . last_name , e . first_name , d . department_name from employees e , departments d where e . department_id = d . department_id and extract ( month from e . hire_date ) = extract ( month from sysdate );","title":"Example (bad)"},{"location":"4-language-usage/3-dml-and-sql/1-general/g-3130/#example-good","text":"1 2 3 4 5 6 7 8 select emp . employee_id , emp . last_name , emp . first_name , dept . department_name from employees emp join departments dept on dept . department_id = emp . department_id where extract ( month from emp . hire_date ) = extract ( month from sysdate );","title":"Example (good)"},{"location":"4-language-usage/3-dml-and-sql/1-general/g-3140/","text":"G-3140: Try to use anchored records as targets for your cursors. Major Maintainability, Reliability Reason Using cursor-anchored records as targets for your cursors results enables the possibility of changing the structure of the cursor without regard to the target structure. Example (bad) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 declare cursor c_employees is select employee_id , first_name , last_name from employees ; l_employee_id employees . employee_id % type ; l_first_name employees . first_name % type ; l_last_name employees . last_name % type ; begin open c_employees ; fetch c_employees into l_employee_id , l_first_name , l_last_name ; << process_employees >> while c_employees % found loop -- do something with the data fetch c_employees into l_employee_id , l_first_name , l_last_name ; end loop process_employees ; close c_employees ; end ; / Example (good) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 declare cursor c_employees is select employee_id , first_name , last_name from employees ; r_employee c_employees % rowtype ; begin open c_employees ; fetch c_employees into r_employee ; << process_employees >> while c_employees % found loop -- do something with the data fetch c_employees into r_employee ; end loop process_employees ; close c_employees ; end ; /","title":"G-3140: Try to use anchored records as targets for your cursors."},{"location":"4-language-usage/3-dml-and-sql/1-general/g-3140/#g-3140-try-to-use-anchored-records-as-targets-for-your-cursors","text":"Major Maintainability, Reliability","title":"G-3140: Try to use anchored records as targets for your cursors."},{"location":"4-language-usage/3-dml-and-sql/1-general/g-3140/#reason","text":"Using cursor-anchored records as targets for your cursors results enables the possibility of changing the structure of the cursor without regard to the target structure.","title":"Reason"},{"location":"4-language-usage/3-dml-and-sql/1-general/g-3140/#example-bad","text":"1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 declare cursor c_employees is select employee_id , first_name , last_name from employees ; l_employee_id employees . employee_id % type ; l_first_name employees . first_name % type ; l_last_name employees . last_name % type ; begin open c_employees ; fetch c_employees into l_employee_id , l_first_name , l_last_name ; << process_employees >> while c_employees % found loop -- do something with the data fetch c_employees into l_employee_id , l_first_name , l_last_name ; end loop process_employees ; close c_employees ; end ; /","title":"Example (bad)"},{"location":"4-language-usage/3-dml-and-sql/1-general/g-3140/#example-good","text":"1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 declare cursor c_employees is select employee_id , first_name , last_name from employees ; r_employee c_employees % rowtype ; begin open c_employees ; fetch c_employees into r_employee ; << process_employees >> while c_employees % found loop -- do something with the data fetch c_employees into r_employee ; end loop process_employees ; close c_employees ; end ; /","title":"Example (good)"},{"location":"4-language-usage/3-dml-and-sql/1-general/g-3145/","text":"G-3145: Avoid using SELECT * directly from a table or view. Blocker Efficiency, Maintainability, Reliability, Testability Reason Use of SELECT * when querying a table or view makes it impossible for the optimizer to take into account which columns will actually be used by the application, potentially leading to sub-optimal execution plans (for example full scanning the table where a full scan of an index might have sufficed.) Also SELECT * possibly can break your code in the future in case of changes to the table structure (for example new or invisible columns.) Exceptions to the rule can be when querying an inline view (where the SELECT * is just to avoid repeating same columns as inside the inline view), or when fetching into records defined as MYTABLE%ROWTYPE for the purpose of processing all columns of the record. Example (bad) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 begin << raise_salary >> for r_employee in ( select * from employees ) loop employee_api . calculate_raise_by_seniority ( id_in => r_employee . id , salary_in => r_employee . salary , hiredate_in => r_employee . hiredate ); end loop raise_salary ; end ; / Example (good) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 begin << raise_salary >> for r_employee in ( select id , salary , hiredate from employees ) loop employee_api . calculate_raise_by_seniority ( id_in => r_employee . id , salary_in => r_employee . salary , hiredate_in => r_employee . hiredate ); end loop raise_salary ; end ; /","title":"G-3145: Avoid using SELECT * directly from a table or view."},{"location":"4-language-usage/3-dml-and-sql/1-general/g-3145/#g-3145-avoid-using-select-directly-from-a-table-or-view","text":"Blocker Efficiency, Maintainability, Reliability, Testability","title":"G-3145: Avoid using SELECT * directly from a table or view."},{"location":"4-language-usage/3-dml-and-sql/1-general/g-3145/#reason","text":"Use of SELECT * when querying a table or view makes it impossible for the optimizer to take into account which columns will actually be used by the application, potentially leading to sub-optimal execution plans (for example full scanning the table where a full scan of an index might have sufficed.) Also SELECT * possibly can break your code in the future in case of changes to the table structure (for example new or invisible columns.) Exceptions to the rule can be when querying an inline view (where the SELECT * is just to avoid repeating same columns as inside the inline view), or when fetching into records defined as MYTABLE%ROWTYPE for the purpose of processing all columns of the record.","title":"Reason"},{"location":"4-language-usage/3-dml-and-sql/1-general/g-3145/#example-bad","text":"1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 begin << raise_salary >> for r_employee in ( select * from employees ) loop employee_api . calculate_raise_by_seniority ( id_in => r_employee . id , salary_in => r_employee . salary , hiredate_in => r_employee . hiredate ); end loop raise_salary ; end ; /","title":"Example (bad)"},{"location":"4-language-usage/3-dml-and-sql/1-general/g-3145/#example-good","text":"1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 begin << raise_salary >> for r_employee in ( select id , salary , hiredate from employees ) loop employee_api . calculate_raise_by_seniority ( id_in => r_employee . id , salary_in => r_employee . salary , hiredate_in => r_employee . hiredate ); end loop raise_salary ; end ; /","title":"Example (good)"},{"location":"4-language-usage/3-dml-and-sql/1-general/g-3150/","text":"G-3150: Try to use identity columns for surrogate keys. Critical Maintainability, Reliability Restriction Oracle Database 12c Reason An identity column is a surrogate key by design \u2013 there is no reason why we should not take advantage of this natural implementation when the keys are generated on database level. Using identity column (and therefore assigning sequences as default values on columns) has a huge performance advantage over a trigger solution. Example (bad) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 create table locations ( location_id number ( 10 ) not null , location_name varchar2 ( 60 char ) not null , city varchar2 ( 30 char ) not null , constraint locations_pk primary key ( location_id ) ) / create sequence location_seq start with 1 cache 20 / create or replace trigger location_br_i before insert on locations for each row begin : new . location_id : = location_seq . nextval ; end ; / Example (good) 1 2 3 4 5 6 create table locations ( location_id number ( 10 ) generated always as identity , location_name varchar2 ( 60 char ) not null , city varchar2 ( 30 char ) not null , constraint locations_pk primary key ( location_id )) / generated always as identity ensures that the location_id is populated by a sequence. It is not possible to override the behavior in the application. However, if you use a framework that produces an insert statement including the surrogate key column, and you cannot change this behavior, then you have to use the generated by default on null as identity option. This has the downside that the application may pass a value, which might lead to an immediate or delayed ORA-00001: unique constraint violated error.","title":"G-3150: Try to use identity columns for surrogate keys."},{"location":"4-language-usage/3-dml-and-sql/1-general/g-3150/#g-3150-try-to-use-identity-columns-for-surrogate-keys","text":"Critical Maintainability, Reliability","title":"G-3150: Try to use identity columns for surrogate keys."},{"location":"4-language-usage/3-dml-and-sql/1-general/g-3150/#restriction","text":"Oracle Database 12c","title":"Restriction"},{"location":"4-language-usage/3-dml-and-sql/1-general/g-3150/#reason","text":"An identity column is a surrogate key by design \u2013 there is no reason why we should not take advantage of this natural implementation when the keys are generated on database level. Using identity column (and therefore assigning sequences as default values on columns) has a huge performance advantage over a trigger solution.","title":"Reason"},{"location":"4-language-usage/3-dml-and-sql/1-general/g-3150/#example-bad","text":"1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 create table locations ( location_id number ( 10 ) not null , location_name varchar2 ( 60 char ) not null , city varchar2 ( 30 char ) not null , constraint locations_pk primary key ( location_id ) ) / create sequence location_seq start with 1 cache 20 / create or replace trigger location_br_i before insert on locations for each row begin : new . location_id : = location_seq . nextval ; end ; /","title":"Example (bad)"},{"location":"4-language-usage/3-dml-and-sql/1-general/g-3150/#example-good","text":"1 2 3 4 5 6 create table locations ( location_id number ( 10 ) generated always as identity , location_name varchar2 ( 60 char ) not null , city varchar2 ( 30 char ) not null , constraint locations_pk primary key ( location_id )) / generated always as identity ensures that the location_id is populated by a sequence. It is not possible to override the behavior in the application. However, if you use a framework that produces an insert statement including the surrogate key column, and you cannot change this behavior, then you have to use the generated by default on null as identity option. This has the downside that the application may pass a value, which might lead to an immediate or delayed ORA-00001: unique constraint violated error.","title":"Example (good)"},{"location":"4-language-usage/3-dml-and-sql/1-general/g-3160/","text":"G-3160: Avoid visible virtual columns. Blocker Maintainability, Reliability Unsupported in db* CODECOP Validators We cannot identify the type of a column. Requires create table and alter table parser support or access to the Oracle Data Dictionary. Restriction Oracle Database 12c Reason In contrast to visible columns, invisible columns are not part of a record defined using %rowtype construct. This is helpful as a virtual column may not be programmatically populated. If your virtual column is visible you have to manually define the record types used in API packages to be able to exclude them from being part of the record definition. Invisible columns may be accessed by explicitly adding them to the column list in a select statement. Example (bad) 1 2 3 4 5 6 7 8 9 10 11 12 declare r_employee employees % rowtype ; co_id constant employees . employee_id % type : = 107 ; begin r_employee : = employee_api . employee_by_id ( l_id ); r_employee . salary : = r_employee . salary * constants_up . small_increase (); update employees set row = r_employee where employee_id = co_id ; end ; / 1 2 3 Error report - ORA-54017: update operation disallowed on virtual columns ORA-06512: at line 9 Example (good) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 alter table employees add total_salary invisible generated always as ( salary + nvl ( commission_pct , 0 ) * salary ) / declare r_employee employees % rowtype ; co_id constant employees . employee_id % type : = 107 ; begin r_employee : = employee_api . employee_by_id ( co_id ); r_employee . salary : = r_employee . salary * constants_up . small_increase (); update employees set row = r_employee where employee_id = co_id ; end ; /","title":"G-3160: Avoid visible virtual columns."},{"location":"4-language-usage/3-dml-and-sql/1-general/g-3160/#g-3160-avoid-visible-virtual-columns","text":"Blocker Maintainability, Reliability Unsupported in db* CODECOP Validators We cannot identify the type of a column. Requires create table and alter table parser support or access to the Oracle Data Dictionary.","title":"G-3160: Avoid visible virtual columns."},{"location":"4-language-usage/3-dml-and-sql/1-general/g-3160/#restriction","text":"Oracle Database 12c","title":"Restriction"},{"location":"4-language-usage/3-dml-and-sql/1-general/g-3160/#reason","text":"In contrast to visible columns, invisible columns are not part of a record defined using %rowtype construct. This is helpful as a virtual column may not be programmatically populated. If your virtual column is visible you have to manually define the record types used in API packages to be able to exclude them from being part of the record definition. Invisible columns may be accessed by explicitly adding them to the column list in a select statement.","title":"Reason"},{"location":"4-language-usage/3-dml-and-sql/1-general/g-3160/#example-bad","text":"1 2 3 4 5 6 7 8 9 10 11 12 declare r_employee employees % rowtype ; co_id constant employees . employee_id % type : = 107 ; begin r_employee : = employee_api . employee_by_id ( l_id ); r_employee . salary : = r_employee . salary * constants_up . small_increase (); update employees set row = r_employee where employee_id = co_id ; end ; / 1 2 3 Error report - ORA-54017: update operation disallowed on virtual columns ORA-06512: at line 9","title":"Example (bad)"},{"location":"4-language-usage/3-dml-and-sql/1-general/g-3160/#example-good","text":"1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 alter table employees add total_salary invisible generated always as ( salary + nvl ( commission_pct , 0 ) * salary ) / declare r_employee employees % rowtype ; co_id constant employees . employee_id % type : = 107 ; begin r_employee : = employee_api . employee_by_id ( co_id ); r_employee . salary : = r_employee . salary * constants_up . small_increase (); update employees set row = r_employee where employee_id = co_id ; end ; /","title":"Example (good)"},{"location":"4-language-usage/3-dml-and-sql/1-general/g-3170/","text":"G-3170: Always use DEFAULT ON NULL declarations to assign default values to table columns if you refuse to store NULL values. Blocker Reliability Unsupported in db* CODECOP Validators We cannot identify column default values. Requires create table and alter table parser support or access to the Oracle Data Dictionary. Restriction Oracle Database 12c Reason Default values have been nullifiable until Oracle Database 12c. Meaning any tool sending null as a value for a column having a default value bypassed the default value. Starting with Oracle Database 12c default definitions may have an on null definition in addition, which will assign the default value in case of a null value too. Example (bad) 1 2 3 4 5 6 7 8 9 create table null_test ( test_case number ( 2 ) not null , column_defaulted varchar2 ( 10 char ) default 'Default' ) / insert into null_test ( test_case , column_defaulted ) values ( 1 , 'Value' ); -- NOSONAR: G-1050 literal is ok for a standalone insert insert into null_test ( test_case , column_defaulted ) values ( 2 , default ); -- NOSONAR: G-1050 literal is ok for a standalone insert insert into null_test ( test_case , column_defaulted ) values ( 3 , null ); -- NOSONAR: G-1050 literal is ok for a standalone insert select test_case , column_defaulted from null_test ; 1 2 3 4 5 TEST_CASE COLUMN_DEF --------- ----------- 1 Value 2 Default 3 Example (good) 1 2 3 4 5 6 7 8 9 create table null_test ( test_case number ( 2 ) not null , column_defaulted varchar2 ( 10 char ) default on null 'Default' ) / insert into null_test ( test_case , column_defaulted ) values ( 1 , 'Value' ); -- NOSONAR: G-1050 literal is ok for a standalone insert insert into null_test ( test_case , column_defaulted ) values ( 2 , default ); -- NOSONAR: G-1050 literal is ok for a standalone insert insert into null_test ( test_case , column_defaulted ) values ( 3 , null ); -- NOSONAR: G-1050 literal is ok for a standalone insert select test_case , column_defaulted from null_test ; 1 2 3 4 5 TEST_CASE COLUMN_DEF ---------- ---------- 1 Value 2 Default 3 Default","title":"G-3170: Always use DEFAULT ON NULL declarations to assign default values to table columns if you refuse to store NULL values."},{"location":"4-language-usage/3-dml-and-sql/1-general/g-3170/#g-3170-always-use-default-on-null-declarations-to-assign-default-values-to-table-columns-if-you-refuse-to-store-null-values","text":"Blocker Reliability Unsupported in db* CODECOP Validators We cannot identify column default values. Requires create table and alter table parser support or access to the Oracle Data Dictionary.","title":"G-3170: Always use DEFAULT ON NULL declarations to assign default values to table columns if you refuse to store NULL values."},{"location":"4-language-usage/3-dml-and-sql/1-general/g-3170/#restriction","text":"Oracle Database 12c","title":"Restriction"},{"location":"4-language-usage/3-dml-and-sql/1-general/g-3170/#reason","text":"Default values have been nullifiable until Oracle Database 12c. Meaning any tool sending null as a value for a column having a default value bypassed the default value. Starting with Oracle Database 12c default definitions may have an on null definition in addition, which will assign the default value in case of a null value too.","title":"Reason"},{"location":"4-language-usage/3-dml-and-sql/1-general/g-3170/#example-bad","text":"1 2 3 4 5 6 7 8 9 create table null_test ( test_case number ( 2 ) not null , column_defaulted varchar2 ( 10 char ) default 'Default' ) / insert into null_test ( test_case , column_defaulted ) values ( 1 , 'Value' ); -- NOSONAR: G-1050 literal is ok for a standalone insert insert into null_test ( test_case , column_defaulted ) values ( 2 , default ); -- NOSONAR: G-1050 literal is ok for a standalone insert insert into null_test ( test_case , column_defaulted ) values ( 3 , null ); -- NOSONAR: G-1050 literal is ok for a standalone insert select test_case , column_defaulted from null_test ; 1 2 3 4 5 TEST_CASE COLUMN_DEF --------- ----------- 1 Value 2 Default 3","title":"Example (bad)"},{"location":"4-language-usage/3-dml-and-sql/1-general/g-3170/#example-good","text":"1 2 3 4 5 6 7 8 9 create table null_test ( test_case number ( 2 ) not null , column_defaulted varchar2 ( 10 char ) default on null 'Default' ) / insert into null_test ( test_case , column_defaulted ) values ( 1 , 'Value' ); -- NOSONAR: G-1050 literal is ok for a standalone insert insert into null_test ( test_case , column_defaulted ) values ( 2 , default ); -- NOSONAR: G-1050 literal is ok for a standalone insert insert into null_test ( test_case , column_defaulted ) values ( 3 , null ); -- NOSONAR: G-1050 literal is ok for a standalone insert select test_case , column_defaulted from null_test ; 1 2 3 4 5 TEST_CASE COLUMN_DEF ---------- ---------- 1 Value 2 Default 3 Default","title":"Example (good)"},{"location":"4-language-usage/3-dml-and-sql/1-general/g-3180/","text":"G-3180: Always specify column names instead of positional references in ORDER BY clauses. Major Changeability, Reliability Reason If you change your select list afterwards the order by will still work but order your rows differently, when not changing the positional number. Furthermore, it is not comfortable to the readers of the code, if they have to count the columns in the select list to know the way the result is ordered. Example (bad) 1 2 3 4 5 6 select upper ( first_name ) , last_name , salary , hire_date from employees order by 4 , 1 , 3 ; Example (good) 1 2 3 4 5 6 7 8 select upper ( first_name ) as first_name , last_name , salary , hire_date from employees order by hire_date , first_name , salary ;","title":"G-3180: Always specify column names instead of positional references in ORDER BY clauses."},{"location":"4-language-usage/3-dml-and-sql/1-general/g-3180/#g-3180-always-specify-column-names-instead-of-positional-references-in-order-by-clauses","text":"Major Changeability, Reliability","title":"G-3180: Always specify column names instead of positional references in ORDER BY clauses."},{"location":"4-language-usage/3-dml-and-sql/1-general/g-3180/#reason","text":"If you change your select list afterwards the order by will still work but order your rows differently, when not changing the positional number. Furthermore, it is not comfortable to the readers of the code, if they have to count the columns in the select list to know the way the result is ordered.","title":"Reason"},{"location":"4-language-usage/3-dml-and-sql/1-general/g-3180/#example-bad","text":"1 2 3 4 5 6 select upper ( first_name ) , last_name , salary , hire_date from employees order by 4 , 1 , 3 ;","title":"Example (bad)"},{"location":"4-language-usage/3-dml-and-sql/1-general/g-3180/#example-good","text":"1 2 3 4 5 6 7 8 select upper ( first_name ) as first_name , last_name , salary , hire_date from employees order by hire_date , first_name , salary ;","title":"Example (good)"},{"location":"4-language-usage/3-dml-and-sql/1-general/g-3182/","text":"G-3182: Always specify column names/aliases instead of positional references in GROUP BY clauses. Blocker Reliability Restriction Oracle Database 23c Reason If you use a numeric literal in the group by clause in an Oracle Database prior to version 23c, then this literal is not required. It is simply a constant. Starting with Oracle Database 23c, it is possible to use a literal in the group by clause to refer to a column name or column alias in the select list. However, this only works if the group_by_position_enabled parameter is set to true . In any case, it is not convenient for the readers of the code to have to count the columns in the select list to know how the result is grouped. Since the meaning of a literal depends on the configuration and database version, the intention is unclear and might lead to an incorrect result. Example (bad) 1 2 3 4 5 select job_id , sum ( salary ) as sum_salary from employees group by job_id , 2 order by job_id ; Example (good) 1 2 3 4 5 select job_id , sum ( salary ) as sum_salary from employees group by job_id order by job_id ;","title":"G-3182: Always specify column names/aliases instead of positional references in GROUP BY clauses."},{"location":"4-language-usage/3-dml-and-sql/1-general/g-3182/#g-3182-always-specify-column-namesaliases-instead-of-positional-references-in-group-by-clauses","text":"Blocker Reliability","title":"G-3182: Always specify column names/aliases instead of positional references in GROUP BY clauses."},{"location":"4-language-usage/3-dml-and-sql/1-general/g-3182/#restriction","text":"Oracle Database 23c","title":"Restriction"},{"location":"4-language-usage/3-dml-and-sql/1-general/g-3182/#reason","text":"If you use a numeric literal in the group by clause in an Oracle Database prior to version 23c, then this literal is not required. It is simply a constant. Starting with Oracle Database 23c, it is possible to use a literal in the group by clause to refer to a column name or column alias in the select list. However, this only works if the group_by_position_enabled parameter is set to true . In any case, it is not convenient for the readers of the code to have to count the columns in the select list to know how the result is grouped. Since the meaning of a literal depends on the configuration and database version, the intention is unclear and might lead to an incorrect result.","title":"Reason"},{"location":"4-language-usage/3-dml-and-sql/1-general/g-3182/#example-bad","text":"1 2 3 4 5 select job_id , sum ( salary ) as sum_salary from employees group by job_id , 2 order by job_id ;","title":"Example (bad)"},{"location":"4-language-usage/3-dml-and-sql/1-general/g-3182/#example-good","text":"1 2 3 4 5 select job_id , sum ( salary ) as sum_salary from employees group by job_id order by job_id ;","title":"Example (good)"},{"location":"4-language-usage/3-dml-and-sql/1-general/g-3183/","text":"G-3183: Always specify column aliases instead of expressions in GROUP BY clauses. Minor Maintainability Restriction Oracle Database 23c Reason Starting with Oracle Database 23c, it is possible to use a column alias in the group by clause instead of repeating the expression used in the select list. Unless you use rollup , cube or grouping sets , it is not necessary to use expressions in the group by clause. Example (bad) 1 2 3 4 5 select lower ( job_id ) as job , sum ( salary ) as sum_salary from employees group by lower ( job_id ) order by job ; Example (good) 1 2 3 4 5 select lower ( job_id ) as job , sum ( salary ) as sum_salary from employees group by job order by job ;","title":"G-3183: Always specify column aliases instead of expressions in GROUP BY clauses."},{"location":"4-language-usage/3-dml-and-sql/1-general/g-3183/#g-3183-always-specify-column-aliases-instead-of-expressions-in-group-by-clauses","text":"Minor Maintainability","title":"G-3183: Always specify column aliases instead of expressions in GROUP BY clauses."},{"location":"4-language-usage/3-dml-and-sql/1-general/g-3183/#restriction","text":"Oracle Database 23c","title":"Restriction"},{"location":"4-language-usage/3-dml-and-sql/1-general/g-3183/#reason","text":"Starting with Oracle Database 23c, it is possible to use a column alias in the group by clause instead of repeating the expression used in the select list. Unless you use rollup , cube or grouping sets , it is not necessary to use expressions in the group by clause.","title":"Reason"},{"location":"4-language-usage/3-dml-and-sql/1-general/g-3183/#example-bad","text":"1 2 3 4 5 select lower ( job_id ) as job , sum ( salary ) as sum_salary from employees group by lower ( job_id ) order by job ;","title":"Example (bad)"},{"location":"4-language-usage/3-dml-and-sql/1-general/g-3183/#example-good","text":"1 2 3 4 5 select lower ( job_id ) as job , sum ( salary ) as sum_salary from employees group by job order by job ;","title":"Example (good)"},{"location":"4-language-usage/3-dml-and-sql/1-general/g-3185/","text":"G-3185: Never use ROWNUM at the same query level as ORDER BY. Blocker Reliability, Testability Reason The rownum pseudo-column is assigned before the order by clause is used, so using rownum on the same query level as order by will not assign numbers in the desired ordering. Instead you should move the order by into an inline view and use rownum in the outer query. Example (bad) 1 2 3 4 5 6 7 8 select first_name , last_name , salary , hire_date , rownum as salary_rank from employees where rownum <= 5 -- violates also G-1050 literal is ok for a standalone query order by salary desc ; Example (good) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 select first_name , last_name , salary , hire_date , rownum as salary_rank from ( select first_name , last_name , salary , hire_date from employees order by salary desc ) where rownum <= 5 ; -- NOSONAR: G-1050 literal is ok for a standalone query Example (best) (Assuming you are using Oracle Database 12c or later.) 1 2 3 4 5 6 7 8 select first_name , last_name , salary , hire_date , rank () over ( order by salary desc ) as salary_rank from employees order by salary desc fetch first 5 rows only ; -- NOSONAR: G-1050 literal is ok for a standalone query","title":"G-3185: Never use ROWNUM at the same query level as ORDER BY."},{"location":"4-language-usage/3-dml-and-sql/1-general/g-3185/#g-3185-never-use-rownum-at-the-same-query-level-as-order-by","text":"Blocker Reliability, Testability","title":"G-3185: Never use ROWNUM at the same query level as ORDER BY."},{"location":"4-language-usage/3-dml-and-sql/1-general/g-3185/#reason","text":"The rownum pseudo-column is assigned before the order by clause is used, so using rownum on the same query level as order by will not assign numbers in the desired ordering. Instead you should move the order by into an inline view and use rownum in the outer query.","title":"Reason"},{"location":"4-language-usage/3-dml-and-sql/1-general/g-3185/#example-bad","text":"1 2 3 4 5 6 7 8 select first_name , last_name , salary , hire_date , rownum as salary_rank from employees where rownum <= 5 -- violates also G-1050 literal is ok for a standalone query order by salary desc ;","title":"Example (bad)"},{"location":"4-language-usage/3-dml-and-sql/1-general/g-3185/#example-good","text":"1 2 3 4 5 6 7 8 9 10 11 12 13 14 select first_name , last_name , salary , hire_date , rownum as salary_rank from ( select first_name , last_name , salary , hire_date from employees order by salary desc ) where rownum <= 5 ; -- NOSONAR: G-1050 literal is ok for a standalone query","title":"Example (good)"},{"location":"4-language-usage/3-dml-and-sql/1-general/g-3185/#example-best","text":"(Assuming you are using Oracle Database 12c or later.) 1 2 3 4 5 6 7 8 select first_name , last_name , salary , hire_date , rank () over ( order by salary desc ) as salary_rank from employees order by salary desc fetch first 5 rows only ; -- NOSONAR: G-1050 literal is ok for a standalone query","title":"Example (best)"},{"location":"4-language-usage/3-dml-and-sql/1-general/g-3190/","text":"G-3190: Avoid using NATURAL JOIN. Blocker Changeability, Reliability Reason A natural join joins tables on equally named columns. This may comfortably fit on first sight, but adding logging columns to a table ( changed_by , changed_date ) will result in inappropriate join conditions. Example (bad) 1 2 3 4 5 6 7 select d . department_name , e . last_name , e . first_name from employees e natural join departments d order by d . department_name , e . last_name ; 1 2 3 4 5 DEPARTMENT_NAME LAST_NAME FIRST_NAME ------------------------------ ------------------------- -------------------- Accounting Gietz William Executive De Haan Lex ... 1 2 3 4 5 6 7 8 9 10 alter table departments add modified_at date default on null sysdate ; alter table employees add modified_at date default on null sysdate ; select d . department_name , e . last_name , e . first_name from employees e natural join departments d order by d . department_name , e . last_name ; 1 No data found Example (good) 1 2 3 4 5 6 7 8 select d . department_name , e . last_name , e . first_name from employees e join departments d on ( e . department_id = d . department_id ) order by d . department_name , e . last_name ; 1 2 3 4 5 DEPARTMENT_NAME LAST_NAME FIRST_NAME ------------------------------ ------------------------- -------------------- Accounting Gietz William Executive De Haan Lex ...","title":"G-3190: Avoid using NATURAL JOIN."},{"location":"4-language-usage/3-dml-and-sql/1-general/g-3190/#g-3190-avoid-using-natural-join","text":"Blocker Changeability, Reliability","title":"G-3190: Avoid using NATURAL JOIN."},{"location":"4-language-usage/3-dml-and-sql/1-general/g-3190/#reason","text":"A natural join joins tables on equally named columns. This may comfortably fit on first sight, but adding logging columns to a table ( changed_by , changed_date ) will result in inappropriate join conditions.","title":"Reason"},{"location":"4-language-usage/3-dml-and-sql/1-general/g-3190/#example-bad","text":"1 2 3 4 5 6 7 select d . department_name , e . last_name , e . first_name from employees e natural join departments d order by d . department_name , e . last_name ; 1 2 3 4 5 DEPARTMENT_NAME LAST_NAME FIRST_NAME ------------------------------ ------------------------- -------------------- Accounting Gietz William Executive De Haan Lex ... 1 2 3 4 5 6 7 8 9 10 alter table departments add modified_at date default on null sysdate ; alter table employees add modified_at date default on null sysdate ; select d . department_name , e . last_name , e . first_name from employees e natural join departments d order by d . department_name , e . last_name ; 1 No data found","title":"Example (bad)"},{"location":"4-language-usage/3-dml-and-sql/1-general/g-3190/#example-good","text":"1 2 3 4 5 6 7 8 select d . department_name , e . last_name , e . first_name from employees e join departments d on ( e . department_id = d . department_id ) order by d . department_name , e . last_name ; 1 2 3 4 5 DEPARTMENT_NAME LAST_NAME FIRST_NAME ------------------------------ ------------------------- -------------------- Accounting Gietz William Executive De Haan Lex ...","title":"Example (good)"},{"location":"4-language-usage/3-dml-and-sql/1-general/g-3195/","text":"G-3195: Always use wildcards in a LIKE clause. Blocker Maintainability Reason Using like without at least one wildcard ( % or _ ) is unclear to a maintainer whether a wildcard is forgotten or it is meant as equality test. A common antipattern is also to forget that an underscore is a wildcard, so using like instead of equal can return unwanted rows. If the char datatype is involved, there is also the danger of like not using blank padded comparison where equal will. Depending on use case, you should either remember at least one wildcard or use normal equality operator. Example (bad) 1 2 3 4 select e . employee_id , e . last_name from employees e where e . last_name like 'Smith' ; -- violates also G-1050 literal is ok for a standalone query Example (good) Using a wildcard: 1 2 3 4 select e . employee_id , e . last_name from employees e where e . last_name like 'Smith%' ; Change to equality operator instead: 1 2 3 4 select e . employee_id , e . last_name from employees e where e . last_name = 'Smith' ; -- NOSONAR: G-1050 literal is ok for a standalone query","title":"G-3195: Always use wildcards in a LIKE clause."},{"location":"4-language-usage/3-dml-and-sql/1-general/g-3195/#g-3195-always-use-wildcards-in-a-like-clause","text":"Blocker Maintainability","title":"G-3195: Always use wildcards in a LIKE clause."},{"location":"4-language-usage/3-dml-and-sql/1-general/g-3195/#reason","text":"Using like without at least one wildcard ( % or _ ) is unclear to a maintainer whether a wildcard is forgotten or it is meant as equality test. A common antipattern is also to forget that an underscore is a wildcard, so using like instead of equal can return unwanted rows. If the char datatype is involved, there is also the danger of like not using blank padded comparison where equal will. Depending on use case, you should either remember at least one wildcard or use normal equality operator.","title":"Reason"},{"location":"4-language-usage/3-dml-and-sql/1-general/g-3195/#example-bad","text":"1 2 3 4 select e . employee_id , e . last_name from employees e where e . last_name like 'Smith' ; -- violates also G-1050 literal is ok for a standalone query","title":"Example (bad)"},{"location":"4-language-usage/3-dml-and-sql/1-general/g-3195/#example-good","text":"Using a wildcard: 1 2 3 4 select e . employee_id , e . last_name from employees e where e . last_name like 'Smith%' ; Change to equality operator instead: 1 2 3 4 select e . employee_id , e . last_name from employees e where e . last_name = 'Smith' ; -- NOSONAR: G-1050 literal is ok for a standalone query","title":"Example (good)"},{"location":"4-language-usage/3-dml-and-sql/2-bulk-operations/g-3210/","text":"G-3210: Always use BULK OPERATIONS (BULK COLLECT, FORALL) whenever you have to execute a DML statement for more than 4 times. Critical Efficiency Reason Context switches between PL/SQL and SQL are extremely costly. BULK Operations reduce the number of switches by passing an array to the SQL engine, which is used to execute the given statements repeatedly. (Depending on the PLSQL_OPTIMIZE_LEVEL parameter a conversion to BULK COLLECT will be done by the PL/SQL compiler automatically.) Example (bad) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 declare t_employee_ids employee_api . t_employee_ids_type ; co_increase constant employees . salary % type : = 0 . 1 ; co_department_id constant departments . department_id % type : = 10 ; begin t_employee_ids : = employee_api . employee_ids_by_department ( id_in => co_department_id ); << process_employees >> for i in 1 .. t_employee_ids . count () loop update employees set salary = salary + ( salary * co_increase ) where employee_id = t_employee_ids ( i ); end loop process_employees ; end ; / Example (good) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 declare t_employee_ids employee_api . t_employee_ids_type ; co_increase constant employees . salary % type : = 0 . 1 ; co_department_id constant departments . department_id % type : = 10 ; begin t_employee_ids : = employee_api . employee_ids_by_department ( id_in => co_department_id ); << process_employees >> forall i in 1 .. t_employee_ids . count () update employees set salary = salary + ( salary * co_increase ) where employee_id = t_employee_ids ( i ); end ; /","title":"G-3210: Always use BULK OPERATIONS (BULK COLLECT, FORALL) whenever you have to execute a DML statement for more than 4 times."},{"location":"4-language-usage/3-dml-and-sql/2-bulk-operations/g-3210/#g-3210-always-use-bulk-operations-bulk-collect-forall-whenever-you-have-to-execute-a-dml-statement-for-more-than-4-times","text":"Critical Efficiency","title":"G-3210: Always use BULK OPERATIONS (BULK COLLECT, FORALL) whenever you have to execute a DML statement for more than 4 times."},{"location":"4-language-usage/3-dml-and-sql/2-bulk-operations/g-3210/#reason","text":"Context switches between PL/SQL and SQL are extremely costly. BULK Operations reduce the number of switches by passing an array to the SQL engine, which is used to execute the given statements repeatedly. (Depending on the PLSQL_OPTIMIZE_LEVEL parameter a conversion to BULK COLLECT will be done by the PL/SQL compiler automatically.)","title":"Reason"},{"location":"4-language-usage/3-dml-and-sql/2-bulk-operations/g-3210/#example-bad","text":"1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 declare t_employee_ids employee_api . t_employee_ids_type ; co_increase constant employees . salary % type : = 0 . 1 ; co_department_id constant departments . department_id % type : = 10 ; begin t_employee_ids : = employee_api . employee_ids_by_department ( id_in => co_department_id ); << process_employees >> for i in 1 .. t_employee_ids . count () loop update employees set salary = salary + ( salary * co_increase ) where employee_id = t_employee_ids ( i ); end loop process_employees ; end ; /","title":"Example (bad)"},{"location":"4-language-usage/3-dml-and-sql/2-bulk-operations/g-3210/#example-good","text":"1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 declare t_employee_ids employee_api . t_employee_ids_type ; co_increase constant employees . salary % type : = 0 . 1 ; co_department_id constant departments . department_id % type : = 10 ; begin t_employee_ids : = employee_api . employee_ids_by_department ( id_in => co_department_id ); << process_employees >> forall i in 1 .. t_employee_ids . count () update employees set salary = salary + ( salary * co_increase ) where employee_id = t_employee_ids ( i ); end ; /","title":"Example (good)"},{"location":"4-language-usage/3-dml-and-sql/2-bulk-operations/g-3220/","text":"G-3220: Always process saved exceptions from a FORALL statement. Critical Reliability, Testability Reason Using save exceptions in a forall statement without actually processing the saved exceptions is just wasted work. If your use of forall is meant to be atomic (all or nothing), don't use save exceptions . If you want to handle errors of individual rows and do use save exceptions , always include an exception handler block with a loop to process the saved exceptions. Example (bad) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 declare t_employee_ids employee_api . t_employee_ids_type ; co_increase constant employees . salary % type : = 0 . 1 ; co_department_id constant departments . department_id % type : = 10 ; e_bulk_errors exception ; pragma exception_init ( e_bulk_errors , - 24381 ); begin t_employee_ids : = employee_api . employee_ids_by_department ( id_in => co_department_id ); << process_employees >> forall i in 1 .. t_employee_ids . count () save exceptions update employees set salary = salary + ( salary * co_increase ) where employee_id = t_employee_ids ( i ); end ; / Example (good) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 declare t_employee_ids employee_api . t_employee_ids_type ; co_increase constant employees . salary % type : = 0 . 1 ; co_department_id constant departments . department_id % type : = 10 ; e_bulk_errors exception ; pragma exception_init ( e_bulk_errors , - 24381 ); begin t_employee_ids : = employee_api . employee_ids_by_department ( id_in => co_department_id ); << process_employees >> forall i in 1 .. t_employee_ids . count () save exceptions update employees set salary = salary + ( salary * co_increase ) where employee_id = t_employee_ids ( i ); exception when e_bulk_errors then << handle_bulk_exceptions >> for i in 1 .. sql % bulk_exceptions . count loop logger . log ( sql % bulk_exceptions ( i ). error_code ); end loop handle_bulk_exceptions ; end ; /","title":"G-3220: Always process saved exceptions from a FORALL statement."},{"location":"4-language-usage/3-dml-and-sql/2-bulk-operations/g-3220/#g-3220-always-process-saved-exceptions-from-a-forall-statement","text":"Critical Reliability, Testability","title":"G-3220: Always process saved exceptions from a FORALL statement."},{"location":"4-language-usage/3-dml-and-sql/2-bulk-operations/g-3220/#reason","text":"Using save exceptions in a forall statement without actually processing the saved exceptions is just wasted work. If your use of forall is meant to be atomic (all or nothing), don't use save exceptions . If you want to handle errors of individual rows and do use save exceptions , always include an exception handler block with a loop to process the saved exceptions.","title":"Reason"},{"location":"4-language-usage/3-dml-and-sql/2-bulk-operations/g-3220/#example-bad","text":"1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 declare t_employee_ids employee_api . t_employee_ids_type ; co_increase constant employees . salary % type : = 0 . 1 ; co_department_id constant departments . department_id % type : = 10 ; e_bulk_errors exception ; pragma exception_init ( e_bulk_errors , - 24381 ); begin t_employee_ids : = employee_api . employee_ids_by_department ( id_in => co_department_id ); << process_employees >> forall i in 1 .. t_employee_ids . count () save exceptions update employees set salary = salary + ( salary * co_increase ) where employee_id = t_employee_ids ( i ); end ; /","title":"Example (bad)"},{"location":"4-language-usage/3-dml-and-sql/2-bulk-operations/g-3220/#example-good","text":"1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 declare t_employee_ids employee_api . t_employee_ids_type ; co_increase constant employees . salary % type : = 0 . 1 ; co_department_id constant departments . department_id % type : = 10 ; e_bulk_errors exception ; pragma exception_init ( e_bulk_errors , - 24381 ); begin t_employee_ids : = employee_api . employee_ids_by_department ( id_in => co_department_id ); << process_employees >> forall i in 1 .. t_employee_ids . count () save exceptions update employees set salary = salary + ( salary * co_increase ) where employee_id = t_employee_ids ( i ); exception when e_bulk_errors then << handle_bulk_exceptions >> for i in 1 .. sql % bulk_exceptions . count loop logger . log ( sql % bulk_exceptions ( i ). error_code ); end loop handle_bulk_exceptions ; end ; /","title":"Example (good)"},{"location":"4-language-usage/3-dml-and-sql/3-transaction-control/g-3310/","text":"G-3310: Never commit within a cursor loop. Blocker Efficiency, Reliability Reason Doing frequent commits within a cursor loop (all types of loops over cursors, whether implicit cursor for loop or loop with explicit fetch from cursor or cursor variable) risks not being able to complete due to ORA-01555, gives bad performance, and risks that the work is left in an unknown half-finished state and cannot be restarted. If the work belongs together (an atomic transaction) the commit should be moved to after the loop. Or even better if the logic can be rewritten to a single DML statement on all relevant rows instead of a loop, committing after the single statement. If each loop iteration is a self-contained atomic transaction, consider instead to populate a collection of transactions to be done (taking restartability into account by collection population), loop over that collection (instead of looping over a cursor) and call a procedure (that contains the transaction logic and the commit ) in the loop (see also G-3320 ). Example (bad) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 declare l_counter integer : = 0 ; l_discount discount . percentage % type ; co_status_new constant orders . order_status % type : = 'New' ; co_commit_interval constant integer : = 100 ; begin << new_orders >> for r_order in ( select o . order_id , o . customer_id from orders o where o . order_status = co_status_new ) loop l_discount : = sales_api . calculate_discount ( p_customer_id => r_order . customer_id ); update order_lines ol -- NOSONAR: violates G-3210 set ol . discount = l_discount where ol . order_id = r_order . order_id ; l_counter : = l_counter + 1 ; if l_counter = co_commit_interval then commit ; l_counter : = 0 ; end if ; end loop new_orders ; if l_counter > 0 then commit ; end if ; end ; / Example (good) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 declare l_discount discount . percentage % type ; co_status_new constant orders . order_status % type : = 'New' ; begin << new_orders >> for r_order in ( select o . order_id , o . customer_id from orders o where o . order_status = co_status_new ) loop l_discount : = sales_api . calculate_discount ( p_customer_id => r_order . customer_id ); update order_lines ol -- NOSONAR: violates G-3210 set ol . discount = l_discount where ol . order_id = r_order . order_id ; end loop new_orders ; commit ; end ; / Example (best) (Assuming suitable foreign key relationship exists to allow updating a join.) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 declare co_status_new constant orders . order_status % type : = 'New' ; begin update ( select o . customer_id , ol . discount from orders o join order_lines ol on ol . order_id = o . order_id where o . order_status = co_status_new ) set discount = sales_api . calculate_discount ( p_customer_id => customer_id ); commit ; end ; /","title":"G-3310: Never commit within a cursor loop."},{"location":"4-language-usage/3-dml-and-sql/3-transaction-control/g-3310/#g-3310-never-commit-within-a-cursor-loop","text":"Blocker Efficiency, Reliability","title":"G-3310: Never commit within a cursor loop."},{"location":"4-language-usage/3-dml-and-sql/3-transaction-control/g-3310/#reason","text":"Doing frequent commits within a cursor loop (all types of loops over cursors, whether implicit cursor for loop or loop with explicit fetch from cursor or cursor variable) risks not being able to complete due to ORA-01555, gives bad performance, and risks that the work is left in an unknown half-finished state and cannot be restarted. If the work belongs together (an atomic transaction) the commit should be moved to after the loop. Or even better if the logic can be rewritten to a single DML statement on all relevant rows instead of a loop, committing after the single statement. If each loop iteration is a self-contained atomic transaction, consider instead to populate a collection of transactions to be done (taking restartability into account by collection population), loop over that collection (instead of looping over a cursor) and call a procedure (that contains the transaction logic and the commit ) in the loop (see also G-3320 ).","title":"Reason"},{"location":"4-language-usage/3-dml-and-sql/3-transaction-control/g-3310/#example-bad","text":"1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 declare l_counter integer : = 0 ; l_discount discount . percentage % type ; co_status_new constant orders . order_status % type : = 'New' ; co_commit_interval constant integer : = 100 ; begin << new_orders >> for r_order in ( select o . order_id , o . customer_id from orders o where o . order_status = co_status_new ) loop l_discount : = sales_api . calculate_discount ( p_customer_id => r_order . customer_id ); update order_lines ol -- NOSONAR: violates G-3210 set ol . discount = l_discount where ol . order_id = r_order . order_id ; l_counter : = l_counter + 1 ; if l_counter = co_commit_interval then commit ; l_counter : = 0 ; end if ; end loop new_orders ; if l_counter > 0 then commit ; end if ; end ; /","title":"Example (bad)"},{"location":"4-language-usage/3-dml-and-sql/3-transaction-control/g-3310/#example-good","text":"1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 declare l_discount discount . percentage % type ; co_status_new constant orders . order_status % type : = 'New' ; begin << new_orders >> for r_order in ( select o . order_id , o . customer_id from orders o where o . order_status = co_status_new ) loop l_discount : = sales_api . calculate_discount ( p_customer_id => r_order . customer_id ); update order_lines ol -- NOSONAR: violates G-3210 set ol . discount = l_discount where ol . order_id = r_order . order_id ; end loop new_orders ; commit ; end ; /","title":"Example (good)"},{"location":"4-language-usage/3-dml-and-sql/3-transaction-control/g-3310/#example-best","text":"(Assuming suitable foreign key relationship exists to allow updating a join.) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 declare co_status_new constant orders . order_status % type : = 'New' ; begin update ( select o . customer_id , ol . discount from orders o join order_lines ol on ol . order_id = o . order_id where o . order_status = co_status_new ) set discount = sales_api . calculate_discount ( p_customer_id => customer_id ); commit ; end ; /","title":"Example (best)"},{"location":"4-language-usage/3-dml-and-sql/3-transaction-control/g-3320/","text":"G-3320: Try to move transactions within a non-cursor loop into procedures. Major Maintainability, Reusability, Testability Reason Commit inside a non-cursor loop (other loop types than loops over cursors - see also G-3310 ) is either a self-contained atomic transaction, or it is a chunk (with suitable restartability handling) of very large data manipulations. In either case encapsulating the transaction in a procedure is good modularity, enabling reuse and testing of a single call. Example (bad) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 declare co_upper_bound constant integer : = 5 ; co_max_level constant integer : = 3 ; co_number constant types_up . short_string : = 'Number' ; co_line constant types_up . short_string : = 'Line' ; co_space constant types_up . short_string : = ' ' ; l_counter integer : = 0 ; begin << create_headers >> loop insert into headers ( id , text ) values ( l_counter , co_number || co_space || l_counter ); insert into lines ( header_id , line_no , text ) select l_counter , rownum , co_line || co_space || rownum from dual connect by level <= co_max_level ; commit ; l_counter : = l_counter + 1 ; exit create_headers when l_counter > co_upper_bound ; end loop create_headers ; end ; / Example (good) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 declare co_upper_bound constant integer : = 5 ; co_max_level constant integer : = 3 ; co_number constant types_up . short_string : = 'Number' ; co_line constant types_up . short_string : = 'Line' ; co_space constant types_up . short_string : = ' ' ; procedure create_rows ( in_header_id in headers . id % type ) is co_header_id constant headers . id % type : = in_header_id ; begin insert into headers ( id , text ) values ( in_header_id , co_number || co_space || co_header_id ); insert into lines ( header_id , line_no , text ) select co_header_id , rownum , co_line || co_space || rownum from dual connect by level <= co_max_level ; commit ; end create_rows ; begin << create_headers >> for l_counter in 1 .. co_upper_bound loop create_rows ( l_counter ); end loop create_headers ; end ; /","title":"G-3320: Try to move transactions within a non-cursor loop into procedures."},{"location":"4-language-usage/3-dml-and-sql/3-transaction-control/g-3320/#g-3320-try-to-move-transactions-within-a-non-cursor-loop-into-procedures","text":"Major Maintainability, Reusability, Testability","title":"G-3320: Try to move transactions within a non-cursor loop into procedures."},{"location":"4-language-usage/3-dml-and-sql/3-transaction-control/g-3320/#reason","text":"Commit inside a non-cursor loop (other loop types than loops over cursors - see also G-3310 ) is either a self-contained atomic transaction, or it is a chunk (with suitable restartability handling) of very large data manipulations. In either case encapsulating the transaction in a procedure is good modularity, enabling reuse and testing of a single call.","title":"Reason"},{"location":"4-language-usage/3-dml-and-sql/3-transaction-control/g-3320/#example-bad","text":"1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 declare co_upper_bound constant integer : = 5 ; co_max_level constant integer : = 3 ; co_number constant types_up . short_string : = 'Number' ; co_line constant types_up . short_string : = 'Line' ; co_space constant types_up . short_string : = ' ' ; l_counter integer : = 0 ; begin << create_headers >> loop insert into headers ( id , text ) values ( l_counter , co_number || co_space || l_counter ); insert into lines ( header_id , line_no , text ) select l_counter , rownum , co_line || co_space || rownum from dual connect by level <= co_max_level ; commit ; l_counter : = l_counter + 1 ; exit create_headers when l_counter > co_upper_bound ; end loop create_headers ; end ; /","title":"Example (bad)"},{"location":"4-language-usage/3-dml-and-sql/3-transaction-control/g-3320/#example-good","text":"1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 declare co_upper_bound constant integer : = 5 ; co_max_level constant integer : = 3 ; co_number constant types_up . short_string : = 'Number' ; co_line constant types_up . short_string : = 'Line' ; co_space constant types_up . short_string : = ' ' ; procedure create_rows ( in_header_id in headers . id % type ) is co_header_id constant headers . id % type : = in_header_id ; begin insert into headers ( id , text ) values ( in_header_id , co_number || co_space || co_header_id ); insert into lines ( header_id , line_no , text ) select co_header_id , rownum , co_line || co_space || rownum from dual connect by level <= co_max_level ; commit ; end create_rows ; begin << create_headers >> for l_counter in 1 .. co_upper_bound loop create_rows ( l_counter ); end loop create_headers ; end ; /","title":"Example (good)"},{"location":"4-language-usage/3-dml-and-sql/3-transaction-control/g-3330/","text":"G-3330: Avoid autonomous transactions. Blocker Reliability, Testability Reason Before we take a look at how autonomous transactions work, I\u2019d like to emphasize that this type of transaction is a powerful and therefore dangerous tool when used improperly. The true need for an autonomous transaction is very rare indeed. I would be very suspicious of any code that makes use of them\u2014that code would get extra examination. It is far too easy to accidentally introduce logical data integrity issues into a system using them. (page 300) In my experience, that is the only truly valid use of an autonomous transaction\u2014to log errors or informational messages in a manner that can be committed independently of the parent transaction. (page 305) -- Kyte, Thomas (2013). Expert Oracle Database Architecture. Third Edition . Apress. It is most likely not possible to distinguish legitimate uses of autonomous transactions from illegitimate ones via static code analysis. However, since we expect exactly one autonomous transaction per application, the number of false positives is manageable. Example (bad) 1 2 3 4 5 6 7 8 9 10 create or replace package body dept_api is procedure ins_dept ( in_dept_row in dept % rowtype ) is pragma autonomous_transaction ; begin insert into dept values in_dept_row ; commit ; -- required by autonomous transaction end ins_dept ; end dept_api ; / Example (good) 1 2 3 4 5 6 7 8 9 10 create or replace package body dept_api is procedure ins_dept ( in_dept_row in dept % rowtype ) is begin insert into dept values in_dept_row ; -- transaction is commited in calling module -- after the completion of the unit of work end ins_dept ; end dept_api ; /","title":"G-3330: Avoid autonomous transactions."},{"location":"4-language-usage/3-dml-and-sql/3-transaction-control/g-3330/#g-3330-avoid-autonomous-transactions","text":"Blocker Reliability, Testability","title":"G-3330: Avoid autonomous transactions."},{"location":"4-language-usage/3-dml-and-sql/3-transaction-control/g-3330/#reason","text":"Before we take a look at how autonomous transactions work, I\u2019d like to emphasize that this type of transaction is a powerful and therefore dangerous tool when used improperly. The true need for an autonomous transaction is very rare indeed. I would be very suspicious of any code that makes use of them\u2014that code would get extra examination. It is far too easy to accidentally introduce logical data integrity issues into a system using them. (page 300) In my experience, that is the only truly valid use of an autonomous transaction\u2014to log errors or informational messages in a manner that can be committed independently of the parent transaction. (page 305) -- Kyte, Thomas (2013). Expert Oracle Database Architecture. Third Edition . Apress. It is most likely not possible to distinguish legitimate uses of autonomous transactions from illegitimate ones via static code analysis. However, since we expect exactly one autonomous transaction per application, the number of false positives is manageable.","title":"Reason"},{"location":"4-language-usage/3-dml-and-sql/3-transaction-control/g-3330/#example-bad","text":"1 2 3 4 5 6 7 8 9 10 create or replace package body dept_api is procedure ins_dept ( in_dept_row in dept % rowtype ) is pragma autonomous_transaction ; begin insert into dept values in_dept_row ; commit ; -- required by autonomous transaction end ins_dept ; end dept_api ; /","title":"Example (bad)"},{"location":"4-language-usage/3-dml-and-sql/3-transaction-control/g-3330/#example-good","text":"1 2 3 4 5 6 7 8 9 10 create or replace package body dept_api is procedure ins_dept ( in_dept_row in dept % rowtype ) is begin insert into dept values in_dept_row ; -- transaction is commited in calling module -- after the completion of the unit of work end ins_dept ; end dept_api ; /","title":"Example (good)"},{"location":"4-language-usage/4-control-structures/1-cursor/g-4110/","text":"G-4110: Always use %NOTFOUND instead of NOT %FOUND to check whether a cursor returned data. Minor Maintainability Reason The readability of your code will be higher when you avoid negative sentences. Example (bad) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 declare cursor c_employees is select * from employees order by employee_id ; type t_employees_type is table of c_employees % rowtype ; t_employees t_employees_type ; co_bulk_size constant simple_integer : = 10 ; begin open c_employees ; << process_employees >> loop fetch c_employees bulk collect into t_employees limit co_bulk_size ; << display_employees >> for i in 1 .. t_employees . count () loop sys . dbms_output . put_line ( t_employees ( i ). last_name ); end loop display_employees ; exit process_employees when not c_employees % found ; end loop process_employees ; close c_employees ; end ; / Example (good) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 declare cursor c_employees is select * from employees order by employee_id ; type t_employees_type is table of c_employees % rowtype ; t_employees t_employees_type ; co_bulk_size constant simple_integer : = 10 ; begin open c_employees ; << process_employees >> loop fetch c_employees bulk collect into t_employees limit co_bulk_size ; << display_employees >> for i in 1 .. t_employees . count () loop sys . dbms_output . put_line ( t_employees ( i ). last_name ); end loop display_employees ; exit process_employees when c_employees % notfound ; end loop process_employees ; close c_employees ; end ; /","title":"G-4110: Always use %NOTFOUND instead of NOT %FOUND to check whether a cursor returned data."},{"location":"4-language-usage/4-control-structures/1-cursor/g-4110/#g-4110-always-use-notfound-instead-of-not-found-to-check-whether-a-cursor-returned-data","text":"Minor Maintainability","title":"G-4110: Always use %NOTFOUND instead of NOT %FOUND to check whether a cursor returned data."},{"location":"4-language-usage/4-control-structures/1-cursor/g-4110/#reason","text":"The readability of your code will be higher when you avoid negative sentences.","title":"Reason"},{"location":"4-language-usage/4-control-structures/1-cursor/g-4110/#example-bad","text":"1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 declare cursor c_employees is select * from employees order by employee_id ; type t_employees_type is table of c_employees % rowtype ; t_employees t_employees_type ; co_bulk_size constant simple_integer : = 10 ; begin open c_employees ; << process_employees >> loop fetch c_employees bulk collect into t_employees limit co_bulk_size ; << display_employees >> for i in 1 .. t_employees . count () loop sys . dbms_output . put_line ( t_employees ( i ). last_name ); end loop display_employees ; exit process_employees when not c_employees % found ; end loop process_employees ; close c_employees ; end ; /","title":"Example (bad)"},{"location":"4-language-usage/4-control-structures/1-cursor/g-4110/#example-good","text":"1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 declare cursor c_employees is select * from employees order by employee_id ; type t_employees_type is table of c_employees % rowtype ; t_employees t_employees_type ; co_bulk_size constant simple_integer : = 10 ; begin open c_employees ; << process_employees >> loop fetch c_employees bulk collect into t_employees limit co_bulk_size ; << display_employees >> for i in 1 .. t_employees . count () loop sys . dbms_output . put_line ( t_employees ( i ). last_name ); end loop display_employees ; exit process_employees when c_employees % notfound ; end loop process_employees ; close c_employees ; end ; /","title":"Example (good)"},{"location":"4-language-usage/4-control-structures/1-cursor/g-4120/","text":"G-4120: Avoid using %NOTFOUND directly after the FETCH when working with BULK OPERATIONS and LIMIT clause. Blocker Reliability Reason %notfound is set to true as soon as less than the number of rows defined by the limit clause has been read. Example (bad) The employees table holds 107 rows. The example below will only show 100 rows as the cursor attribute notfound is set to true as soon as the number of rows to be fetched defined by the limit clause is not fulfilled anymore. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 declare cursor c_employees is select * from employees order by employee_id ; type t_employees_type is table of c_employees % rowtype ; t_employees t_employees_type ; co_bulk_size constant simple_integer : = 10 ; begin open c_employees ; << process_employees >> loop fetch c_employees bulk collect into t_employees limit co_bulk_size ; exit process_employees when c_employees % notfound ; << display_employees >> for i in 1 .. t_employees . count () loop sys . dbms_output . put_line ( t_employees ( i ). last_name ); end loop display_employees ; end loop process_employees ; close c_employees ; end ; / Example (better) This example will show all 107 rows but execute one fetch too much (12 instead of 11). 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 declare cursor c_employees is select * from employees order by employee_id ; type t_employees_type is table of c_employees % rowtype ; t_employees t_employees_type ; co_bulk_size constant simple_integer : = 10 ; begin open c_employees ; << process_employees >> loop fetch c_employees bulk collect into t_employees limit co_bulk_size ; exit process_employees when t_employees . count () = 0 ; << display_employees >> for i in 1 .. t_employees . count () loop sys . dbms_output . put_line ( t_employees ( i ). last_name ); end loop display_employees ; end loop process_employees ; close c_employees ; end ; / Example (good) This example does the trick (11 fetches only to process all rows) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 declare cursor c_employees is select * from employees order by employee_id ; type t_employees_type is table of c_employees % rowtype ; t_employees t_employees_type ; co_bulk_size constant simple_integer : = 10 ; begin open c_employees ; << process_employees >> loop fetch c_employees bulk collect into t_employees limit co_bulk_size ; << display_employees >> for i in 1 .. t_employees . count () loop sys . dbms_output . put_line ( t_employees ( i ). last_name ); end loop display_employees ; exit process_employees when t_employees . count () <> co_bulk_size ; end loop process_employees ; close c_employees ; end ; /","title":"G-4120: Avoid using %NOTFOUND directly after the FETCH when working with BULK OPERATIONS and LIMIT clause."},{"location":"4-language-usage/4-control-structures/1-cursor/g-4120/#g-4120-avoid-using-notfound-directly-after-the-fetch-when-working-with-bulk-operations-and-limit-clause","text":"Blocker Reliability","title":"G-4120: Avoid using %NOTFOUND directly after the FETCH when working with BULK OPERATIONS and LIMIT clause."},{"location":"4-language-usage/4-control-structures/1-cursor/g-4120/#reason","text":"%notfound is set to true as soon as less than the number of rows defined by the limit clause has been read.","title":"Reason"},{"location":"4-language-usage/4-control-structures/1-cursor/g-4120/#example-bad","text":"The employees table holds 107 rows. The example below will only show 100 rows as the cursor attribute notfound is set to true as soon as the number of rows to be fetched defined by the limit clause is not fulfilled anymore. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 declare cursor c_employees is select * from employees order by employee_id ; type t_employees_type is table of c_employees % rowtype ; t_employees t_employees_type ; co_bulk_size constant simple_integer : = 10 ; begin open c_employees ; << process_employees >> loop fetch c_employees bulk collect into t_employees limit co_bulk_size ; exit process_employees when c_employees % notfound ; << display_employees >> for i in 1 .. t_employees . count () loop sys . dbms_output . put_line ( t_employees ( i ). last_name ); end loop display_employees ; end loop process_employees ; close c_employees ; end ; /","title":"Example (bad)"},{"location":"4-language-usage/4-control-structures/1-cursor/g-4120/#example-better","text":"This example will show all 107 rows but execute one fetch too much (12 instead of 11). 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 declare cursor c_employees is select * from employees order by employee_id ; type t_employees_type is table of c_employees % rowtype ; t_employees t_employees_type ; co_bulk_size constant simple_integer : = 10 ; begin open c_employees ; << process_employees >> loop fetch c_employees bulk collect into t_employees limit co_bulk_size ; exit process_employees when t_employees . count () = 0 ; << display_employees >> for i in 1 .. t_employees . count () loop sys . dbms_output . put_line ( t_employees ( i ). last_name ); end loop display_employees ; end loop process_employees ; close c_employees ; end ; /","title":"Example (better)"},{"location":"4-language-usage/4-control-structures/1-cursor/g-4120/#example-good","text":"This example does the trick (11 fetches only to process all rows) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 declare cursor c_employees is select * from employees order by employee_id ; type t_employees_type is table of c_employees % rowtype ; t_employees t_employees_type ; co_bulk_size constant simple_integer : = 10 ; begin open c_employees ; << process_employees >> loop fetch c_employees bulk collect into t_employees limit co_bulk_size ; << display_employees >> for i in 1 .. t_employees . count () loop sys . dbms_output . put_line ( t_employees ( i ). last_name ); end loop display_employees ; exit process_employees when t_employees . count () <> co_bulk_size ; end loop process_employees ; close c_employees ; end ; /","title":"Example (good)"},{"location":"4-language-usage/4-control-structures/1-cursor/g-4130/","text":"G-4130: Always close locally opened cursors. Blocker Efficiency, Reliability Reason Any cursors left open can consume additional memory space (i.e. SGA) within the database instance, potentially in both the shared and private SQL pools. Furthermore, failure to explicitly close cursors may also cause the owning session to exceed its maximum limit of open cursors (as specified by the open_cursors database initialization parameter), potentially resulting in the Oracle Database error of \u201cORA-01000: maximum open cursors exceeded\u201d. Example (bad) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 create or replace package body employee_api as function department_salary ( in_dept_id in integer ) -- NOSONAR: non-deterministic return number is cursor c_department_salary ( p_dept_id in departments . department_id % type ) is select sum ( salary ) as sum_salary from employees where department_id = p_dept_id ; r_department_salary c_department_salary % rowtype ; co_dept_id constant departments . department_id % type : = in_dept_id ; begin open c_department_salary ( p_dept_id => co_dept_id ); fetch c_department_salary into r_department_salary ; return r_department_salary . sum_salary ; end department_salary ; end employee_api ; / Example (good) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 create or replace package body employee_api as function department_salary ( in_dept_id in integer ) -- NOSONAR: non-deterministic return number is cursor c_department_salary ( p_dept_id in departments . department_id % type ) is select sum ( salary ) as sum_salary from employees where department_id = p_dept_id ; r_department_salary c_department_salary % rowtype ; co_dept_id constant departments . department_id % type : = in_dept_id ; begin open c_department_salary ( p_dept_id => co_dept_id ); fetch c_department_salary into r_department_salary ; close c_department_salary ; return r_department_salary . sum_salary ; end department_salary ; end employee_api ; /","title":"G-4130: Always close locally opened cursors."},{"location":"4-language-usage/4-control-structures/1-cursor/g-4130/#g-4130-always-close-locally-opened-cursors","text":"Blocker Efficiency, Reliability","title":"G-4130: Always close locally opened cursors."},{"location":"4-language-usage/4-control-structures/1-cursor/g-4130/#reason","text":"Any cursors left open can consume additional memory space (i.e. SGA) within the database instance, potentially in both the shared and private SQL pools. Furthermore, failure to explicitly close cursors may also cause the owning session to exceed its maximum limit of open cursors (as specified by the open_cursors database initialization parameter), potentially resulting in the Oracle Database error of \u201cORA-01000: maximum open cursors exceeded\u201d.","title":"Reason"},{"location":"4-language-usage/4-control-structures/1-cursor/g-4130/#example-bad","text":"1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 create or replace package body employee_api as function department_salary ( in_dept_id in integer ) -- NOSONAR: non-deterministic return number is cursor c_department_salary ( p_dept_id in departments . department_id % type ) is select sum ( salary ) as sum_salary from employees where department_id = p_dept_id ; r_department_salary c_department_salary % rowtype ; co_dept_id constant departments . department_id % type : = in_dept_id ; begin open c_department_salary ( p_dept_id => co_dept_id ); fetch c_department_salary into r_department_salary ; return r_department_salary . sum_salary ; end department_salary ; end employee_api ; /","title":"Example (bad)"},{"location":"4-language-usage/4-control-structures/1-cursor/g-4130/#example-good","text":"1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 create or replace package body employee_api as function department_salary ( in_dept_id in integer ) -- NOSONAR: non-deterministic return number is cursor c_department_salary ( p_dept_id in departments . department_id % type ) is select sum ( salary ) as sum_salary from employees where department_id = p_dept_id ; r_department_salary c_department_salary % rowtype ; co_dept_id constant departments . department_id % type : = in_dept_id ; begin open c_department_salary ( p_dept_id => co_dept_id ); fetch c_department_salary into r_department_salary ; close c_department_salary ; return r_department_salary . sum_salary ; end department_salary ; end employee_api ; /","title":"Example (good)"},{"location":"4-language-usage/4-control-structures/1-cursor/g-4140/","text":"G-4140: Avoid executing any statements between a SQL operation and the usage of an implicit cursor attribute. Blocker Reliability Reason The Oracle Database provides a variety of cursor attributes (like %found and %rowcount ) that can be used to obtain information about the status of a cursor, either implicit or explicit. You should avoid inserting any statements between the cursor operation and the use of an attribute against that cursor. Interposing such a statement can affect the value returned by the attribute, thereby potentially corrupting the logic of your program. In the following example, a procedure call is inserted between the delete statement and a check for the value of sql%rowcount , which returns the number of rows modified by that last SQL statement executed in the session. If this procedure includes a commit / rollback or another implicit cursor the value of sql%rowcount is affected. Example (bad) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 create or replace package body employee_api as co_one constant simple_integer : = 1 ; co_msg constant types_up . text : = 'Do something based on ' ; procedure process_dept ( in_dept_id in departments . department_id % type ) is co_dept_id constant departments . department_id % type : = in_dept_id ; begin sys . dbms_output . put_line ( co_msg || co_dept_id ); end process_dept ; procedure remove_employee ( in_employee_id in employees . employee_id % type ) is co_employee_id constant departments . department_id % type : = in_employee_id ; l_dept_id employees . department_id % type ; begin delete from employees where employee_id = co_employee_id returning department_id into l_dept_id ; process_dept ( in_dept_id => l_dept_id ); if sql % rowcount > co_one then -- too many rows deleted. rollback ; end if ; end remove_employee ; end employee_api ; / Example (good) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 create or replace package body employee_api as co_one constant simple_integer : = 1 ; co_msg constant types_up . text : = 'Do something based on ' ; procedure process_dept ( in_dept_id in departments . department_id % type ) is co_dept_id constant departments . department_id % type : = in_dept_id ; begin sys . dbms_output . put_line ( co_msg || co_dept_id ); end process_dept ; procedure remove_employee ( in_employee_id in employees . employee_id % type ) is co_employee_id constant departments . department_id % type : = in_employee_id ; l_dept_id employees . department_id % type ; l_deleted_emps simple_integer ; begin delete from employees where employee_id = co_employee_id returning department_id into l_dept_id ; l_deleted_emps : = sql % rowcount ; process_dept ( in_dept_id => l_dept_id ); if l_deleted_emps > co_one then -- too many rows deleted. rollback ; end if ; end remove_employee ; end employee_api ; /","title":"G-4140: Avoid executing any statements between a SQL operation and the usage of an implicit cursor attribute."},{"location":"4-language-usage/4-control-structures/1-cursor/g-4140/#g-4140-avoid-executing-any-statements-between-a-sql-operation-and-the-usage-of-an-implicit-cursor-attribute","text":"Blocker Reliability","title":"G-4140: Avoid executing any statements between a SQL operation and the usage of an implicit cursor attribute."},{"location":"4-language-usage/4-control-structures/1-cursor/g-4140/#reason","text":"The Oracle Database provides a variety of cursor attributes (like %found and %rowcount ) that can be used to obtain information about the status of a cursor, either implicit or explicit. You should avoid inserting any statements between the cursor operation and the use of an attribute against that cursor. Interposing such a statement can affect the value returned by the attribute, thereby potentially corrupting the logic of your program. In the following example, a procedure call is inserted between the delete statement and a check for the value of sql%rowcount , which returns the number of rows modified by that last SQL statement executed in the session. If this procedure includes a commit / rollback or another implicit cursor the value of sql%rowcount is affected.","title":"Reason"},{"location":"4-language-usage/4-control-structures/1-cursor/g-4140/#example-bad","text":"1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 create or replace package body employee_api as co_one constant simple_integer : = 1 ; co_msg constant types_up . text : = 'Do something based on ' ; procedure process_dept ( in_dept_id in departments . department_id % type ) is co_dept_id constant departments . department_id % type : = in_dept_id ; begin sys . dbms_output . put_line ( co_msg || co_dept_id ); end process_dept ; procedure remove_employee ( in_employee_id in employees . employee_id % type ) is co_employee_id constant departments . department_id % type : = in_employee_id ; l_dept_id employees . department_id % type ; begin delete from employees where employee_id = co_employee_id returning department_id into l_dept_id ; process_dept ( in_dept_id => l_dept_id ); if sql % rowcount > co_one then -- too many rows deleted. rollback ; end if ; end remove_employee ; end employee_api ; /","title":"Example (bad)"},{"location":"4-language-usage/4-control-structures/1-cursor/g-4140/#example-good","text":"1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 create or replace package body employee_api as co_one constant simple_integer : = 1 ; co_msg constant types_up . text : = 'Do something based on ' ; procedure process_dept ( in_dept_id in departments . department_id % type ) is co_dept_id constant departments . department_id % type : = in_dept_id ; begin sys . dbms_output . put_line ( co_msg || co_dept_id ); end process_dept ; procedure remove_employee ( in_employee_id in employees . employee_id % type ) is co_employee_id constant departments . department_id % type : = in_employee_id ; l_dept_id employees . department_id % type ; l_deleted_emps simple_integer ; begin delete from employees where employee_id = co_employee_id returning department_id into l_dept_id ; l_deleted_emps : = sql % rowcount ; process_dept ( in_dept_id => l_dept_id ); if l_deleted_emps > co_one then -- too many rows deleted. rollback ; end if ; end remove_employee ; end employee_api ; /","title":"Example (good)"},{"location":"4-language-usage/4-control-structures/2-case-if-decode-nvl-nvl2-coalesce/g-4210/","text":"G-4210: Try to use CASE rather than an IF statement with multiple ELSIF paths. Minor Maintainability, Testability Reason if statements containing multiple elsif tend to become complex quickly. Example (bad) 1 2 3 4 5 6 7 8 9 10 11 12 declare l_color types_up . color_code_type ; begin if l_color = constants_up . co_red then my_package . do_red (); elsif l_color = constants_up . co_blue then my_package . do_blue (); elsif l_color = constants_up . co_black then my_package . do_black (); end if ; end ; / Example (good) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 declare l_color types_up . color_code_type ; begin case l_color when constants_up . co_red then my_package . do_red (); when constants_up . co_blue then my_package . do_blue (); when constants_up . co_black then my_package . do_black (); else null ; end case ; end ; /","title":"G-4210: Try to use CASE rather than an IF statement with multiple ELSIF paths."},{"location":"4-language-usage/4-control-structures/2-case-if-decode-nvl-nvl2-coalesce/g-4210/#g-4210-try-to-use-case-rather-than-an-if-statement-with-multiple-elsif-paths","text":"Minor Maintainability, Testability","title":"G-4210: Try to use CASE rather than an IF statement with multiple ELSIF paths."},{"location":"4-language-usage/4-control-structures/2-case-if-decode-nvl-nvl2-coalesce/g-4210/#reason","text":"if statements containing multiple elsif tend to become complex quickly.","title":"Reason"},{"location":"4-language-usage/4-control-structures/2-case-if-decode-nvl-nvl2-coalesce/g-4210/#example-bad","text":"1 2 3 4 5 6 7 8 9 10 11 12 declare l_color types_up . color_code_type ; begin if l_color = constants_up . co_red then my_package . do_red (); elsif l_color = constants_up . co_blue then my_package . do_blue (); elsif l_color = constants_up . co_black then my_package . do_black (); end if ; end ; /","title":"Example (bad)"},{"location":"4-language-usage/4-control-structures/2-case-if-decode-nvl-nvl2-coalesce/g-4210/#example-good","text":"1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 declare l_color types_up . color_code_type ; begin case l_color when constants_up . co_red then my_package . do_red (); when constants_up . co_blue then my_package . do_blue (); when constants_up . co_black then my_package . do_black (); else null ; end case ; end ; /","title":"Example (good)"},{"location":"4-language-usage/4-control-structures/2-case-if-decode-nvl-nvl2-coalesce/g-4220/","text":"G-4220: Try to use CASE rather than DECODE. Major Maintainability, Portability Reason decode is an Oracle Database specific function hard to understand and restricted to SQL only. The \u201cnewer\u201d case function is much more common, has a better readability and may be used within PL/SQL too. Be careful that decode can handle null values, which the simple case cannot - for such cases you must use the searched case and is null instead. Example (bad) 1 2 3 4 5 6 -- @formatter:off select decode ( ctry . country_code , constants_up . co_ctry_uk , constants_up . co_lang_english , constants_up . co_ctry_fr , constants_up . co_lang_french , constants_up . co_ctry_de , constants_up . co_lang_german , constants_up . co_lang_not_supported ) from countries ctry ; null values can be compared in decode : 1 2 3 4 5 6 -- @formatter:off select decode ( ctry . country_code , constants_up . co_ctry_uk , constants_up . co_lang_english , constants_up . co_ctry_fr , constants_up . co_lang_french , null , constants_up . co_lang_unknown , constants_up . co_lang_not_supported ) from countries ctry ; Example (good) 1 2 3 4 5 6 7 8 9 10 11 select case ctry . country_code when constants_up . co_ctry_uk then constants_up . co_lang_english when constants_up . co_ctry_fr then constants_up . co_lang_french when constants_up . co_ctry_de then constants_up . co_lang_german else constants_up . co_lang_not_supported end from countries ctry ; Simple case can not compare null values, instead the searched case expression must be used: 1 2 3 4 5 6 7 8 9 10 11 select case when ctry . country_code = constants_up . co_ctry_uk then constants_up . co_lang_english when ctry . country_code = constants_up . co_ctry_fr then constants_up . co_lang_french when ctry . country_code is null then constants_up . co_lang_unknown else constants_up . co_lang_not_supported end from countries ctry ;","title":"G-4220: Try to use CASE rather than DECODE."},{"location":"4-language-usage/4-control-structures/2-case-if-decode-nvl-nvl2-coalesce/g-4220/#g-4220-try-to-use-case-rather-than-decode","text":"Major Maintainability, Portability","title":"G-4220: Try to use CASE rather than DECODE."},{"location":"4-language-usage/4-control-structures/2-case-if-decode-nvl-nvl2-coalesce/g-4220/#reason","text":"decode is an Oracle Database specific function hard to understand and restricted to SQL only. The \u201cnewer\u201d case function is much more common, has a better readability and may be used within PL/SQL too. Be careful that decode can handle null values, which the simple case cannot - for such cases you must use the searched case and is null instead.","title":"Reason"},{"location":"4-language-usage/4-control-structures/2-case-if-decode-nvl-nvl2-coalesce/g-4220/#example-bad","text":"1 2 3 4 5 6 -- @formatter:off select decode ( ctry . country_code , constants_up . co_ctry_uk , constants_up . co_lang_english , constants_up . co_ctry_fr , constants_up . co_lang_french , constants_up . co_ctry_de , constants_up . co_lang_german , constants_up . co_lang_not_supported ) from countries ctry ; null values can be compared in decode : 1 2 3 4 5 6 -- @formatter:off select decode ( ctry . country_code , constants_up . co_ctry_uk , constants_up . co_lang_english , constants_up . co_ctry_fr , constants_up . co_lang_french , null , constants_up . co_lang_unknown , constants_up . co_lang_not_supported ) from countries ctry ;","title":"Example (bad)"},{"location":"4-language-usage/4-control-structures/2-case-if-decode-nvl-nvl2-coalesce/g-4220/#example-good","text":"1 2 3 4 5 6 7 8 9 10 11 select case ctry . country_code when constants_up . co_ctry_uk then constants_up . co_lang_english when constants_up . co_ctry_fr then constants_up . co_lang_french when constants_up . co_ctry_de then constants_up . co_lang_german else constants_up . co_lang_not_supported end from countries ctry ; Simple case can not compare null values, instead the searched case expression must be used: 1 2 3 4 5 6 7 8 9 10 11 select case when ctry . country_code = constants_up . co_ctry_uk then constants_up . co_lang_english when ctry . country_code = constants_up . co_ctry_fr then constants_up . co_lang_french when ctry . country_code is null then constants_up . co_lang_unknown else constants_up . co_lang_not_supported end from countries ctry ;","title":"Example (good)"},{"location":"4-language-usage/4-control-structures/2-case-if-decode-nvl-nvl2-coalesce/g-4230/","text":"G-4230: Always use a COALESCE instead of a NVL command, if parameter 2 of the NVL function is a function call or a SELECT statement. Critical Efficiency, Reliability Reason The nvl function always evaluates both parameters before deciding which one to use. This can be harmful if parameter 2 is either a function call or a select statement, as it will be executed regardless of whether parameter 1 contains a null value or not. The coalesce function does not have this drawback. Example (bad) 1 2 select nvl ( dummy , my_package . expensive_null ( value_in => dummy )) from dual ; Example (good) 1 2 select coalesce ( dummy , my_package . expensive_null ( value_in => dummy )) from dual ;","title":"G-4230: Always use a COALESCE instead of a NVL command, if parameter 2 of the NVL function is a function call or a SELECT statement."},{"location":"4-language-usage/4-control-structures/2-case-if-decode-nvl-nvl2-coalesce/g-4230/#g-4230-always-use-a-coalesce-instead-of-a-nvl-command-if-parameter-2-of-the-nvl-function-is-a-function-call-or-a-select-statement","text":"Critical Efficiency, Reliability","title":"G-4230: Always use a COALESCE instead of a NVL command, if parameter 2 of the NVL function is a function call or a SELECT statement."},{"location":"4-language-usage/4-control-structures/2-case-if-decode-nvl-nvl2-coalesce/g-4230/#reason","text":"The nvl function always evaluates both parameters before deciding which one to use. This can be harmful if parameter 2 is either a function call or a select statement, as it will be executed regardless of whether parameter 1 contains a null value or not. The coalesce function does not have this drawback.","title":"Reason"},{"location":"4-language-usage/4-control-structures/2-case-if-decode-nvl-nvl2-coalesce/g-4230/#example-bad","text":"1 2 select nvl ( dummy , my_package . expensive_null ( value_in => dummy )) from dual ;","title":"Example (bad)"},{"location":"4-language-usage/4-control-structures/2-case-if-decode-nvl-nvl2-coalesce/g-4230/#example-good","text":"1 2 select coalesce ( dummy , my_package . expensive_null ( value_in => dummy )) from dual ;","title":"Example (good)"},{"location":"4-language-usage/4-control-structures/2-case-if-decode-nvl-nvl2-coalesce/g-4240/","text":"G-4240: Always use a CASE instead of a NVL2 command if parameter 2 or 3 of NVL2 is either a function call or a SELECT statement. Critical Efficiency, Reliability Reason The nvl2 function always evaluates all parameters before deciding which one to use. This can be harmful, if parameter 2 or 3 is either a function call or a select statement, as they will be executed regardless of whether parameter 1 contains a null value or not. Example (bad) 1 2 3 select nvl2 ( dummy , my_package . expensive_nn ( value_in => dummy ) , my_package . expensive_null ( value_in => dummy )) from dual ; Example (good) 1 2 3 4 5 6 7 select case when dummy is null then my_package . expensive_null ( value_in => dummy ) else my_package . expensive_nn ( value_in => dummy ) end from dual ;","title":"G-4240: Always use a CASE instead of a NVL2 command if parameter 2 or 3 of NVL2 is either a function call or a SELECT statement."},{"location":"4-language-usage/4-control-structures/2-case-if-decode-nvl-nvl2-coalesce/g-4240/#g-4240-always-use-a-case-instead-of-a-nvl2-command-if-parameter-2-or-3-of-nvl2-is-either-a-function-call-or-a-select-statement","text":"Critical Efficiency, Reliability","title":"G-4240: Always use a CASE instead of a NVL2 command if parameter 2 or 3 of NVL2 is either a function call or a SELECT statement."},{"location":"4-language-usage/4-control-structures/2-case-if-decode-nvl-nvl2-coalesce/g-4240/#reason","text":"The nvl2 function always evaluates all parameters before deciding which one to use. This can be harmful, if parameter 2 or 3 is either a function call or a select statement, as they will be executed regardless of whether parameter 1 contains a null value or not.","title":"Reason"},{"location":"4-language-usage/4-control-structures/2-case-if-decode-nvl-nvl2-coalesce/g-4240/#example-bad","text":"1 2 3 select nvl2 ( dummy , my_package . expensive_nn ( value_in => dummy ) , my_package . expensive_null ( value_in => dummy )) from dual ;","title":"Example (bad)"},{"location":"4-language-usage/4-control-structures/2-case-if-decode-nvl-nvl2-coalesce/g-4240/#example-good","text":"1 2 3 4 5 6 7 select case when dummy is null then my_package . expensive_null ( value_in => dummy ) else my_package . expensive_nn ( value_in => dummy ) end from dual ;","title":"Example (good)"},{"location":"4-language-usage/4-control-structures/2-case-if-decode-nvl-nvl2-coalesce/g-4250/","text":"G-4250: Avoid using identical conditions in different branches of the same IF or CASE statement. Blocker Maintainability, Reliability, Testability Reason Conditions are evaluated top to bottom in branches of a case statement or chain of if / elsif statements. The first condition to evaluate as true leads to that branch being executed, the rest will never execute. Having an identical duplicated condition in another branch will never be reached and will be dead code. Example (bad) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 declare l_color types_up . color_code_type ; begin case l_color when constants_up . co_red then my_package . do_red (); when constants_up . co_blue then my_package . do_blue (); when constants_up . co_red then -- never reached my_package . do_black (); -- dead code else null ; end case ; end ; / Example (good) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 declare l_color types_up . color_code_type ; begin case l_color when constants_up . co_red then my_package . do_red (); when constants_up . co_blue then my_package . do_blue (); when constants_up . co_black then my_package . do_black (); else null ; end case ; end ; /","title":"G-4250: Avoid using identical conditions in different branches of the same IF or CASE statement."},{"location":"4-language-usage/4-control-structures/2-case-if-decode-nvl-nvl2-coalesce/g-4250/#g-4250-avoid-using-identical-conditions-in-different-branches-of-the-same-if-or-case-statement","text":"Blocker Maintainability, Reliability, Testability","title":"G-4250: Avoid using identical conditions in different branches of the same IF or CASE statement."},{"location":"4-language-usage/4-control-structures/2-case-if-decode-nvl-nvl2-coalesce/g-4250/#reason","text":"Conditions are evaluated top to bottom in branches of a case statement or chain of if / elsif statements. The first condition to evaluate as true leads to that branch being executed, the rest will never execute. Having an identical duplicated condition in another branch will never be reached and will be dead code.","title":"Reason"},{"location":"4-language-usage/4-control-structures/2-case-if-decode-nvl-nvl2-coalesce/g-4250/#example-bad","text":"1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 declare l_color types_up . color_code_type ; begin case l_color when constants_up . co_red then my_package . do_red (); when constants_up . co_blue then my_package . do_blue (); when constants_up . co_red then -- never reached my_package . do_black (); -- dead code else null ; end case ; end ; /","title":"Example (bad)"},{"location":"4-language-usage/4-control-structures/2-case-if-decode-nvl-nvl2-coalesce/g-4250/#example-good","text":"1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 declare l_color types_up . color_code_type ; begin case l_color when constants_up . co_red then my_package . do_red (); when constants_up . co_blue then my_package . do_blue (); when constants_up . co_black then my_package . do_black (); else null ; end case ; end ; /","title":"Example (good)"},{"location":"4-language-usage/4-control-structures/2-case-if-decode-nvl-nvl2-coalesce/g-4260/","text":"G-4260: Avoid inverting boolean conditions with NOT. Minor Maintainability, Testability Reason It is more readable to use the opposite comparison operator instead of inverting the comparison with not . Example (bad) 1 2 3 4 5 6 7 8 declare l_color types_up . color_code_type ; begin if not l_color != constants_up . co_red then my_package . do_red (); end if ; end ; / Example (good) 1 2 3 4 5 6 7 8 declare l_color types_up . color_code_type ; begin if l_color = constants_up . co_red then my_package . do_red (); end if ; end ; /","title":"G-4260: Avoid inverting boolean conditions with NOT."},{"location":"4-language-usage/4-control-structures/2-case-if-decode-nvl-nvl2-coalesce/g-4260/#g-4260-avoid-inverting-boolean-conditions-with-not","text":"Minor Maintainability, Testability","title":"G-4260: Avoid inverting boolean conditions with NOT."},{"location":"4-language-usage/4-control-structures/2-case-if-decode-nvl-nvl2-coalesce/g-4260/#reason","text":"It is more readable to use the opposite comparison operator instead of inverting the comparison with not .","title":"Reason"},{"location":"4-language-usage/4-control-structures/2-case-if-decode-nvl-nvl2-coalesce/g-4260/#example-bad","text":"1 2 3 4 5 6 7 8 declare l_color types_up . color_code_type ; begin if not l_color != constants_up . co_red then my_package . do_red (); end if ; end ; /","title":"Example (bad)"},{"location":"4-language-usage/4-control-structures/2-case-if-decode-nvl-nvl2-coalesce/g-4260/#example-good","text":"1 2 3 4 5 6 7 8 declare l_color types_up . color_code_type ; begin if l_color = constants_up . co_red then my_package . do_red (); end if ; end ; /","title":"Example (good)"},{"location":"4-language-usage/4-control-structures/2-case-if-decode-nvl-nvl2-coalesce/g-4270/","text":"G-4270: Avoid comparing boolean values to boolean literals. Minor Maintainability, Testability Reason It is more readable to simply use the boolean value as a condition itself, rather than use a comparison condition comparing the boolean value to the literals true or false . Example (bad) 1 2 3 4 5 6 7 8 9 10 declare co_string constant types_up . text : = '42' ; l_is_valid boolean ; begin l_is_valid : = my_package . is_valid_number ( co_string ); if l_is_valid = true then my_package . convert_number ( l_string ); end if ; end ; / Example (good) 1 2 3 4 5 6 7 8 9 10 declare co_string constant types_up . text : = '42' ; l_is_valid boolean ; begin l_is_valid : = my_package . is_valid_number ( co_string ); if l_is_valid then my_package . convert_number ( l_string ); end if ; end ; /","title":"G-4270: Avoid comparing boolean values to boolean literals."},{"location":"4-language-usage/4-control-structures/2-case-if-decode-nvl-nvl2-coalesce/g-4270/#g-4270-avoid-comparing-boolean-values-to-boolean-literals","text":"Minor Maintainability, Testability","title":"G-4270: Avoid comparing boolean values to boolean literals."},{"location":"4-language-usage/4-control-structures/2-case-if-decode-nvl-nvl2-coalesce/g-4270/#reason","text":"It is more readable to simply use the boolean value as a condition itself, rather than use a comparison condition comparing the boolean value to the literals true or false .","title":"Reason"},{"location":"4-language-usage/4-control-structures/2-case-if-decode-nvl-nvl2-coalesce/g-4270/#example-bad","text":"1 2 3 4 5 6 7 8 9 10 declare co_string constant types_up . text : = '42' ; l_is_valid boolean ; begin l_is_valid : = my_package . is_valid_number ( co_string ); if l_is_valid = true then my_package . convert_number ( l_string ); end if ; end ; /","title":"Example (bad)"},{"location":"4-language-usage/4-control-structures/2-case-if-decode-nvl-nvl2-coalesce/g-4270/#example-good","text":"1 2 3 4 5 6 7 8 9 10 declare co_string constant types_up . text : = '42' ; l_is_valid boolean ; begin l_is_valid : = my_package . is_valid_number ( co_string ); if l_is_valid then my_package . convert_number ( l_string ); end if ; end ; /","title":"Example (good)"},{"location":"4-language-usage/4-control-structures/3-flow-control/g-4310/","text":"G-4310: Never use GOTO statements in your code. Major Maintainability, Testability Reason Code containing gotos is hard to format. Indentation should be used to show logical structure, and gotos have an effect on logical structure. Using indentation to show the logical structure of a goto and its target, however, is difficult or impossible. (...) Use of gotos is a matter of religion. My dogma is that in modern languages, you can easily replace nine out of ten gotos with equivalent sequential constructs. In these simple cases, you should replace gotos out of habit. In the hard cases, you can still exorcise the goto in nine out of ten cases: You can break the code into smaller routines, use try-finally, use nested ifs, test and retest a status variable, or restructure a conditional. Eliminating the goto is harder in these cases, but it\u2019s good mental exercise (...). -- McConnell, Steve C. (2004). Code Complete. Second Edition . Microsoft Press. Example (bad) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 create or replace package body my_package is procedure password_check ( in_password in varchar2 ) is co_password constant dba_users . password % type : = in_password ; co_digitarray constant string ( 10 char ) : = '0123456789' ; co_lower_bound constant simple_integer : = 1 ; co_errno constant simple_integer : = - 20501 ; co_errmsg constant string ( 100 char ) : = 'Password must contain a digit.' ; l_isdigit boolean : = false ; l_len_pw pls_integer ; l_len_array pls_integer ; begin l_len_pw : = length ( co_password ); l_len_array : = length ( co_digitarray ); << check_digit >> for i in co_lower_bound .. l_len_array loop << check_pw_char >> for j in co_lower_bound .. l_len_pw loop if substr ( co_password , j , 1 ) = substr ( co_digitarray , i , 1 ) then l_isdigit : = true ; goto check_other_things ; end if ; end loop check_pw_char ; end loop check_digit ; << check_other_things >> null ; if not l_isdigit then raise_application_error ( co_errno , co_errmsg ); end if ; end password_check ; end my_package ; / Example (better) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 create or replace package body my_package is procedure password_check ( in_password in varchar2 ) is co_password constant dba_users . password % type : = in_password ; co_digitarray constant string ( 10 char ) : = '0123456789' ; co_lower_bound constant simple_integer : = 1 ; co_errno constant simple_integer : = - 20501 ; co_errmsg constant string ( 100 char ) : = 'Password must contain a digit.' ; l_isdigit boolean : = false ; l_len_pw pls_integer ; l_len_array pls_integer ; begin l_len_pw : = length ( co_password ); l_len_array : = length ( co_digitarray ); << check_digit >> for i in co_lower_bound .. l_len_array loop << check_pw_char >> for j in co_lower_bound .. l_len_pw loop if substr ( co_password , j , 1 ) = substr ( co_digitarray , i , 1 ) then l_isdigit : = true ; end if ; end loop check_pw_char ; end loop check_digit ; << check_other_things >> null ; if not l_isdigit then raise_application_error ( co_errno , co_errmsg ); end if ; end password_check ; end my_package ; / Example (good) 1 2 3 4 5 6 7 8 9 10 11 12 13 create or replace package body my_package is procedure password_check ( in_password in varchar2 ) is co_password constant dba_users . password % type : = in_password ; co_digitpattern constant string ( 10 char ) : = '\\d' ; co_errno constant simple_integer : = - 20501 ; co_errmsg constant string ( 100 char ) : = 'Password must contain a digit.' ; begin if not regexp_like ( co_password , co_digitpattern ) then raise_application_error ( co_errno , co_errmsg ); end if ; end password_check ; end my_package ; /","title":"G-4310: Never use GOTO statements in your code."},{"location":"4-language-usage/4-control-structures/3-flow-control/g-4310/#g-4310-never-use-goto-statements-in-your-code","text":"Major Maintainability, Testability","title":"G-4310: Never use GOTO statements in your code."},{"location":"4-language-usage/4-control-structures/3-flow-control/g-4310/#reason","text":"Code containing gotos is hard to format. Indentation should be used to show logical structure, and gotos have an effect on logical structure. Using indentation to show the logical structure of a goto and its target, however, is difficult or impossible. (...) Use of gotos is a matter of religion. My dogma is that in modern languages, you can easily replace nine out of ten gotos with equivalent sequential constructs. In these simple cases, you should replace gotos out of habit. In the hard cases, you can still exorcise the goto in nine out of ten cases: You can break the code into smaller routines, use try-finally, use nested ifs, test and retest a status variable, or restructure a conditional. Eliminating the goto is harder in these cases, but it\u2019s good mental exercise (...). -- McConnell, Steve C. (2004). Code Complete. Second Edition . Microsoft Press.","title":"Reason"},{"location":"4-language-usage/4-control-structures/3-flow-control/g-4310/#example-bad","text":"1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 create or replace package body my_package is procedure password_check ( in_password in varchar2 ) is co_password constant dba_users . password % type : = in_password ; co_digitarray constant string ( 10 char ) : = '0123456789' ; co_lower_bound constant simple_integer : = 1 ; co_errno constant simple_integer : = - 20501 ; co_errmsg constant string ( 100 char ) : = 'Password must contain a digit.' ; l_isdigit boolean : = false ; l_len_pw pls_integer ; l_len_array pls_integer ; begin l_len_pw : = length ( co_password ); l_len_array : = length ( co_digitarray ); << check_digit >> for i in co_lower_bound .. l_len_array loop << check_pw_char >> for j in co_lower_bound .. l_len_pw loop if substr ( co_password , j , 1 ) = substr ( co_digitarray , i , 1 ) then l_isdigit : = true ; goto check_other_things ; end if ; end loop check_pw_char ; end loop check_digit ; << check_other_things >> null ; if not l_isdigit then raise_application_error ( co_errno , co_errmsg ); end if ; end password_check ; end my_package ; /","title":"Example (bad)"},{"location":"4-language-usage/4-control-structures/3-flow-control/g-4310/#example-better","text":"1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 create or replace package body my_package is procedure password_check ( in_password in varchar2 ) is co_password constant dba_users . password % type : = in_password ; co_digitarray constant string ( 10 char ) : = '0123456789' ; co_lower_bound constant simple_integer : = 1 ; co_errno constant simple_integer : = - 20501 ; co_errmsg constant string ( 100 char ) : = 'Password must contain a digit.' ; l_isdigit boolean : = false ; l_len_pw pls_integer ; l_len_array pls_integer ; begin l_len_pw : = length ( co_password ); l_len_array : = length ( co_digitarray ); << check_digit >> for i in co_lower_bound .. l_len_array loop << check_pw_char >> for j in co_lower_bound .. l_len_pw loop if substr ( co_password , j , 1 ) = substr ( co_digitarray , i , 1 ) then l_isdigit : = true ; end if ; end loop check_pw_char ; end loop check_digit ; << check_other_things >> null ; if not l_isdigit then raise_application_error ( co_errno , co_errmsg ); end if ; end password_check ; end my_package ; /","title":"Example (better)"},{"location":"4-language-usage/4-control-structures/3-flow-control/g-4310/#example-good","text":"1 2 3 4 5 6 7 8 9 10 11 12 13 create or replace package body my_package is procedure password_check ( in_password in varchar2 ) is co_password constant dba_users . password % type : = in_password ; co_digitpattern constant string ( 10 char ) : = '\\d' ; co_errno constant simple_integer : = - 20501 ; co_errmsg constant string ( 100 char ) : = 'Password must contain a digit.' ; begin if not regexp_like ( co_password , co_digitpattern ) then raise_application_error ( co_errno , co_errmsg ); end if ; end password_check ; end my_package ; /","title":"Example (good)"},{"location":"4-language-usage/4-control-structures/3-flow-control/g-4320/","text":"G-4320: Always label your loops. Minor Maintainability Reason It's a good alternative for comments to indicate the start and end of a named loop processing. Example (bad) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 declare i integer ; co_min_value constant simple_integer : = 1 ; co_max_value constant simple_integer : = 10 ; co_increment constant simple_integer : = 1 ; begin i : = co_min_value ; while ( i <= co_max_value ) loop i : = i + co_increment ; end loop ; loop exit when true ; -- NOSONAR: G-4380 cannot use labelled exit here end loop ; for i in co_min_value .. co_max_value loop sys . dbms_output . put_line ( i ); end loop ; for r_employee in ( select last_name from employees ) loop sys . dbms_output . put_line ( r_employee . last_name ); end loop ; end ; / Example (good) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 declare i integer ; co_min_value constant simple_integer : = 1 ; co_max_value constant simple_integer : = 10 ; co_increment constant simple_integer : = 1 ; begin i : = co_min_value ; << while_loop >> while ( i <= co_max_value ) loop i : = i + co_increment ; end loop while_loop ; << basic_loop >> loop exit basic_loop when true ; end loop basic_loop ; << for_loop >> for i in co_min_value .. co_max_value loop sys . dbms_output . put_line ( i ); end loop for_loop ; << process_employees >> for r_employee in ( select last_name from employees ) loop sys . dbms_output . put_line ( r_employee . last_name ); end loop process_employees ; end ; /","title":"G-4320: Always label your loops."},{"location":"4-language-usage/4-control-structures/3-flow-control/g-4320/#g-4320-always-label-your-loops","text":"Minor Maintainability","title":"G-4320: Always label your loops."},{"location":"4-language-usage/4-control-structures/3-flow-control/g-4320/#reason","text":"It's a good alternative for comments to indicate the start and end of a named loop processing.","title":"Reason"},{"location":"4-language-usage/4-control-structures/3-flow-control/g-4320/#example-bad","text":"1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 declare i integer ; co_min_value constant simple_integer : = 1 ; co_max_value constant simple_integer : = 10 ; co_increment constant simple_integer : = 1 ; begin i : = co_min_value ; while ( i <= co_max_value ) loop i : = i + co_increment ; end loop ; loop exit when true ; -- NOSONAR: G-4380 cannot use labelled exit here end loop ; for i in co_min_value .. co_max_value loop sys . dbms_output . put_line ( i ); end loop ; for r_employee in ( select last_name from employees ) loop sys . dbms_output . put_line ( r_employee . last_name ); end loop ; end ; /","title":"Example (bad)"},{"location":"4-language-usage/4-control-structures/3-flow-control/g-4320/#example-good","text":"1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 declare i integer ; co_min_value constant simple_integer : = 1 ; co_max_value constant simple_integer : = 10 ; co_increment constant simple_integer : = 1 ; begin i : = co_min_value ; << while_loop >> while ( i <= co_max_value ) loop i : = i + co_increment ; end loop while_loop ; << basic_loop >> loop exit basic_loop when true ; end loop basic_loop ; << for_loop >> for i in co_min_value .. co_max_value loop sys . dbms_output . put_line ( i ); end loop for_loop ; << process_employees >> for r_employee in ( select last_name from employees ) loop sys . dbms_output . put_line ( r_employee . last_name ); end loop process_employees ; end ; /","title":"Example (good)"},{"location":"4-language-usage/4-control-structures/3-flow-control/g-4325/","text":"G-4325: Never reuse labels in inner scopes. Major Maintainability, Reliability, Testability Reason Reusing labels inside the scope of another label with the same name leads to confusion, less chance of understanding the code, and could lead to bugs (for example if using exit my_label exits at a different nesting level than expected.) Example (bad) 1 2 3 4 5 6 7 8 9 10 11 12 << my_label >> declare co_min_value constant simple_integer : = 1 ; co_max_value constant simple_integer : = 8 ; begin << my_label >> for i in co_min_value .. co_max_value loop sys . dbms_output . put_line ( i ); end loop my_label ; end my_label ; / Example (good) 1 2 3 4 5 6 7 8 9 10 11 12 << output_values >> declare co_min_value constant simple_integer : = 1 ; co_max_value constant simple_integer : = 8 ; begin << process_values >> for i in co_min_value .. co_max_value loop sys . dbms_output . put_line ( i ); end loop process_values ; end output_values ; /","title":"G-4325: Never reuse labels in inner scopes."},{"location":"4-language-usage/4-control-structures/3-flow-control/g-4325/#g-4325-never-reuse-labels-in-inner-scopes","text":"Major Maintainability, Reliability, Testability","title":"G-4325: Never reuse labels in inner scopes."},{"location":"4-language-usage/4-control-structures/3-flow-control/g-4325/#reason","text":"Reusing labels inside the scope of another label with the same name leads to confusion, less chance of understanding the code, and could lead to bugs (for example if using exit my_label exits at a different nesting level than expected.)","title":"Reason"},{"location":"4-language-usage/4-control-structures/3-flow-control/g-4325/#example-bad","text":"1 2 3 4 5 6 7 8 9 10 11 12 << my_label >> declare co_min_value constant simple_integer : = 1 ; co_max_value constant simple_integer : = 8 ; begin << my_label >> for i in co_min_value .. co_max_value loop sys . dbms_output . put_line ( i ); end loop my_label ; end my_label ; /","title":"Example (bad)"},{"location":"4-language-usage/4-control-structures/3-flow-control/g-4325/#example-good","text":"1 2 3 4 5 6 7 8 9 10 11 12 << output_values >> declare co_min_value constant simple_integer : = 1 ; co_max_value constant simple_integer : = 8 ; begin << process_values >> for i in co_min_value .. co_max_value loop sys . dbms_output . put_line ( i ); end loop process_values ; end output_values ; /","title":"Example (good)"},{"location":"4-language-usage/4-control-structures/3-flow-control/g-4330/","text":"G-4330: Always use a CURSOR FOR loop to process the complete cursor results unless you are using bulk operations. Major Maintainability Reason It is easier for the reader to see, that the complete data set is processed. Using SQL to define the data to be processed is easier to maintain and typically faster than using conditional processing within the loop. Since an exit statement is similar to a goto statement, it should be avoided, whenever possible. Example (bad) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 declare cursor c_employees is select employee_id , last_name from employees ; r_employee c_employees % rowtype ; begin open c_employees ; << read_employees >> loop fetch c_employees into r_employee ; exit read_employees when c_employees % notfound ; sys . dbms_output . put_line ( r_employee . last_name ); end loop read_employees ; close c_employees ; end ; / Example (good) 1 2 3 4 5 6 7 8 9 10 11 12 declare cursor c_employees is select employee_id , last_name from employees ; begin << read_employees >> for r_employee in c_employees loop sys . dbms_output . put_line ( r_employee . last_name ); end loop read_employees ; end ; /","title":"G-4330: Always use a CURSOR FOR loop to process the complete cursor results unless you are using bulk operations."},{"location":"4-language-usage/4-control-structures/3-flow-control/g-4330/#g-4330-always-use-a-cursor-for-loop-to-process-the-complete-cursor-results-unless-you-are-using-bulk-operations","text":"Major Maintainability","title":"G-4330: Always use a CURSOR FOR loop to process the complete cursor results unless you are using bulk operations."},{"location":"4-language-usage/4-control-structures/3-flow-control/g-4330/#reason","text":"It is easier for the reader to see, that the complete data set is processed. Using SQL to define the data to be processed is easier to maintain and typically faster than using conditional processing within the loop. Since an exit statement is similar to a goto statement, it should be avoided, whenever possible.","title":"Reason"},{"location":"4-language-usage/4-control-structures/3-flow-control/g-4330/#example-bad","text":"1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 declare cursor c_employees is select employee_id , last_name from employees ; r_employee c_employees % rowtype ; begin open c_employees ; << read_employees >> loop fetch c_employees into r_employee ; exit read_employees when c_employees % notfound ; sys . dbms_output . put_line ( r_employee . last_name ); end loop read_employees ; close c_employees ; end ; /","title":"Example (bad)"},{"location":"4-language-usage/4-control-structures/3-flow-control/g-4330/#example-good","text":"1 2 3 4 5 6 7 8 9 10 11 12 declare cursor c_employees is select employee_id , last_name from employees ; begin << read_employees >> for r_employee in c_employees loop sys . dbms_output . put_line ( r_employee . last_name ); end loop read_employees ; end ; /","title":"Example (good)"},{"location":"4-language-usage/4-control-structures/3-flow-control/g-4340/","text":"G-4340: Always use a NUMERIC FOR loop to process a dense array. Major Maintainability Reason It is easier for the reader to see, that the complete array is processed. Since an exit statement is similar to a goto statement, it should be avoided, whenever possible. Please note that: Varrays are always dense Associative arrays (or index-by tables) are either dense or sparse Nested tables start dense and may become sparse Example (bad) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 declare type t_employee_type is varray ( 10 ) of employees . employee_id % type ; t_employees t_employee_type ; co_himuro constant integer : = 118 ; co_livingston constant integer : = 177 ; co_min_value constant simple_integer : = 1 ; co_increment constant simple_integer : = 1 ; i pls_integer ; begin t_employees : = t_employee_type ( co_himuro , co_livingston ); i : = co_min_value ; << process_employees >> loop exit process_employees when i > t_employees . count (); sys . dbms_output . put_line ( t_employees ( i )); i : = i + co_increment ; end loop process_employees ; end ; / Example (good) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 declare type t_employee_type is varray ( 10 ) of employees . employee_id % type ; t_employees t_employee_type ; co_himuro constant integer : = 118 ; co_livingston constant integer : = 177 ; begin t_employees : = t_employee_type ( co_himuro , co_livingston ); << process_employees >> for i in 1 .. t_employees . count () loop sys . dbms_output . put_line ( t_employees ( i )); end loop process_employees ; end ; /","title":"G-4340: Always use a NUMERIC FOR loop to process a dense array."},{"location":"4-language-usage/4-control-structures/3-flow-control/g-4340/#g-4340-always-use-a-numeric-for-loop-to-process-a-dense-array","text":"Major Maintainability","title":"G-4340: Always use a NUMERIC FOR loop to process a dense array."},{"location":"4-language-usage/4-control-structures/3-flow-control/g-4340/#reason","text":"It is easier for the reader to see, that the complete array is processed. Since an exit statement is similar to a goto statement, it should be avoided, whenever possible. Please note that: Varrays are always dense Associative arrays (or index-by tables) are either dense or sparse Nested tables start dense and may become sparse","title":"Reason"},{"location":"4-language-usage/4-control-structures/3-flow-control/g-4340/#example-bad","text":"1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 declare type t_employee_type is varray ( 10 ) of employees . employee_id % type ; t_employees t_employee_type ; co_himuro constant integer : = 118 ; co_livingston constant integer : = 177 ; co_min_value constant simple_integer : = 1 ; co_increment constant simple_integer : = 1 ; i pls_integer ; begin t_employees : = t_employee_type ( co_himuro , co_livingston ); i : = co_min_value ; << process_employees >> loop exit process_employees when i > t_employees . count (); sys . dbms_output . put_line ( t_employees ( i )); i : = i + co_increment ; end loop process_employees ; end ; /","title":"Example (bad)"},{"location":"4-language-usage/4-control-structures/3-flow-control/g-4340/#example-good","text":"1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 declare type t_employee_type is varray ( 10 ) of employees . employee_id % type ; t_employees t_employee_type ; co_himuro constant integer : = 118 ; co_livingston constant integer : = 177 ; begin t_employees : = t_employee_type ( co_himuro , co_livingston ); << process_employees >> for i in 1 .. t_employees . count () loop sys . dbms_output . put_line ( t_employees ( i )); end loop process_employees ; end ; /","title":"Example (good)"},{"location":"4-language-usage/4-control-structures/3-flow-control/g-4350/","text":"G-4350: Always use 1 as lower and COUNT() as upper bound when looping through a dense array. Blocker Reliability Reason Doing so will not raise a value_error if the array you are looping through is empty. If you want to use first()..last() you need to check the array for emptiness beforehand to avoid the raise of value_error . Please note that: Varrays are always dense Associative arrays (or index-by tables) are either dense or sparse Nested tables start dense and may become sparse Example (bad) 1 2 3 4 5 6 7 8 9 10 11 declare type t_employee_type is table of employees . employee_id % type ; t_employees t_employee_type : = t_employee_type (); begin << process_employees >> for i in t_employees . first ().. t_employees . last () loop sys . dbms_output . put_line ( t_employees ( i )); -- some processing end loop process_employees ; end ; / Example (better) Raise an unitialized collection error if t_employees is not initialized. 1 2 3 4 5 6 7 8 9 10 11 declare type t_employee_type is table of employees . employee_id % type ; t_employees t_employee_type : = t_employee_type (); begin << process_employees >> for i in 1 .. t_employees . count () loop sys . dbms_output . put_line ( t_employees ( i )); -- some processing end loop process_employees ; end ; / Example (good) Raises neither an error nor checking whether the array is empty. t_employees.count() always returns a number (unless the array is not initialized). If the array is empty count() returns 0 and therefore the loop will not be entered. 1 2 3 4 5 6 7 8 9 10 11 12 13 declare type t_employee_type is table of employees . employee_id % type ; t_employees t_employee_type : = t_employee_type (); begin if t_employees is not null then << process_employees >> for i in 1 .. t_employees . count () loop sys . dbms_output . put_line ( t_employees ( i )); -- some processing end loop process_employees ; end if ; end ; /","title":"G-4350: Always use 1 as lower and COUNT() as upper bound when looping through a dense array."},{"location":"4-language-usage/4-control-structures/3-flow-control/g-4350/#g-4350-always-use-1-as-lower-and-count-as-upper-bound-when-looping-through-a-dense-array","text":"Blocker Reliability","title":"G-4350: Always use 1 as lower and COUNT() as upper bound when looping through a dense array."},{"location":"4-language-usage/4-control-structures/3-flow-control/g-4350/#reason","text":"Doing so will not raise a value_error if the array you are looping through is empty. If you want to use first()..last() you need to check the array for emptiness beforehand to avoid the raise of value_error . Please note that: Varrays are always dense Associative arrays (or index-by tables) are either dense or sparse Nested tables start dense and may become sparse","title":"Reason"},{"location":"4-language-usage/4-control-structures/3-flow-control/g-4350/#example-bad","text":"1 2 3 4 5 6 7 8 9 10 11 declare type t_employee_type is table of employees . employee_id % type ; t_employees t_employee_type : = t_employee_type (); begin << process_employees >> for i in t_employees . first ().. t_employees . last () loop sys . dbms_output . put_line ( t_employees ( i )); -- some processing end loop process_employees ; end ; /","title":"Example (bad)"},{"location":"4-language-usage/4-control-structures/3-flow-control/g-4350/#example-better","text":"Raise an unitialized collection error if t_employees is not initialized. 1 2 3 4 5 6 7 8 9 10 11 declare type t_employee_type is table of employees . employee_id % type ; t_employees t_employee_type : = t_employee_type (); begin << process_employees >> for i in 1 .. t_employees . count () loop sys . dbms_output . put_line ( t_employees ( i )); -- some processing end loop process_employees ; end ; /","title":"Example (better)"},{"location":"4-language-usage/4-control-structures/3-flow-control/g-4350/#example-good","text":"Raises neither an error nor checking whether the array is empty. t_employees.count() always returns a number (unless the array is not initialized). If the array is empty count() returns 0 and therefore the loop will not be entered. 1 2 3 4 5 6 7 8 9 10 11 12 13 declare type t_employee_type is table of employees . employee_id % type ; t_employees t_employee_type : = t_employee_type (); begin if t_employees is not null then << process_employees >> for i in 1 .. t_employees . count () loop sys . dbms_output . put_line ( t_employees ( i )); -- some processing end loop process_employees ; end if ; end ; /","title":"Example (good)"},{"location":"4-language-usage/4-control-structures/3-flow-control/g-4360/","text":"G-4360: Always use a WHILE loop to process a loose array. Critical Efficiency Reason When a loose (also called sparse) array is processed using a numeric for loop we have to check with all iterations whether the element exist to avoid a no_data_found exception. In addition, the number of iterations is not driven by the number of elements in the array but by the number of the lowest/highest element. The more gaps we have, the more superfluous iterations will be done. Please note that: Varrays are always dense Associative arrays (or index-by tables) are either dense or sparse Nested tables start dense and may become sparse Example (bad) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 declare -- raises no_data_found when processing 2nd record type t_employee_type is table of employees . employee_id % type ; t_employees t_employee_type ; co_rogers constant integer : = 134 ; co_matos constant integer : = 143 ; co_mcewen constant integer : = 158 ; co_index_matos constant integer : = 2 ; begin t_employees : = t_employee_type ( co_rogers , co_matos , co_mcewen ); t_employees . delete ( co_index_matos ); if t_employees is not null then << process_employees >> for i in 1 .. t_employees . count () loop sys . dbms_output . put_line ( t_employees ( i )); end loop process_employees ; end if ; end ; / Example (good) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 declare type t_employee_type is table of employees . employee_id % type ; t_employees t_employee_type ; co_rogers constant integer : = 134 ; co_matos constant integer : = 143 ; co_mcewen constant integer : = 158 ; co_index_matos constant integer : = 2 ; l_index pls_integer ; begin t_employees : = t_employee_type ( co_rogers , co_matos , co_mcewen ); t_employees . delete ( co_index_matos ); l_index : = t_employees . first (); << process_employees >> while l_index is not null loop sys . dbms_output . put_line ( t_employees ( l_index )); l_index : = t_employees . next ( l_index ); end loop process_employees ; end ; /","title":"G-4360: Always use a WHILE loop to process a loose array."},{"location":"4-language-usage/4-control-structures/3-flow-control/g-4360/#g-4360-always-use-a-while-loop-to-process-a-loose-array","text":"Critical Efficiency","title":"G-4360: Always use a WHILE loop to process a loose array."},{"location":"4-language-usage/4-control-structures/3-flow-control/g-4360/#reason","text":"When a loose (also called sparse) array is processed using a numeric for loop we have to check with all iterations whether the element exist to avoid a no_data_found exception. In addition, the number of iterations is not driven by the number of elements in the array but by the number of the lowest/highest element. The more gaps we have, the more superfluous iterations will be done. Please note that: Varrays are always dense Associative arrays (or index-by tables) are either dense or sparse Nested tables start dense and may become sparse","title":"Reason"},{"location":"4-language-usage/4-control-structures/3-flow-control/g-4360/#example-bad","text":"1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 declare -- raises no_data_found when processing 2nd record type t_employee_type is table of employees . employee_id % type ; t_employees t_employee_type ; co_rogers constant integer : = 134 ; co_matos constant integer : = 143 ; co_mcewen constant integer : = 158 ; co_index_matos constant integer : = 2 ; begin t_employees : = t_employee_type ( co_rogers , co_matos , co_mcewen ); t_employees . delete ( co_index_matos ); if t_employees is not null then << process_employees >> for i in 1 .. t_employees . count () loop sys . dbms_output . put_line ( t_employees ( i )); end loop process_employees ; end if ; end ; /","title":"Example (bad)"},{"location":"4-language-usage/4-control-structures/3-flow-control/g-4360/#example-good","text":"1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 declare type t_employee_type is table of employees . employee_id % type ; t_employees t_employee_type ; co_rogers constant integer : = 134 ; co_matos constant integer : = 143 ; co_mcewen constant integer : = 158 ; co_index_matos constant integer : = 2 ; l_index pls_integer ; begin t_employees : = t_employee_type ( co_rogers , co_matos , co_mcewen ); t_employees . delete ( co_index_matos ); l_index : = t_employees . first (); << process_employees >> while l_index is not null loop sys . dbms_output . put_line ( t_employees ( l_index )); l_index : = t_employees . next ( l_index ); end loop process_employees ; end ; /","title":"Example (good)"},{"location":"4-language-usage/4-control-structures/3-flow-control/g-4365/","text":"G-4365: Never use unconditional CONTINUE or EXIT in a loop. Major Maintainability, Testability Reason An unconditional continue is either redundant (a continue as the last statement before the end of the loop) or causes dead code. An unconditional exit causes no looping and may cause dead code as well. If continue or exit is needed, it should always have a condition. Example (bad) 1 2 3 4 5 6 7 8 9 10 11 begin << process_employees >> loop my_package . some_processing (); continue process_employees ; my_package . some_further_processing (); -- Dead code end loop process_employees ; end ; / Example (good) 1 2 3 4 5 6 7 8 9 10 11 12 13 declare co_first_year constant pls_integer : = 1900 ; begin << process_employees >> loop my_package . some_processing (); continue process_employees when extract ( year from sysdate ) > co_first_year ; my_package . some_further_processing (); end loop process_employees ; end ; /","title":"G-4365: Never use unconditional CONTINUE or EXIT in a loop."},{"location":"4-language-usage/4-control-structures/3-flow-control/g-4365/#g-4365-never-use-unconditional-continue-or-exit-in-a-loop","text":"Major Maintainability, Testability","title":"G-4365: Never use unconditional CONTINUE or EXIT in a loop."},{"location":"4-language-usage/4-control-structures/3-flow-control/g-4365/#reason","text":"An unconditional continue is either redundant (a continue as the last statement before the end of the loop) or causes dead code. An unconditional exit causes no looping and may cause dead code as well. If continue or exit is needed, it should always have a condition.","title":"Reason"},{"location":"4-language-usage/4-control-structures/3-flow-control/g-4365/#example-bad","text":"1 2 3 4 5 6 7 8 9 10 11 begin << process_employees >> loop my_package . some_processing (); continue process_employees ; my_package . some_further_processing (); -- Dead code end loop process_employees ; end ; /","title":"Example (bad)"},{"location":"4-language-usage/4-control-structures/3-flow-control/g-4365/#example-good","text":"1 2 3 4 5 6 7 8 9 10 11 12 13 declare co_first_year constant pls_integer : = 1900 ; begin << process_employees >> loop my_package . some_processing (); continue process_employees when extract ( year from sysdate ) > co_first_year ; my_package . some_further_processing (); end loop process_employees ; end ; /","title":"Example (good)"},{"location":"4-language-usage/4-control-structures/3-flow-control/g-4370/","text":"G-4370: Avoid using EXIT to stop loop processing unless you are in a basic loop. Major Maintainability Reason A numeric for loop as well as a while loop and a cursor for loop have defined loop boundaries. If you are not able to exit your loop using those loop boundaries, then a basic loop is the right loop to choose. Example (bad) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 declare i integer ; co_min_value constant simple_integer : = 1 ; co_max_value constant simple_integer : = 10 ; co_increment constant simple_integer : = 1 ; begin i : = co_min_value ; << while_loop >> while ( i <= co_max_value ) loop i : = i + co_increment ; exit while_loop when i > co_max_value ; end loop while_loop ; << basic_loop >> loop exit basic_loop when true ; end loop basic_loop ; << for_loop >> for i in co_min_value .. co_max_value loop null ; exit for_loop when i = co_max_value ; end loop for_loop ; << process_employees >> for r_employee in ( select last_name from employees ) loop sys . dbms_output . put_line ( r_employee . last_name ); null ; -- some processing exit process_employees when true ; end loop process_employees ; end ; / Example (good) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 declare i integer ; co_min_value constant simple_integer : = 1 ; co_max_value constant simple_integer : = 10 ; co_increment constant simple_integer : = 1 ; begin i : = co_min_value ; << while_loop >> while ( i <= co_max_value ) loop i : = i + co_increment ; end loop while_loop ; << basic_loop >> loop exit basic_loop when true ; end loop basic_loop ; << for_loop >> for i in co_min_value .. co_max_value loop sys . dbms_output . put_line ( i ); end loop for_loop ; << process_employees >> for r_employee in ( select last_name from employees ) loop sys . dbms_output . put_line ( r_employee . last_name ); -- some processing end loop process_employees ; end ; /","title":"G-4370: Avoid using EXIT to stop loop processing unless you are in a basic loop."},{"location":"4-language-usage/4-control-structures/3-flow-control/g-4370/#g-4370-avoid-using-exit-to-stop-loop-processing-unless-you-are-in-a-basic-loop","text":"Major Maintainability","title":"G-4370: Avoid using EXIT to stop loop processing unless you are in a basic loop."},{"location":"4-language-usage/4-control-structures/3-flow-control/g-4370/#reason","text":"A numeric for loop as well as a while loop and a cursor for loop have defined loop boundaries. If you are not able to exit your loop using those loop boundaries, then a basic loop is the right loop to choose.","title":"Reason"},{"location":"4-language-usage/4-control-structures/3-flow-control/g-4370/#example-bad","text":"1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 declare i integer ; co_min_value constant simple_integer : = 1 ; co_max_value constant simple_integer : = 10 ; co_increment constant simple_integer : = 1 ; begin i : = co_min_value ; << while_loop >> while ( i <= co_max_value ) loop i : = i + co_increment ; exit while_loop when i > co_max_value ; end loop while_loop ; << basic_loop >> loop exit basic_loop when true ; end loop basic_loop ; << for_loop >> for i in co_min_value .. co_max_value loop null ; exit for_loop when i = co_max_value ; end loop for_loop ; << process_employees >> for r_employee in ( select last_name from employees ) loop sys . dbms_output . put_line ( r_employee . last_name ); null ; -- some processing exit process_employees when true ; end loop process_employees ; end ; /","title":"Example (bad)"},{"location":"4-language-usage/4-control-structures/3-flow-control/g-4370/#example-good","text":"1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 declare i integer ; co_min_value constant simple_integer : = 1 ; co_max_value constant simple_integer : = 10 ; co_increment constant simple_integer : = 1 ; begin i : = co_min_value ; << while_loop >> while ( i <= co_max_value ) loop i : = i + co_increment ; end loop while_loop ; << basic_loop >> loop exit basic_loop when true ; end loop basic_loop ; << for_loop >> for i in co_min_value .. co_max_value loop sys . dbms_output . put_line ( i ); end loop for_loop ; << process_employees >> for r_employee in ( select last_name from employees ) loop sys . dbms_output . put_line ( r_employee . last_name ); -- some processing end loop process_employees ; end ; /","title":"Example (good)"},{"location":"4-language-usage/4-control-structures/3-flow-control/g-4375/","text":"G-4375: Always use EXIT WHEN instead of an IF statement to exit from a loop. Minor Maintainability Reason If you need to use an exit statement use its full semantic to make the code easier to understand and maintain. There is simply no need for an additional if statement. Example (bad) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 declare co_first_year constant pls_integer : = 1900 ; begin << process_employees >> loop my_package . some_processing (); if extract ( year from sysdate ) > co_first_year then exit process_employees ; -- violates also G-4365 end if ; my_package . some_further_processing (); end loop process_employees ; end ; / Example (good) 1 2 3 4 5 6 7 8 9 10 11 12 13 declare co_first_year constant pls_integer : = 1900 ; begin << process_employees >> loop my_package . some_processing (); exit process_employees when extract ( year from sysdate ) > co_first_year ; my_package . some_further_processing (); end loop process_employees ; end ; /","title":"G-4375: Always use EXIT WHEN instead of an IF statement to exit from a loop."},{"location":"4-language-usage/4-control-structures/3-flow-control/g-4375/#g-4375-always-use-exit-when-instead-of-an-if-statement-to-exit-from-a-loop","text":"Minor Maintainability","title":"G-4375: Always use EXIT WHEN instead of an IF statement to exit from a loop."},{"location":"4-language-usage/4-control-structures/3-flow-control/g-4375/#reason","text":"If you need to use an exit statement use its full semantic to make the code easier to understand and maintain. There is simply no need for an additional if statement.","title":"Reason"},{"location":"4-language-usage/4-control-structures/3-flow-control/g-4375/#example-bad","text":"1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 declare co_first_year constant pls_integer : = 1900 ; begin << process_employees >> loop my_package . some_processing (); if extract ( year from sysdate ) > co_first_year then exit process_employees ; -- violates also G-4365 end if ; my_package . some_further_processing (); end loop process_employees ; end ; /","title":"Example (bad)"},{"location":"4-language-usage/4-control-structures/3-flow-control/g-4375/#example-good","text":"1 2 3 4 5 6 7 8 9 10 11 12 13 declare co_first_year constant pls_integer : = 1900 ; begin << process_employees >> loop my_package . some_processing (); exit process_employees when extract ( year from sysdate ) > co_first_year ; my_package . some_further_processing (); end loop process_employees ; end ; /","title":"Example (good)"},{"location":"4-language-usage/4-control-structures/3-flow-control/g-4380/","text":"G-4380: Try to label your EXIT WHEN statements. Minor Maintainability Reason It's a good alternative for comments, especially for nested loops to name the loop to exit. Example (bad) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 declare co_init_loop constant simple_integer : = 0 ; co_increment constant simple_integer : = 1 ; co_exit_value constant simple_integer : = 3 ; co_outer_text constant types_up . short_text_type : = 'Outer Loop counter is ' ; co_inner_text constant types_up . short_text_type : = ' Inner Loop counter is ' ; l_outerlp pls_integer ; l_innerlp pls_integer ; begin l_outerlp : = co_init_loop ; << outerloop >> loop l_innerlp : = co_init_loop ; l_outerlp : = nvl ( l_outerlp , co_init_loop ) + co_increment ; << innerloop >> loop l_innerlp : = nvl ( l_innerlp , co_init_loop ) + co_increment ; sys . dbms_output . put_line ( co_outer_text || l_outerlp || co_inner_text || l_innerlp ); exit when l_innerlp = co_exit_value ; end loop innerloop ; exit when l_innerlp = co_exit_value ; end loop outerloop ; end ; / Example (good) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 declare co_init_loop constant simple_integer : = 0 ; co_increment constant simple_integer : = 1 ; co_exit_value constant simple_integer : = 3 ; co_outer_text constant types_up . short_text_type : = 'Outer Loop counter is ' ; co_inner_text constant types_up . short_text_type : = ' Inner Loop counter is ' ; l_outerlp pls_integer ; l_innerlp pls_integer ; begin l_outerlp : = co_init_loop ; << outerloop >> loop l_innerlp : = co_init_loop ; l_outerlp : = nvl ( l_outerlp , co_init_loop ) + co_increment ; << innerloop >> loop l_innerlp : = nvl ( l_innerlp , co_init_loop ) + co_increment ; sys . dbms_output . put_line ( co_outer_text || l_outerlp || co_inner_text || l_innerlp ); exit outerloop when l_innerlp = co_exit_value ; end loop innerloop ; end loop outerloop ; end ; /","title":"G-4380: Try to label your EXIT WHEN statements."},{"location":"4-language-usage/4-control-structures/3-flow-control/g-4380/#g-4380-try-to-label-your-exit-when-statements","text":"Minor Maintainability","title":"G-4380: Try to label your EXIT WHEN statements."},{"location":"4-language-usage/4-control-structures/3-flow-control/g-4380/#reason","text":"It's a good alternative for comments, especially for nested loops to name the loop to exit.","title":"Reason"},{"location":"4-language-usage/4-control-structures/3-flow-control/g-4380/#example-bad","text":"1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 declare co_init_loop constant simple_integer : = 0 ; co_increment constant simple_integer : = 1 ; co_exit_value constant simple_integer : = 3 ; co_outer_text constant types_up . short_text_type : = 'Outer Loop counter is ' ; co_inner_text constant types_up . short_text_type : = ' Inner Loop counter is ' ; l_outerlp pls_integer ; l_innerlp pls_integer ; begin l_outerlp : = co_init_loop ; << outerloop >> loop l_innerlp : = co_init_loop ; l_outerlp : = nvl ( l_outerlp , co_init_loop ) + co_increment ; << innerloop >> loop l_innerlp : = nvl ( l_innerlp , co_init_loop ) + co_increment ; sys . dbms_output . put_line ( co_outer_text || l_outerlp || co_inner_text || l_innerlp ); exit when l_innerlp = co_exit_value ; end loop innerloop ; exit when l_innerlp = co_exit_value ; end loop outerloop ; end ; /","title":"Example (bad)"},{"location":"4-language-usage/4-control-structures/3-flow-control/g-4380/#example-good","text":"1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 declare co_init_loop constant simple_integer : = 0 ; co_increment constant simple_integer : = 1 ; co_exit_value constant simple_integer : = 3 ; co_outer_text constant types_up . short_text_type : = 'Outer Loop counter is ' ; co_inner_text constant types_up . short_text_type : = ' Inner Loop counter is ' ; l_outerlp pls_integer ; l_innerlp pls_integer ; begin l_outerlp : = co_init_loop ; << outerloop >> loop l_innerlp : = co_init_loop ; l_outerlp : = nvl ( l_outerlp , co_init_loop ) + co_increment ; << innerloop >> loop l_innerlp : = nvl ( l_innerlp , co_init_loop ) + co_increment ; sys . dbms_output . put_line ( co_outer_text || l_outerlp || co_inner_text || l_innerlp ); exit outerloop when l_innerlp = co_exit_value ; end loop innerloop ; end loop outerloop ; end ; /","title":"Example (good)"},{"location":"4-language-usage/4-control-structures/3-flow-control/g-4385/","text":"G-4385: Never use a cursor for loop to check whether a cursor returns data. Critical Efficiency Reason You might process more data than required, which leads to bad performance. Example (bad) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 declare l_employee_found boolean : = false ; cursor c_employees is select employee_id , last_name from employees ; begin << check_employees >> for r_employee in c_employees loop l_employee_found : = true ; end loop check_employees ; if l_employee_found then null ; -- some processing; end if ; end ; / Example (good) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 declare l_employee_found boolean : = false ; cursor c_employees is select employee_id , last_name from employees ; r_employee c_employees % rowtype ; begin open c_employees ; fetch c_employees into r_employee ; l_employee_found : = c_employees % found ; close c_employees ; if l_employee_found then null ; -- some processing; end if ; end ; /","title":"G-4385: Never use a cursor for loop to check whether a cursor returns data."},{"location":"4-language-usage/4-control-structures/3-flow-control/g-4385/#g-4385-never-use-a-cursor-for-loop-to-check-whether-a-cursor-returns-data","text":"Critical Efficiency","title":"G-4385: Never use a cursor for loop to check whether a cursor returns data."},{"location":"4-language-usage/4-control-structures/3-flow-control/g-4385/#reason","text":"You might process more data than required, which leads to bad performance.","title":"Reason"},{"location":"4-language-usage/4-control-structures/3-flow-control/g-4385/#example-bad","text":"1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 declare l_employee_found boolean : = false ; cursor c_employees is select employee_id , last_name from employees ; begin << check_employees >> for r_employee in c_employees loop l_employee_found : = true ; end loop check_employees ; if l_employee_found then null ; -- some processing; end if ; end ; /","title":"Example (bad)"},{"location":"4-language-usage/4-control-structures/3-flow-control/g-4385/#example-good","text":"1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 declare l_employee_found boolean : = false ; cursor c_employees is select employee_id , last_name from employees ; r_employee c_employees % rowtype ; begin open c_employees ; fetch c_employees into r_employee ; l_employee_found : = c_employees % found ; close c_employees ; if l_employee_found then null ; -- some processing; end if ; end ; /","title":"Example (good)"},{"location":"4-language-usage/4-control-structures/3-flow-control/g-4387/","text":"G-4387: Never use a FOR LOOP for a query that should return not more than one row. Blocker Reliability, Efficiency, Readability Unsupported in db* CODECOP Validators Without access to the Oracle Data Dictionary, we cannot determine the number of rows to be processed. Reason A for loop can hide a too_many_rows exception. The more complex a query is, the higher is the risk that more than one row will be processed. This affects performance and can lead to a wrong result. A for loop can also hide a no_data_found exception and the reader cannot determine whether this is intentional or not. Example (bad) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 create or replace package body employee_api is function emp_name ( in_empno in integer ) return varchar2 is -- NOSONAR: non-deterministic l_ename emp . ename % type ; begin << fetch_name >> for r in ( select ename from emp where empno = in_empno ) loop l_ename : = r . ename ; end loop fetch_name ; return l_ename ; end emp_name ; end employee_api ; / Example (good) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 create or replace package body employee_api is function emp_name ( in_empno in integer ) return varchar2 is -- NOSONAR: non-deterministic l_ename emp . ename % type ; begin select ename into l_ename from emp where empno = in_empno ; return l_ename ; exception when no_data_found then return null ; when too_many_rows then raise ; end emp_name ; end employee_api ; /","title":"G-4387: Never use a FOR LOOP for a query that should return not more than one row."},{"location":"4-language-usage/4-control-structures/3-flow-control/g-4387/#g-4387-never-use-a-for-loop-for-a-query-that-should-return-not-more-than-one-row","text":"Blocker Reliability, Efficiency, Readability Unsupported in db* CODECOP Validators Without access to the Oracle Data Dictionary, we cannot determine the number of rows to be processed.","title":"G-4387: Never use a FOR LOOP for a query that should return not more than one row."},{"location":"4-language-usage/4-control-structures/3-flow-control/g-4387/#reason","text":"A for loop can hide a too_many_rows exception. The more complex a query is, the higher is the risk that more than one row will be processed. This affects performance and can lead to a wrong result. A for loop can also hide a no_data_found exception and the reader cannot determine whether this is intentional or not.","title":"Reason"},{"location":"4-language-usage/4-control-structures/3-flow-control/g-4387/#example-bad","text":"1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 create or replace package body employee_api is function emp_name ( in_empno in integer ) return varchar2 is -- NOSONAR: non-deterministic l_ename emp . ename % type ; begin << fetch_name >> for r in ( select ename from emp where empno = in_empno ) loop l_ename : = r . ename ; end loop fetch_name ; return l_ename ; end emp_name ; end employee_api ; /","title":"Example (bad)"},{"location":"4-language-usage/4-control-structures/3-flow-control/g-4387/#example-good","text":"1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 create or replace package body employee_api is function emp_name ( in_empno in integer ) return varchar2 is -- NOSONAR: non-deterministic l_ename emp . ename % type ; begin select ename into l_ename from emp where empno = in_empno ; return l_ename ; exception when no_data_found then return null ; when too_many_rows then raise ; end emp_name ; end employee_api ; /","title":"Example (good)"},{"location":"4-language-usage/4-control-structures/3-flow-control/g-4390/","text":"G-4390: Avoid use of unreferenced FOR loop indexes. Major Efficiency Reason If the loop index is used for anything but traffic control inside the loop, this is one of the indicators that a numeric for loop is being used incorrectly. The actual body of executable statements completely ignores the loop index. When that is the case, there is a good chance that you do not need the loop at all. Example (bad) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 declare l_row pls_integer ; l_value pls_integer ; co_lower_bound constant simple_integer : = 1 ; co_upper_bound constant simple_integer : = 5 ; co_row_incr constant simple_integer : = 1 ; co_value_incr constant simple_integer : = 10 ; co_delimiter constant types_up . short_text_type : = ' ' ; co_first_value constant simple_integer : = 100 ; begin l_row : = co_lower_bound ; l_value : = co_first_value ; << for_loop >> for i in co_lower_bound .. co_upper_bound loop sys . dbms_output . put_line ( l_row || co_delimiter || l_value ); l_row : = l_row + co_row_incr ; l_value : = l_value + co_value_incr ; end loop for_loop ; end ; / Example (good) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 declare co_lower_bound constant simple_integer : = 1 ; co_upper_bound constant simple_integer : = 5 ; co_value_incr constant simple_integer : = 10 ; co_delimiter constant types_up . short_text_type : = ' ' ; co_first_value constant simple_integer : = 100 ; begin << for_loop >> for i in co_lower_bound .. co_upper_bound loop sys . dbms_output . put_line ( i || co_delimiter || to_char ( co_first_value + i * co_value_incr )); end loop for_loop ; end ; /","title":"G-4390: Avoid use of unreferenced FOR loop indexes."},{"location":"4-language-usage/4-control-structures/3-flow-control/g-4390/#g-4390-avoid-use-of-unreferenced-for-loop-indexes","text":"Major Efficiency","title":"G-4390: Avoid use of unreferenced FOR loop indexes."},{"location":"4-language-usage/4-control-structures/3-flow-control/g-4390/#reason","text":"If the loop index is used for anything but traffic control inside the loop, this is one of the indicators that a numeric for loop is being used incorrectly. The actual body of executable statements completely ignores the loop index. When that is the case, there is a good chance that you do not need the loop at all.","title":"Reason"},{"location":"4-language-usage/4-control-structures/3-flow-control/g-4390/#example-bad","text":"1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 declare l_row pls_integer ; l_value pls_integer ; co_lower_bound constant simple_integer : = 1 ; co_upper_bound constant simple_integer : = 5 ; co_row_incr constant simple_integer : = 1 ; co_value_incr constant simple_integer : = 10 ; co_delimiter constant types_up . short_text_type : = ' ' ; co_first_value constant simple_integer : = 100 ; begin l_row : = co_lower_bound ; l_value : = co_first_value ; << for_loop >> for i in co_lower_bound .. co_upper_bound loop sys . dbms_output . put_line ( l_row || co_delimiter || l_value ); l_row : = l_row + co_row_incr ; l_value : = l_value + co_value_incr ; end loop for_loop ; end ; /","title":"Example (bad)"},{"location":"4-language-usage/4-control-structures/3-flow-control/g-4390/#example-good","text":"1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 declare co_lower_bound constant simple_integer : = 1 ; co_upper_bound constant simple_integer : = 5 ; co_value_incr constant simple_integer : = 10 ; co_delimiter constant types_up . short_text_type : = ' ' ; co_first_value constant simple_integer : = 100 ; begin << for_loop >> for i in co_lower_bound .. co_upper_bound loop sys . dbms_output . put_line ( i || co_delimiter || to_char ( co_first_value + i * co_value_incr )); end loop for_loop ; end ; /","title":"Example (good)"},{"location":"4-language-usage/4-control-structures/3-flow-control/g-4395/","text":"G-4395: Avoid hard-coded upper or lower bound values with FOR loops. Minor Changeability, Maintainability Reason Your loop statement uses a hard-coded value for either its upper or lower bounds. This creates a \"weak link\" in your program because it assumes that this value will never change. A better practice is to create a named constant (or function) and reference this named element instead of the hard-coded value. Example (bad) 1 2 3 4 5 6 7 8 begin << for_loop >> for i in 1 .. 5 loop sys . dbms_output . put_line ( i ); end loop for_loop ; end ; / Example (good) 1 2 3 4 5 6 7 8 9 10 11 declare co_lower_bound constant simple_integer : = 1 ; co_upper_bound constant simple_integer : = 5 ; begin << for_loop >> for i in co_lower_bound .. co_upper_bound loop sys . dbms_output . put_line ( i ); end loop for_loop ; end ; /","title":"G-4395: Avoid hard-coded upper or lower bound values with FOR loops."},{"location":"4-language-usage/4-control-structures/3-flow-control/g-4395/#g-4395-avoid-hard-coded-upper-or-lower-bound-values-with-for-loops","text":"Minor Changeability, Maintainability","title":"G-4395: Avoid hard-coded upper or lower bound values with FOR loops."},{"location":"4-language-usage/4-control-structures/3-flow-control/g-4395/#reason","text":"Your loop statement uses a hard-coded value for either its upper or lower bounds. This creates a \"weak link\" in your program because it assumes that this value will never change. A better practice is to create a named constant (or function) and reference this named element instead of the hard-coded value.","title":"Reason"},{"location":"4-language-usage/4-control-structures/3-flow-control/g-4395/#example-bad","text":"1 2 3 4 5 6 7 8 begin << for_loop >> for i in 1 .. 5 loop sys . dbms_output . put_line ( i ); end loop for_loop ; end ; /","title":"Example (bad)"},{"location":"4-language-usage/4-control-structures/3-flow-control/g-4395/#example-good","text":"1 2 3 4 5 6 7 8 9 10 11 declare co_lower_bound constant simple_integer : = 1 ; co_upper_bound constant simple_integer : = 5 ; begin << for_loop >> for i in co_lower_bound .. co_upper_bound loop sys . dbms_output . put_line ( i ); end loop for_loop ; end ; /","title":"Example (good)"},{"location":"4-language-usage/5-exception-handling/g-5010/","text":"G-5010: Try to use a error/logging framework for your application. Critical Reliability, Reusability, Testability Unsupported in db* CODECOP Validators We cannot identify logging framework and where it should be applied. Requires further definition regarding naming of the error/logging framework and its minimal use in PL/SQL code. Reason Having a framework to raise/handle/log your errors allows you to easily avoid duplicate application error numbers and having different error messages for the same type of error. This kind of framework should include Logging (different channels like table, mail, file, etc. if needed) Error Raising Multilanguage support if needed Translate Oracle Database error messages to a user friendly error text Error repository Example (bad) 1 2 3 4 5 6 7 8 9 declare co_start constant logger_logs . text % type : = 'start' ; co_end constant logger_logs . text % type : = 'end' ; begin sys . dbms_output . put_line ( co_start ); -- some processing sys . dbms_output . put_line ( co_end ); end ; / Example (good) 1 2 3 4 5 6 7 8 9 10 11 declare -- see https://github.com/OraOpenSource/Logger co_start constant logger_logs . text % type : = 'start' ; co_end constant logger_logs . text % type : = 'end' ; co_scope constant logger_logs . scope % type : = 'demo' ; begin logger . log ( co_start , co_scope ); -- some processing logger . log ( co_end , co_scope ); end ; /","title":"G-5010: Try to use a error/logging framework for your application."},{"location":"4-language-usage/5-exception-handling/g-5010/#g-5010-try-to-use-a-errorlogging-framework-for-your-application","text":"Critical Reliability, Reusability, Testability Unsupported in db* CODECOP Validators We cannot identify logging framework and where it should be applied. Requires further definition regarding naming of the error/logging framework and its minimal use in PL/SQL code.","title":"G-5010: Try to use a error/logging framework for your application."},{"location":"4-language-usage/5-exception-handling/g-5010/#reason","text":"Having a framework to raise/handle/log your errors allows you to easily avoid duplicate application error numbers and having different error messages for the same type of error. This kind of framework should include Logging (different channels like table, mail, file, etc. if needed) Error Raising Multilanguage support if needed Translate Oracle Database error messages to a user friendly error text Error repository","title":"Reason"},{"location":"4-language-usage/5-exception-handling/g-5010/#example-bad","text":"1 2 3 4 5 6 7 8 9 declare co_start constant logger_logs . text % type : = 'start' ; co_end constant logger_logs . text % type : = 'end' ; begin sys . dbms_output . put_line ( co_start ); -- some processing sys . dbms_output . put_line ( co_end ); end ; /","title":"Example (bad)"},{"location":"4-language-usage/5-exception-handling/g-5010/#example-good","text":"1 2 3 4 5 6 7 8 9 10 11 declare -- see https://github.com/OraOpenSource/Logger co_start constant logger_logs . text % type : = 'start' ; co_end constant logger_logs . text % type : = 'end' ; co_scope constant logger_logs . scope % type : = 'demo' ; begin logger . log ( co_start , co_scope ); -- some processing logger . log ( co_end , co_scope ); end ; /","title":"Example (good)"},{"location":"4-language-usage/5-exception-handling/g-5020/","text":"G-5020: Never handle unnamed exceptions using the error number. Critical Maintainability Reason When literals are used for error numbers the reader needs the error message manual to unterstand what is going on. Commenting the code or using constants is an option, but it is better to use named exceptions instead, because it ensures a certain level of consistency which makes maintenance easier. Example (bad) 1 2 3 4 5 6 7 8 9 10 11 12 13 declare co_no_data_found constant integer : = - 1 ; begin my_package . some_processing (); -- some code which raises an exception exception when too_many_rows then my_package . some_further_processing (); when others then if sqlcode = co_no_data_found then null ; end if ; end ; / Example (good) 1 2 3 4 5 6 7 8 9 begin my_package . some_processing (); -- some code which raises an exception exception when too_many_rows then my_package . some_further_processing (); when no_data_found then null ; -- handle no_data_found end ; /","title":"G-5020: Never handle unnamed exceptions using the error number."},{"location":"4-language-usage/5-exception-handling/g-5020/#g-5020-never-handle-unnamed-exceptions-using-the-error-number","text":"Critical Maintainability","title":"G-5020: Never handle unnamed exceptions using the error number."},{"location":"4-language-usage/5-exception-handling/g-5020/#reason","text":"When literals are used for error numbers the reader needs the error message manual to unterstand what is going on. Commenting the code or using constants is an option, but it is better to use named exceptions instead, because it ensures a certain level of consistency which makes maintenance easier.","title":"Reason"},{"location":"4-language-usage/5-exception-handling/g-5020/#example-bad","text":"1 2 3 4 5 6 7 8 9 10 11 12 13 declare co_no_data_found constant integer : = - 1 ; begin my_package . some_processing (); -- some code which raises an exception exception when too_many_rows then my_package . some_further_processing (); when others then if sqlcode = co_no_data_found then null ; end if ; end ; /","title":"Example (bad)"},{"location":"4-language-usage/5-exception-handling/g-5020/#example-good","text":"1 2 3 4 5 6 7 8 9 begin my_package . some_processing (); -- some code which raises an exception exception when too_many_rows then my_package . some_further_processing (); when no_data_found then null ; -- handle no_data_found end ; /","title":"Example (good)"},{"location":"4-language-usage/5-exception-handling/g-5030/","text":"G-5030: Never assign predefined exception names to user defined exceptions. Blocker Reliability, Testability Reason This is error-prone because your local declaration overrides the global declaration. While it is technically possible to use the same names, it causes confusion for others needing to read and maintain this code. Additionally, you will need to be very careful to use the prefix standard in front of any reference that needs to use the default exception behavior of the Oracle Database. Example (bad) Using the code below, we are not able to handle the no_data_found exception raised by the select statement as we have overwritten that exception handler. In addition, our exception handler doesn't have an exception number assigned, which should be raised when the select statement does not find any rows. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 declare l_dummy dual . dummy % type ; no_data_found exception ; -- violates also naming convention G-9113 co_rownum constant simple_integer : = 0 ; co_no_data_found constant types_up . short_text_type : = 'no_data_found' ; begin select dummy into l_dummy from dual where rownum = co_rownum ; if l_dummy is null then raise no_data_found ; -- NOSONAR: consequential error, violates G-5070 end if ; exception when no_data_found then sys . dbms_output . put_line ( co_no_data_found ); end ; / 1 2 3 4 5 6 Error report - ORA-01403: no data found ORA-06512: at line 7 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. Example (good) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 declare l_dummy dual . dummy % type ; e_empty_value exception ; co_rownum constant simple_integer : = 0 ; co_empty_value constant types_up . short_text_type : = 'empty_value' ; co_no_data_found constant types_up . short_text_type : = 'no_data_found' ; begin select dummy into l_dummy from dual where rownum = co_rownum ; if l_dummy is null then raise e_empty_value ; end if ; exception when e_empty_value then sys . dbms_output . put_line ( co_empty_value ); when no_data_found then sys . dbms_output . put_line ( co_no_data_found ); end ; /","title":"G-5030: Never assign predefined exception names to user defined exceptions."},{"location":"4-language-usage/5-exception-handling/g-5030/#g-5030-never-assign-predefined-exception-names-to-user-defined-exceptions","text":"Blocker Reliability, Testability","title":"G-5030: Never assign predefined exception names to user defined exceptions."},{"location":"4-language-usage/5-exception-handling/g-5030/#reason","text":"This is error-prone because your local declaration overrides the global declaration. While it is technically possible to use the same names, it causes confusion for others needing to read and maintain this code. Additionally, you will need to be very careful to use the prefix standard in front of any reference that needs to use the default exception behavior of the Oracle Database.","title":"Reason"},{"location":"4-language-usage/5-exception-handling/g-5030/#example-bad","text":"Using the code below, we are not able to handle the no_data_found exception raised by the select statement as we have overwritten that exception handler. In addition, our exception handler doesn't have an exception number assigned, which should be raised when the select statement does not find any rows. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 declare l_dummy dual . dummy % type ; no_data_found exception ; -- violates also naming convention G-9113 co_rownum constant simple_integer : = 0 ; co_no_data_found constant types_up . short_text_type : = 'no_data_found' ; begin select dummy into l_dummy from dual where rownum = co_rownum ; if l_dummy is null then raise no_data_found ; -- NOSONAR: consequential error, violates G-5070 end if ; exception when no_data_found then sys . dbms_output . put_line ( co_no_data_found ); end ; / 1 2 3 4 5 6 Error report - ORA-01403: no data found ORA-06512: at line 7 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.","title":"Example (bad)"},{"location":"4-language-usage/5-exception-handling/g-5030/#example-good","text":"1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 declare l_dummy dual . dummy % type ; e_empty_value exception ; co_rownum constant simple_integer : = 0 ; co_empty_value constant types_up . short_text_type : = 'empty_value' ; co_no_data_found constant types_up . short_text_type : = 'no_data_found' ; begin select dummy into l_dummy from dual where rownum = co_rownum ; if l_dummy is null then raise e_empty_value ; end if ; exception when e_empty_value then sys . dbms_output . put_line ( co_empty_value ); when no_data_found then sys . dbms_output . put_line ( co_no_data_found ); end ; /","title":"Example (good)"},{"location":"4-language-usage/5-exception-handling/g-5040/","text":"G-5040: Avoid use of WHEN OTHERS clause in an exception section without any other specific handlers. Critical Reliability Reason There is not necessarily anything wrong with using when others , but it can cause you to \"lose\" error information unless your handler code is relatively sophisticated. Generally, you should use when others to grab any and every error only after you have thought about your executable section and decided that you are not able to trap any specific exceptions. If you know, on the other hand, that a certain exception might be raised, include a handler for that error. By declaring two different exception handlers, the code more clearly states what we expect to have happen and how we want to handle the errors. That makes it easier to maintain and enhance. We also avoid hard-coding error numbers in checks against sqlcode . When using a logging framework like Logger, consider making an exception to this rule and allow a when others even without other specific handlers, but only if the when others exception handler calls a logging procedure that saves the error stack (that otherwise is lost) and the last statement of the handler is raise . Example (bad) 1 2 3 4 5 6 7 begin my_package . some_processing (); exception when others then my_package . some_further_processing (); end ; / Example (good) 1 2 3 4 5 6 7 begin my_package . some_processing (); exception when dup_val_on_index then my_package . some_further_processing (); end ; / An exception to the rule where when others can be good to log the error and then re-raise it: 1 2 3 4 5 6 7 8 begin my_package . some_processing (); exception when others then logger . log_error ( 'Unhandled Exception' ); raise ; end ; /","title":"G-5040: Avoid use of WHEN OTHERS clause in an exception section without any other specific handlers."},{"location":"4-language-usage/5-exception-handling/g-5040/#g-5040-avoid-use-of-when-others-clause-in-an-exception-section-without-any-other-specific-handlers","text":"Critical Reliability","title":"G-5040: Avoid use of WHEN OTHERS clause in an exception section without any other specific handlers."},{"location":"4-language-usage/5-exception-handling/g-5040/#reason","text":"There is not necessarily anything wrong with using when others , but it can cause you to \"lose\" error information unless your handler code is relatively sophisticated. Generally, you should use when others to grab any and every error only after you have thought about your executable section and decided that you are not able to trap any specific exceptions. If you know, on the other hand, that a certain exception might be raised, include a handler for that error. By declaring two different exception handlers, the code more clearly states what we expect to have happen and how we want to handle the errors. That makes it easier to maintain and enhance. We also avoid hard-coding error numbers in checks against sqlcode . When using a logging framework like Logger, consider making an exception to this rule and allow a when others even without other specific handlers, but only if the when others exception handler calls a logging procedure that saves the error stack (that otherwise is lost) and the last statement of the handler is raise .","title":"Reason"},{"location":"4-language-usage/5-exception-handling/g-5040/#example-bad","text":"1 2 3 4 5 6 7 begin my_package . some_processing (); exception when others then my_package . some_further_processing (); end ; /","title":"Example (bad)"},{"location":"4-language-usage/5-exception-handling/g-5040/#example-good","text":"1 2 3 4 5 6 7 begin my_package . some_processing (); exception when dup_val_on_index then my_package . some_further_processing (); end ; / An exception to the rule where when others can be good to log the error and then re-raise it: 1 2 3 4 5 6 7 8 begin my_package . some_processing (); exception when others then logger . log_error ( 'Unhandled Exception' ); raise ; end ; /","title":"Example (good)"},{"location":"4-language-usage/5-exception-handling/g-5050/","text":"G-5050: Avoid use of the RAISE_APPLICATION_ERROR built-in procedure with a hard-coded 20nnn error number or hard-coded message. Major Changeability, Maintainability Reason If you are not very organized in the way you allocate, define and use the error numbers between 20999 and 20000 (those reserved by the Oracle Database for its user community), it is very easy to end up with conflicting usages. You should assign these error numbers to named constants and consolidate all definitions within a single package. When you call raise_application_error , you should reference these named elements and error message text stored in a table. Use your own raise procedure in place of explicit calls to raise_application_error . If you are raising a \"system\" exception like no_data_found , you must use raise . However, when you want to raise an application-specific error, you use raise_application_error . If you use the latter, you then have to provide an error number and message. This leads to unnecessary and damaging hard-coded values. A more fail-safe approach is to provide a predefined raise procedure that automatically checks the error number and determines the correct way to raise the error. Example (bad) 1 2 3 4 5 6 declare co_invalid_emp_text constant types_up . text : = 'Invalid employee_id' ; begin raise_application_error ( - 20501 /* violates also G-1010 */ , co_invalid_emp_text ); end ; / Example (good) 1 2 3 4 begin err_up . raise ( in_error => err . co_invalid_employee_id ); end ; /","title":"G-5050: Avoid use of the RAISE_APPLICATION_ERROR built-in procedure with a hard-coded 20nnn error number or hard-coded message."},{"location":"4-language-usage/5-exception-handling/g-5050/#g-5050-avoid-use-of-the-raise_application_error-built-in-procedure-with-a-hard-coded-20nnn-error-number-or-hard-coded-message","text":"Major Changeability, Maintainability","title":"G-5050: Avoid use of the RAISE_APPLICATION_ERROR built-in procedure with a hard-coded 20nnn error number or hard-coded message."},{"location":"4-language-usage/5-exception-handling/g-5050/#reason","text":"If you are not very organized in the way you allocate, define and use the error numbers between 20999 and 20000 (those reserved by the Oracle Database for its user community), it is very easy to end up with conflicting usages. You should assign these error numbers to named constants and consolidate all definitions within a single package. When you call raise_application_error , you should reference these named elements and error message text stored in a table. Use your own raise procedure in place of explicit calls to raise_application_error . If you are raising a \"system\" exception like no_data_found , you must use raise . However, when you want to raise an application-specific error, you use raise_application_error . If you use the latter, you then have to provide an error number and message. This leads to unnecessary and damaging hard-coded values. A more fail-safe approach is to provide a predefined raise procedure that automatically checks the error number and determines the correct way to raise the error.","title":"Reason"},{"location":"4-language-usage/5-exception-handling/g-5050/#example-bad","text":"1 2 3 4 5 6 declare co_invalid_emp_text constant types_up . text : = 'Invalid employee_id' ; begin raise_application_error ( - 20501 /* violates also G-1010 */ , co_invalid_emp_text ); end ; /","title":"Example (bad)"},{"location":"4-language-usage/5-exception-handling/g-5050/#example-good","text":"1 2 3 4 begin err_up . raise ( in_error => err . co_invalid_employee_id ); end ; /","title":"Example (good)"},{"location":"4-language-usage/5-exception-handling/g-5060/","text":"G-5060: Avoid unhandled exceptions. Major Reliability Reason This may be your intention, but you should review the code to confirm this behavior. If you are raising an error in a program, then you are clearly predicting a situation in which that error will occur. You should consider including a handler in your code for predictable errors, allowing for a graceful and informative failure. After all, it is much more difficult for an enclosing block to be aware of the various errors you might raise and more importantly, what should be done in response to the error. The form that this failure takes does not necessarily need to be an exception. When writing functions, you may well decide that in the case of certain exceptions, you will want to return a value such as null , rather than allow an exception to propagate out of the function. Example (bad) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 create or replace package body department_api is function name_by_id ( in_id in departments . department_id % type ) -- NOSONAR: non-deterministic return departments . department_name % type is co_id constant departments . department_id % type : = in_id ; l_department_name departments . department_name % type ; begin select department_name into l_department_name from departments where department_id = co_id ; return l_department_name ; end name_by_id ; end department_api ; / Example (good) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 create or replace package body department_api is function name_by_id ( in_id in departments . department_id % type ) -- NOSONAR: non-deterministic return departments . department_name % type is co_id constant departments . department_id % type : = in_id ; l_department_name departments . department_name % type ; begin select department_name into l_department_name from departments where department_id = co_id ; return l_department_name ; exception when no_data_found then return null ; when too_many_rows then raise ; end name_by_id ; end department_api ; /","title":"G-5060: Avoid unhandled exceptions."},{"location":"4-language-usage/5-exception-handling/g-5060/#g-5060-avoid-unhandled-exceptions","text":"Major Reliability","title":"G-5060: Avoid unhandled exceptions."},{"location":"4-language-usage/5-exception-handling/g-5060/#reason","text":"This may be your intention, but you should review the code to confirm this behavior. If you are raising an error in a program, then you are clearly predicting a situation in which that error will occur. You should consider including a handler in your code for predictable errors, allowing for a graceful and informative failure. After all, it is much more difficult for an enclosing block to be aware of the various errors you might raise and more importantly, what should be done in response to the error. The form that this failure takes does not necessarily need to be an exception. When writing functions, you may well decide that in the case of certain exceptions, you will want to return a value such as null , rather than allow an exception to propagate out of the function.","title":"Reason"},{"location":"4-language-usage/5-exception-handling/g-5060/#example-bad","text":"1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 create or replace package body department_api is function name_by_id ( in_id in departments . department_id % type ) -- NOSONAR: non-deterministic return departments . department_name % type is co_id constant departments . department_id % type : = in_id ; l_department_name departments . department_name % type ; begin select department_name into l_department_name from departments where department_id = co_id ; return l_department_name ; end name_by_id ; end department_api ; /","title":"Example (bad)"},{"location":"4-language-usage/5-exception-handling/g-5060/#example-good","text":"1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 create or replace package body department_api is function name_by_id ( in_id in departments . department_id % type ) -- NOSONAR: non-deterministic return departments . department_name % type is co_id constant departments . department_id % type : = in_id ; l_department_name departments . department_name % type ; begin select department_name into l_department_name from departments where department_id = co_id ; return l_department_name ; exception when no_data_found then return null ; when too_many_rows then raise ; end name_by_id ; end department_api ; /","title":"Example (good)"},{"location":"4-language-usage/5-exception-handling/g-5070/","text":"G-5070: Avoid using Oracle predefined exceptions. Blocker Reliability Reason You have raised an exception whose name was defined by Oracle. While it is possible that you have a good reason for \"using\" one of Oracle's predefined exceptions, you should make sure that you would not be better off declaring your own exception and raising that instead. If you decide to change the exception you are using, you should apply the same consideration to your own exceptions. Specifically, do not \"re-use\" exceptions. You should define a separate exception for each error condition, rather than use the same exception for different circumstances. Being as specific as possible with the errors raised will allow developers to check for, and handle, the different kinds of errors the code might produce. Example (bad) 1 2 3 4 begin raise no_data_found ; end ; / Example (good) 1 2 3 4 5 6 declare e_my_exception exception ; begin raise e_my_exception ; end ; /","title":"G-5070: Avoid using Oracle predefined exceptions."},{"location":"4-language-usage/5-exception-handling/g-5070/#g-5070-avoid-using-oracle-predefined-exceptions","text":"Blocker Reliability","title":"G-5070: Avoid using Oracle predefined exceptions."},{"location":"4-language-usage/5-exception-handling/g-5070/#reason","text":"You have raised an exception whose name was defined by Oracle. While it is possible that you have a good reason for \"using\" one of Oracle's predefined exceptions, you should make sure that you would not be better off declaring your own exception and raising that instead. If you decide to change the exception you are using, you should apply the same consideration to your own exceptions. Specifically, do not \"re-use\" exceptions. You should define a separate exception for each error condition, rather than use the same exception for different circumstances. Being as specific as possible with the errors raised will allow developers to check for, and handle, the different kinds of errors the code might produce.","title":"Reason"},{"location":"4-language-usage/5-exception-handling/g-5070/#example-bad","text":"1 2 3 4 begin raise no_data_found ; end ; /","title":"Example (bad)"},{"location":"4-language-usage/5-exception-handling/g-5070/#example-good","text":"1 2 3 4 5 6 declare e_my_exception exception ; begin raise e_my_exception ; end ; /","title":"Example (good)"},{"location":"4-language-usage/5-exception-handling/g-5080/","text":"G-5080: Always use FORMAT_ERROR_BACKTRACE when using FORMAT_ERROR_STACK or SQLERRM. Critical Maintainability, Testability Reason In exception handler sqlerrm and format_error_stack won't tell you the exact line where the error occurred. format_error_backtrace displays the call stack at the point where an exception was raised, even if the subprogram is called from an exception handler in an outer scope. If you use sqlerrm or format_error_stack to log/display error, you should also include format_error_backtrace to identify the exact location where the exception was raised. Example (bad) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 create or replace package body order_api as procedure discount_and_recalculate ( in_customer_id in integer , in_discount in number ) is co_customer_id constant customer . id % type : = in_customer_id ; co_discount constant customer . discount_percentage % type : = in_discount ; co_error_label constant type_up . text : = 'Error: ' ; begin customer_api . apply_discount ( in_customer_id => co_customer_id , in_discount => co_discount ); customer_api . calc ( co_customer_id ); exception when zero_divide then null ; -- ignore when others then logging_package . log_error ( co_error_label || sqlerrm ); raise ; end discount_and_recalculate ; end order_api ; / Example (good) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 create or replace package body order_api as procedure discount_and_recalculate ( in_customer_id in integer , in_discount in number ) is co_customer_id constant customer . id % type : = in_customer_id ; co_discount constant customer . discount_percentage % type : = in_discount ; co_error_label constant type_up . text : = 'Error: ' ; co_backtrace_label constant type_up . text : = ' - Backtrace: ' ; begin customer_api . apply_discount ( in_customer_id => co_customer_id , in_discount => co_discount ); customer_api . calc ( co_customer_id ); exception when zero_divide then null ; -- ignore when others then logging_package . log_error ( co_error_label || sqlerrm || co_backtrace_label || sys . dbms_utility . format_error_backtrace ); raise ; end discount_and_recalculate ; end order_api ; /","title":"G-5080: Always use FORMAT_ERROR_BACKTRACE when using FORMAT_ERROR_STACK or SQLERRM."},{"location":"4-language-usage/5-exception-handling/g-5080/#g-5080-always-use-format_error_backtrace-when-using-format_error_stack-or-sqlerrm","text":"Critical Maintainability, Testability","title":"G-5080: Always use FORMAT_ERROR_BACKTRACE when using FORMAT_ERROR_STACK or SQLERRM."},{"location":"4-language-usage/5-exception-handling/g-5080/#reason","text":"In exception handler sqlerrm and format_error_stack won't tell you the exact line where the error occurred. format_error_backtrace displays the call stack at the point where an exception was raised, even if the subprogram is called from an exception handler in an outer scope. If you use sqlerrm or format_error_stack to log/display error, you should also include format_error_backtrace to identify the exact location where the exception was raised.","title":"Reason"},{"location":"4-language-usage/5-exception-handling/g-5080/#example-bad","text":"1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 create or replace package body order_api as procedure discount_and_recalculate ( in_customer_id in integer , in_discount in number ) is co_customer_id constant customer . id % type : = in_customer_id ; co_discount constant customer . discount_percentage % type : = in_discount ; co_error_label constant type_up . text : = 'Error: ' ; begin customer_api . apply_discount ( in_customer_id => co_customer_id , in_discount => co_discount ); customer_api . calc ( co_customer_id ); exception when zero_divide then null ; -- ignore when others then logging_package . log_error ( co_error_label || sqlerrm ); raise ; end discount_and_recalculate ; end order_api ; /","title":"Example (bad)"},{"location":"4-language-usage/5-exception-handling/g-5080/#example-good","text":"1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 create or replace package body order_api as procedure discount_and_recalculate ( in_customer_id in integer , in_discount in number ) is co_customer_id constant customer . id % type : = in_customer_id ; co_discount constant customer . discount_percentage % type : = in_discount ; co_error_label constant type_up . text : = 'Error: ' ; co_backtrace_label constant type_up . text : = ' - Backtrace: ' ; begin customer_api . apply_discount ( in_customer_id => co_customer_id , in_discount => co_discount ); customer_api . calc ( co_customer_id ); exception when zero_divide then null ; -- ignore when others then logging_package . log_error ( co_error_label || sqlerrm || co_backtrace_label || sys . dbms_utility . format_error_backtrace ); raise ; end discount_and_recalculate ; end order_api ; /","title":"Example (good)"},{"location":"4-language-usage/6-dynamic-sql/g-6010/","text":"G-6010: Always use a character variable to execute dynamic SQL. Major Maintainability, Testability Reason Having the executed statement in a variable makes it easier to debug your code (e.g. by logging the statement that failed). Example (bad) 1 2 3 4 5 6 7 declare l_next_val employees . employee_id % type ; begin execute immediate 'select employees_seq.nextval from dual' into l_next_val ; end ; / Example (good) 1 2 3 4 5 6 7 8 declare l_next_val employees . employee_id % type ; co_sql constant types_up . big_string_type : = 'select employees_seq.nextval from dual' ; begin execute immediate co_sql into l_next_val ; end ; /","title":"G-6010: Always use a character variable to execute dynamic SQL."},{"location":"4-language-usage/6-dynamic-sql/g-6010/#g-6010-always-use-a-character-variable-to-execute-dynamic-sql","text":"Major Maintainability, Testability","title":"G-6010: Always use a character variable to execute dynamic SQL."},{"location":"4-language-usage/6-dynamic-sql/g-6010/#reason","text":"Having the executed statement in a variable makes it easier to debug your code (e.g. by logging the statement that failed).","title":"Reason"},{"location":"4-language-usage/6-dynamic-sql/g-6010/#example-bad","text":"1 2 3 4 5 6 7 declare l_next_val employees . employee_id % type ; begin execute immediate 'select employees_seq.nextval from dual' into l_next_val ; end ; /","title":"Example (bad)"},{"location":"4-language-usage/6-dynamic-sql/g-6010/#example-good","text":"1 2 3 4 5 6 7 8 declare l_next_val employees . employee_id % type ; co_sql constant types_up . big_string_type : = 'select employees_seq.nextval from dual' ; begin execute immediate co_sql into l_next_val ; end ; /","title":"Example (good)"},{"location":"4-language-usage/6-dynamic-sql/g-6020/","text":"G-6020: Try to use output bind arguments in the RETURNING INTO clause of dynamic DML statements rather than the USING clause. Minor Maintainability Reason When a dynamic insert , update , or delete statement has a returning clause, output bind arguments can go in the returning into clause or in the using clause. You should use the returning into clause for values returned from a DML operation. Reserve out and in out bind variables for dynamic PL/SQL blocks that return values in PL/SQL variables. Example (bad) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 create or replace package body employee_api is procedure upd_salary ( in_employee_id in employees . employee_id % type , in_increase_pct in types_up . percentage , out_new_salary out employees . salary % type ) is co_employee_id constant employees . employee_id % type : = in_employee_id ; co_increase_pct constant types_up . percentage : = in_increase_pct ; co_sql_stmt constant types_up . big_string_type : = ' update employees set salary = salary + (salary / 100 * :1) where employee_id = :2 returning salary into :3' ; begin execute immediate co_sql_stmt using co_increase_pct , co_employee_id , out out_new_salary ; end upd_salary ; end employee_api ; / Example (good) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 create or replace package body employee_api is procedure upd_salary ( in_employee_id in employees . employee_id % type , in_increase_pct in types_up . percentage , out_new_salary out employees . salary % type ) is co_employee_id constant employees . employee_id % type : = in_employee_id ; co_increase_pct constant types_up . percentage : = in_increase_pct ; co_sql_stmt constant types_up . big_string_type : = ' update employees set salary = salary + (salary / 100 * :1) where employee_id = :2 returning salary into :3' ; begin execute immediate co_sql_stmt using co_increase_pct , co_employee_id returning into out_new_salary ; end upd_salary ; end employee_api ; /","title":"G-6020: Try to use output bind arguments in the RETURNING INTO clause of dynamic DML statements rather than the USING clause."},{"location":"4-language-usage/6-dynamic-sql/g-6020/#g-6020-try-to-use-output-bind-arguments-in-the-returning-into-clause-of-dynamic-dml-statements-rather-than-the-using-clause","text":"Minor Maintainability","title":"G-6020: Try to use output bind arguments in the RETURNING INTO clause of dynamic DML statements rather than the USING clause."},{"location":"4-language-usage/6-dynamic-sql/g-6020/#reason","text":"When a dynamic insert , update , or delete statement has a returning clause, output bind arguments can go in the returning into clause or in the using clause. You should use the returning into clause for values returned from a DML operation. Reserve out and in out bind variables for dynamic PL/SQL blocks that return values in PL/SQL variables.","title":"Reason"},{"location":"4-language-usage/6-dynamic-sql/g-6020/#example-bad","text":"1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 create or replace package body employee_api is procedure upd_salary ( in_employee_id in employees . employee_id % type , in_increase_pct in types_up . percentage , out_new_salary out employees . salary % type ) is co_employee_id constant employees . employee_id % type : = in_employee_id ; co_increase_pct constant types_up . percentage : = in_increase_pct ; co_sql_stmt constant types_up . big_string_type : = ' update employees set salary = salary + (salary / 100 * :1) where employee_id = :2 returning salary into :3' ; begin execute immediate co_sql_stmt using co_increase_pct , co_employee_id , out out_new_salary ; end upd_salary ; end employee_api ; /","title":"Example (bad)"},{"location":"4-language-usage/6-dynamic-sql/g-6020/#example-good","text":"1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 create or replace package body employee_api is procedure upd_salary ( in_employee_id in employees . employee_id % type , in_increase_pct in types_up . percentage , out_new_salary out employees . salary % type ) is co_employee_id constant employees . employee_id % type : = in_employee_id ; co_increase_pct constant types_up . percentage : = in_increase_pct ; co_sql_stmt constant types_up . big_string_type : = ' update employees set salary = salary + (salary / 100 * :1) where employee_id = :2 returning salary into :3' ; begin execute immediate co_sql_stmt using co_increase_pct , co_employee_id returning into out_new_salary ; end upd_salary ; end employee_api ; /","title":"Example (good)"},{"location":"4-language-usage/7-stored-objects/1-general/g-7110/","text":"G-7110: Try to use named notation when calling program units. Major Changeability, Maintainability Reason Named notation makes sure that changes to the signature of the called program unit do not affect your call. This is not needed for standard functions like ( to_char , to_date , nvl , round , etc.) but should be followed for any other stored object having more than one parameter. Example (bad) 1 2 3 4 5 6 7 declare r_employee employees % rowtype ; co_id constant employees . employee_id % type : = 107 ; begin employee_api . employee_by_id ( r_employee , co_id ); end ; / Example (good) 1 2 3 4 5 6 7 8 9 10 declare r_employee employees % rowtype ; co_id constant employees . employee_id % type : = 107 ; begin employee_api . employee_by_id ( out_row => r_employee , in_employee_id => co_id ); end ; /","title":"G-7110: Try to use named notation when calling program units."},{"location":"4-language-usage/7-stored-objects/1-general/g-7110/#g-7110-try-to-use-named-notation-when-calling-program-units","text":"Major Changeability, Maintainability","title":"G-7110: Try to use named notation when calling program units."},{"location":"4-language-usage/7-stored-objects/1-general/g-7110/#reason","text":"Named notation makes sure that changes to the signature of the called program unit do not affect your call. This is not needed for standard functions like ( to_char , to_date , nvl , round , etc.) but should be followed for any other stored object having more than one parameter.","title":"Reason"},{"location":"4-language-usage/7-stored-objects/1-general/g-7110/#example-bad","text":"1 2 3 4 5 6 7 declare r_employee employees % rowtype ; co_id constant employees . employee_id % type : = 107 ; begin employee_api . employee_by_id ( r_employee , co_id ); end ; /","title":"Example (bad)"},{"location":"4-language-usage/7-stored-objects/1-general/g-7110/#example-good","text":"1 2 3 4 5 6 7 8 9 10 declare r_employee employees % rowtype ; co_id constant employees . employee_id % type : = 107 ; begin employee_api . employee_by_id ( out_row => r_employee , in_employee_id => co_id ); end ; /","title":"Example (good)"},{"location":"4-language-usage/7-stored-objects/1-general/g-7120/","text":"G-7120: Always add the name of the program unit to its end keyword. Minor Maintainability Reason It's a good alternative for comments to indicate the end of program units, especially if they are lengthy or nested. Example (bad) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 create or replace package body employee_api is function -- NOSONAR: non-deterministic employee_by_id ( in_employee_id in integer ) return employees % rowtype is co_employee_id constant employees . employee_id % type : = in_employee_id ; r_employee employees % rowtype ; begin select * into r_employee from employees where employee_id = co_employee_id ; return r_employee ; exception when no_data_found then null ; when too_many_rows then raise ; end ; end ; / Example (good) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 create or replace package body employee_api is function employee_by_id ( in_employee_id in integer ) -- NOSONAR: non-deterministic return employees % rowtype is co_employee_id constant employees . employee_id % type : = in_employee_id ; r_employee employees % rowtype ; begin select * into r_employee from employees where employee_id = co_employee_id ; return r_employee ; exception when no_data_found then null ; when too_many_rows then raise ; end employee_by_id ; end employee_api ; /","title":"G-7120: Always add the name of the program unit to its end keyword."},{"location":"4-language-usage/7-stored-objects/1-general/g-7120/#g-7120-always-add-the-name-of-the-program-unit-to-its-end-keyword","text":"Minor Maintainability","title":"G-7120: Always add the name of the program unit to its end keyword."},{"location":"4-language-usage/7-stored-objects/1-general/g-7120/#reason","text":"It's a good alternative for comments to indicate the end of program units, especially if they are lengthy or nested.","title":"Reason"},{"location":"4-language-usage/7-stored-objects/1-general/g-7120/#example-bad","text":"1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 create or replace package body employee_api is function -- NOSONAR: non-deterministic employee_by_id ( in_employee_id in integer ) return employees % rowtype is co_employee_id constant employees . employee_id % type : = in_employee_id ; r_employee employees % rowtype ; begin select * into r_employee from employees where employee_id = co_employee_id ; return r_employee ; exception when no_data_found then null ; when too_many_rows then raise ; end ; end ; /","title":"Example (bad)"},{"location":"4-language-usage/7-stored-objects/1-general/g-7120/#example-good","text":"1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 create or replace package body employee_api is function employee_by_id ( in_employee_id in integer ) -- NOSONAR: non-deterministic return employees % rowtype is co_employee_id constant employees . employee_id % type : = in_employee_id ; r_employee employees % rowtype ; begin select * into r_employee from employees where employee_id = co_employee_id ; return r_employee ; exception when no_data_found then null ; when too_many_rows then raise ; end employee_by_id ; end employee_api ; /","title":"Example (good)"},{"location":"4-language-usage/7-stored-objects/1-general/g-7125/","text":"G-7125: Always use CREATE OR REPLACE instead of CREATE alone. Major Maintainability Reason Using create alone makes your scripts give an error if the program unit already exists, which makes the script not repeatable. It is good practice to use create or replace to avoid such errors. Example (bad) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 create package body employee_api is function employee_by_id ( in_employee_id in integer ) -- NOSONAR: non-deterministic return employees % rowtype is co_employee_id constant employees . employee_id % type : = in_employee_id ; r_employee employees % rowtype ; begin select * into r_employee from employees where employee_id = co_employee_id ; return r_employee ; exception when no_data_found then null ; when too_many_rows then raise ; end employee_by_id ; end employee_api ; / Example (good) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 create or replace package body employee_api is function employee_by_id ( in_employee_id in integer ) -- NOSONAR: non-deterministic return employees % rowtype is co_employee_id constant employees . employee_id % type : = in_employee_id ; r_employee employees % rowtype ; begin select * into r_employee from employees where employee_id = co_employee_id ; return r_employee ; exception when no_data_found then null ; when too_many_rows then raise ; end employee_by_id ; end employee_api ; /","title":"G-7125: Always use CREATE OR REPLACE instead of CREATE alone."},{"location":"4-language-usage/7-stored-objects/1-general/g-7125/#g-7125-always-use-create-or-replace-instead-of-create-alone","text":"Major Maintainability","title":"G-7125: Always use CREATE OR REPLACE instead of CREATE alone."},{"location":"4-language-usage/7-stored-objects/1-general/g-7125/#reason","text":"Using create alone makes your scripts give an error if the program unit already exists, which makes the script not repeatable. It is good practice to use create or replace to avoid such errors.","title":"Reason"},{"location":"4-language-usage/7-stored-objects/1-general/g-7125/#example-bad","text":"1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 create package body employee_api is function employee_by_id ( in_employee_id in integer ) -- NOSONAR: non-deterministic return employees % rowtype is co_employee_id constant employees . employee_id % type : = in_employee_id ; r_employee employees % rowtype ; begin select * into r_employee from employees where employee_id = co_employee_id ; return r_employee ; exception when no_data_found then null ; when too_many_rows then raise ; end employee_by_id ; end employee_api ; /","title":"Example (bad)"},{"location":"4-language-usage/7-stored-objects/1-general/g-7125/#example-good","text":"1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 create or replace package body employee_api is function employee_by_id ( in_employee_id in integer ) -- NOSONAR: non-deterministic return employees % rowtype is co_employee_id constant employees . employee_id % type : = in_employee_id ; r_employee employees % rowtype ; begin select * into r_employee from employees where employee_id = co_employee_id ; return r_employee ; exception when no_data_found then null ; when too_many_rows then raise ; end employee_by_id ; end employee_api ; /","title":"Example (good)"},{"location":"4-language-usage/7-stored-objects/1-general/g-7130/","text":"G-7130: Always use parameters or pull in definitions rather than referencing external variables in a local program unit. Major Maintainability, Reliability, Testability Reason Local procedures and functions offer an excellent way to avoid code redundancy and make your code more readable (and thus more maintainable). Your local program refers, however, an external data structure, i.e., a variable that is declared outside of the local program. Thus, it is acting as a global variable inside the program. This external dependency is hidden, and may cause problems in the future. You should instead add a parameter to the parameter list of this program and pass the value through the list. This technique makes your program more reusable and avoids scoping problems, i.e. the program unit is less tied to particular variables in the program. In addition, unit encapsulation makes maintenance a lot easier and cheaper. Example (bad) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 create or replace package body employee_api is procedure calc_salary ( in_employee_id in integer ) is co_employee_id constant employees . employee_id % type : = in_employee_id ; r_emp employees % rowtype ; function commission return number is -- NOSONAR: non-deterministic l_commission employees . salary % type : = 0 ; begin if r_emp . commission_pct is not null then l_commission : = r_emp . salary * r_emp . commission_pct ; end if ; return l_commission ; end commission ; begin select * into r_emp from employees where employee_id = co_employee_id ; sys . dbms_output . put_line ( r_emp . salary + commission ()); exception when no_data_found then null ; when too_many_rows then null ; end calc_salary ; end employee_api ; / Example (good) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 create or replace package body employee_api is procedure calc_salary ( in_employee_id in integer ) is co_employee_id constant employees . employee_id % type : = in_employee_id ; r_emp employees % rowtype ; function commission ( in_salary in number , in_comm_pct in number ) return number deterministic is co_salary constant employees . salary % type : = in_salary ; co_comm_pct constant employees . commission_pct % type : = in_comm_pct ; l_commission employees . salary % type : = 0 ; begin if in_comm_pct is not null then l_commission : = co_salary * co_comm_pct ; end if ; return l_commission ; end commission ; begin select * into r_emp from employees where employee_id = co_employee_id ; sys . dbms_output . put_line ( r_emp . salary + commission ( in_salary => r_emp . salary , in_comm_pct => r_emp . commission_pct ) ); exception when no_data_found then null ; when too_many_rows then null ; end calc_salary ; end employee_api ; /","title":"G-7130: Always use parameters or pull in definitions rather than referencing external variables in a local program unit."},{"location":"4-language-usage/7-stored-objects/1-general/g-7130/#g-7130-always-use-parameters-or-pull-in-definitions-rather-than-referencing-external-variables-in-a-local-program-unit","text":"Major Maintainability, Reliability, Testability","title":"G-7130: Always use parameters or pull in definitions rather than referencing external variables in a local program unit."},{"location":"4-language-usage/7-stored-objects/1-general/g-7130/#reason","text":"Local procedures and functions offer an excellent way to avoid code redundancy and make your code more readable (and thus more maintainable). Your local program refers, however, an external data structure, i.e., a variable that is declared outside of the local program. Thus, it is acting as a global variable inside the program. This external dependency is hidden, and may cause problems in the future. You should instead add a parameter to the parameter list of this program and pass the value through the list. This technique makes your program more reusable and avoids scoping problems, i.e. the program unit is less tied to particular variables in the program. In addition, unit encapsulation makes maintenance a lot easier and cheaper.","title":"Reason"},{"location":"4-language-usage/7-stored-objects/1-general/g-7130/#example-bad","text":"1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 create or replace package body employee_api is procedure calc_salary ( in_employee_id in integer ) is co_employee_id constant employees . employee_id % type : = in_employee_id ; r_emp employees % rowtype ; function commission return number is -- NOSONAR: non-deterministic l_commission employees . salary % type : = 0 ; begin if r_emp . commission_pct is not null then l_commission : = r_emp . salary * r_emp . commission_pct ; end if ; return l_commission ; end commission ; begin select * into r_emp from employees where employee_id = co_employee_id ; sys . dbms_output . put_line ( r_emp . salary + commission ()); exception when no_data_found then null ; when too_many_rows then null ; end calc_salary ; end employee_api ; /","title":"Example (bad)"},{"location":"4-language-usage/7-stored-objects/1-general/g-7130/#example-good","text":"1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 create or replace package body employee_api is procedure calc_salary ( in_employee_id in integer ) is co_employee_id constant employees . employee_id % type : = in_employee_id ; r_emp employees % rowtype ; function commission ( in_salary in number , in_comm_pct in number ) return number deterministic is co_salary constant employees . salary % type : = in_salary ; co_comm_pct constant employees . commission_pct % type : = in_comm_pct ; l_commission employees . salary % type : = 0 ; begin if in_comm_pct is not null then l_commission : = co_salary * co_comm_pct ; end if ; return l_commission ; end commission ; begin select * into r_emp from employees where employee_id = co_employee_id ; sys . dbms_output . put_line ( r_emp . salary + commission ( in_salary => r_emp . salary , in_comm_pct => r_emp . commission_pct ) ); exception when no_data_found then null ; when too_many_rows then null ; end calc_salary ; end employee_api ; /","title":"Example (good)"},{"location":"4-language-usage/7-stored-objects/1-general/g-7140/","text":"G-7140: Always ensure that locally defined procedures or functions are referenced. Major Maintainability, Reliability Reason This can occur as the result of changes to code over time, but you should make sure that this situation does not reflect a problem. And you should remove the declaration to avoid maintenance errors in the future. You should go through your programs and remove any part of your code that is no longer used. This is a relatively straightforward process for variables and named constants. Simply execute searches for a variable's name in that variable's scope. If you find that the only place it appears is in its declaration, delete the declaration. There is never a better time to review all the steps you took, and to understand the reasons you took them, then immediately upon completion of your program. If you wait, you will find it particularly difficult to remember those parts of the program that were needed at one point, but were rendered unnecessary in the end. Example (bad) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 create or replace package body my_package is procedure my_procedure is function my_func return number deterministic is co_true constant integer : = 1 ; begin return co_true ; end my_func ; begin null ; end my_procedure ; end my_package ; / Example (good) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 create or replace package body my_package is procedure my_procedure is function my_func return number deterministic is co_true constant integer : = 1 ; begin return co_true ; end my_func ; begin sys . dbms_output . put_line ( my_func ()); end my_procedure ; end my_package ; /","title":"G-7140: Always ensure that locally defined procedures or functions are referenced."},{"location":"4-language-usage/7-stored-objects/1-general/g-7140/#g-7140-always-ensure-that-locally-defined-procedures-or-functions-are-referenced","text":"Major Maintainability, Reliability","title":"G-7140: Always ensure that locally defined procedures or functions are referenced."},{"location":"4-language-usage/7-stored-objects/1-general/g-7140/#reason","text":"This can occur as the result of changes to code over time, but you should make sure that this situation does not reflect a problem. And you should remove the declaration to avoid maintenance errors in the future. You should go through your programs and remove any part of your code that is no longer used. This is a relatively straightforward process for variables and named constants. Simply execute searches for a variable's name in that variable's scope. If you find that the only place it appears is in its declaration, delete the declaration. There is never a better time to review all the steps you took, and to understand the reasons you took them, then immediately upon completion of your program. If you wait, you will find it particularly difficult to remember those parts of the program that were needed at one point, but were rendered unnecessary in the end.","title":"Reason"},{"location":"4-language-usage/7-stored-objects/1-general/g-7140/#example-bad","text":"1 2 3 4 5 6 7 8 9 10 11 12 13 14 create or replace package body my_package is procedure my_procedure is function my_func return number deterministic is co_true constant integer : = 1 ; begin return co_true ; end my_func ; begin null ; end my_procedure ; end my_package ; /","title":"Example (bad)"},{"location":"4-language-usage/7-stored-objects/1-general/g-7140/#example-good","text":"1 2 3 4 5 6 7 8 9 10 11 12 13 14 create or replace package body my_package is procedure my_procedure is function my_func return number deterministic is co_true constant integer : = 1 ; begin return co_true ; end my_func ; begin sys . dbms_output . put_line ( my_func ()); end my_procedure ; end my_package ; /","title":"Example (good)"},{"location":"4-language-usage/7-stored-objects/1-general/g-7150/","text":"G-7150: Try to remove unused parameters. Major Efficiency, Maintainability Reason You should go through your programs and remove any parameter that is no longer used. Example (bad) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 create or replace package body department_api is function name_by_id ( -- NOSONAR: non-deterministic in_department_id in integer , in_manager in employees % rowtype ) return departments . department_name % type is co_department_id constant departments . department_id % type : = in_department_id ; l_department_name departments . department_name % type ; begin << find_department >> begin select department_name into l_department_name from departments where department_id = co_department_id ; exception when no_data_found or too_many_rows then l_department_name : = null ; end find_department ; return l_department_name ; end name_by_id ; end department_api ; / Example (good) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 create or replace package body department_api is function name_by_id ( -- NOSONAR: non-deterministic in_department_id in integer ) return departments . department_name % type is co_department_id constant departments . department_id % type : = in_department_id ; l_department_name departments . department_name % type ; begin << find_department >> begin select department_name into l_department_name from departments where department_id = co_department_id ; exception when no_data_found or too_many_rows then l_department_name : = null ; end find_department ; return l_department_name ; end name_by_id ; end department_api ; /","title":"G-7150: Try to remove unused parameters."},{"location":"4-language-usage/7-stored-objects/1-general/g-7150/#g-7150-try-to-remove-unused-parameters","text":"Major Efficiency, Maintainability","title":"G-7150: Try to remove unused parameters."},{"location":"4-language-usage/7-stored-objects/1-general/g-7150/#reason","text":"You should go through your programs and remove any parameter that is no longer used.","title":"Reason"},{"location":"4-language-usage/7-stored-objects/1-general/g-7150/#example-bad","text":"1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 create or replace package body department_api is function name_by_id ( -- NOSONAR: non-deterministic in_department_id in integer , in_manager in employees % rowtype ) return departments . department_name % type is co_department_id constant departments . department_id % type : = in_department_id ; l_department_name departments . department_name % type ; begin << find_department >> begin select department_name into l_department_name from departments where department_id = co_department_id ; exception when no_data_found or too_many_rows then l_department_name : = null ; end find_department ; return l_department_name ; end name_by_id ; end department_api ; /","title":"Example (bad)"},{"location":"4-language-usage/7-stored-objects/1-general/g-7150/#example-good","text":"1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 create or replace package body department_api is function name_by_id ( -- NOSONAR: non-deterministic in_department_id in integer ) return departments . department_name % type is co_department_id constant departments . department_id % type : = in_department_id ; l_department_name departments . department_name % type ; begin << find_department >> begin select department_name into l_department_name from departments where department_id = co_department_id ; exception when no_data_found or too_many_rows then l_department_name : = null ; end find_department ; return l_department_name ; end name_by_id ; end department_api ; /","title":"Example (good)"},{"location":"4-language-usage/7-stored-objects/1-general/g-7160/","text":"G-7160: Always explicitly state parameter mode. Major Maintainability Reason By showing the mode of parameters, you help the reader. If you do not specify a parameter mode, the default mode is in . Explicitly showing the mode indication of all parameters is a more assertive action than simply taking the default mode. Anyone reviewing the code later will be more confident that you intended the parameter mode to be in , out or in out . Example (bad) 1 2 3 4 5 6 7 8 9 create or replace package employee_api is procedure store ( io_id in out employees . id % type , in_first_name employees . first_name % type , in_last_name employees . last_name % type , in_email employees . email % type , in_department_id employees . department_id % type , out_success out pls_integer ); end employee_up ; / Example (good) 1 2 3 4 5 6 7 8 9 create or replace package employee_api is procedure store ( io_id in out employees . id % type , in_first_name in employees . first_name % type , in_last_name in employees . last_name % type , in_email in employees . email % type , in_department_id in employees . department_id % type , out_success out pls_integer ); end employee_up ; /","title":"G-7160: Always explicitly state parameter mode."},{"location":"4-language-usage/7-stored-objects/1-general/g-7160/#g-7160-always-explicitly-state-parameter-mode","text":"Major Maintainability","title":"G-7160: Always explicitly state parameter mode."},{"location":"4-language-usage/7-stored-objects/1-general/g-7160/#reason","text":"By showing the mode of parameters, you help the reader. If you do not specify a parameter mode, the default mode is in . Explicitly showing the mode indication of all parameters is a more assertive action than simply taking the default mode. Anyone reviewing the code later will be more confident that you intended the parameter mode to be in , out or in out .","title":"Reason"},{"location":"4-language-usage/7-stored-objects/1-general/g-7160/#example-bad","text":"1 2 3 4 5 6 7 8 9 create or replace package employee_api is procedure store ( io_id in out employees . id % type , in_first_name employees . first_name % type , in_last_name employees . last_name % type , in_email employees . email % type , in_department_id employees . department_id % type , out_success out pls_integer ); end employee_up ; /","title":"Example (bad)"},{"location":"4-language-usage/7-stored-objects/1-general/g-7160/#example-good","text":"1 2 3 4 5 6 7 8 9 create or replace package employee_api is procedure store ( io_id in out employees . id % type , in_first_name in employees . first_name % type , in_last_name in employees . last_name % type , in_email in employees . email % type , in_department_id in employees . department_id % type , out_success out pls_integer ); end employee_up ; /","title":"Example (good)"},{"location":"4-language-usage/7-stored-objects/1-general/g-7170/","text":"G-7170: Avoid using an IN OUT parameter as IN or OUT only. Major Efficiency, Maintainability Unsupported in db* CODECOP Validators We cannot determine the usage of an in out parameter in a reliable way, especially when other units are involved which are maintained in another file. Reason Avoid using parameter mode in out unless you actually use the parameter both as input and output. If the code body only reads from the parameter, use in ; if the code body only assigns to the parameter, use out . If at the beginning of a project you expect a parameter to be both input and output and therefore choose in out just in case, but later development shows the parameter actually is only in or out , you should change the parameter mode accordingly. Example (bad) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 create or replace package body employee_up is procedure rcv_emp ( io_first_name in out employees . first_name % type , io_last_name in out employees . last_name % type , io_email in out employees . email % type , io_phone_number in out employees . phone_number % type , io_hire_date in out employees . hire_date % type , io_job_id in out employees . job_id % type , io_salary in out employees . salary % type , io_commission_pct in out employees . commission_pct % type , io_manager_id in out employees . manager_id % type , io_department_id in out employees . department_id % type , in_wait in integer ) is l_status pls_integer ; co_dflt_pipe_name constant string ( 30 char ) : = 'MyPipe' ; co_ok constant pls_integer : = 1 ; co_wait constant pls_integer : = in_wait ; begin -- Receive next message and unpack for each column. l_status : = sys . dbms_pipe . receive_message ( pipename => co_dflt_pipe_name , timeout => co_wait ); if l_status = co_ok then sys . dbms_pipe . unpack_message ( io_first_name ); sys . dbms_pipe . unpack_message ( io_last_name ); sys . dbms_pipe . unpack_message ( io_email ); sys . dbms_pipe . unpack_message ( io_phone_number ); sys . dbms_pipe . unpack_message ( io_hire_date ); sys . dbms_pipe . unpack_message ( io_job_id ); sys . dbms_pipe . unpack_message ( io_salary ); sys . dbms_pipe . unpack_message ( io_commission_pct ); sys . dbms_pipe . unpack_message ( io_manager_id ); sys . dbms_pipe . unpack_message ( io_department_id ); end if ; end rcv_emp ; end employee_up ; / Example (good) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 create or replace package body employee_up is procedure rcv_emp ( out_first_name out employees . first_name % type , out_last_name out employees . last_name % type , out_email out employees . email % type , out_phone_number out employees . phone_number % type , out_hire_date out employees . hire_date % type , out_job_id out employees . job_id % type , out_salary out employees . salary % type , out_commission_pct out employees . commission_pct % type , out_manager_id out employees . manager_id % type , out_department_id out employees . department_id % type , in_wait in integer ) is l_status pls_integer ; co_dflt_pipe_name constant string ( 30 char ) : = 'MyPipe' ; co_ok constant pls_integer : = 1 ; co_wait constant pls_integer : = in_wait ; begin -- Receive next message and unpack for each column. l_status : = sys . dbms_pipe . receive_message ( pipename => co_dflt_pipe_name , timeout => co_wait ); if l_status = co_ok then sys . dbms_pipe . unpack_message ( out_first_name ); sys . dbms_pipe . unpack_message ( out_last_name ); sys . dbms_pipe . unpack_message ( out_email ); sys . dbms_pipe . unpack_message ( out_phone_number ); sys . dbms_pipe . unpack_message ( out_hire_date ); sys . dbms_pipe . unpack_message ( out_job_id ); sys . dbms_pipe . unpack_message ( out_salary ); sys . dbms_pipe . unpack_message ( out_commission_pct ); sys . dbms_pipe . unpack_message ( out_manager_id ); sys . dbms_pipe . unpack_message ( out_department_id ); end if ; end rcv_emp ; end employee_up ; /","title":"G-7170: Avoid using an IN OUT parameter as IN or OUT only."},{"location":"4-language-usage/7-stored-objects/1-general/g-7170/#g-7170-avoid-using-an-in-out-parameter-as-in-or-out-only","text":"Major Efficiency, Maintainability Unsupported in db* CODECOP Validators We cannot determine the usage of an in out parameter in a reliable way, especially when other units are involved which are maintained in another file.","title":"G-7170: Avoid using an IN OUT parameter as IN or OUT only."},{"location":"4-language-usage/7-stored-objects/1-general/g-7170/#reason","text":"Avoid using parameter mode in out unless you actually use the parameter both as input and output. If the code body only reads from the parameter, use in ; if the code body only assigns to the parameter, use out . If at the beginning of a project you expect a parameter to be both input and output and therefore choose in out just in case, but later development shows the parameter actually is only in or out , you should change the parameter mode accordingly.","title":"Reason"},{"location":"4-language-usage/7-stored-objects/1-general/g-7170/#example-bad","text":"1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 create or replace package body employee_up is procedure rcv_emp ( io_first_name in out employees . first_name % type , io_last_name in out employees . last_name % type , io_email in out employees . email % type , io_phone_number in out employees . phone_number % type , io_hire_date in out employees . hire_date % type , io_job_id in out employees . job_id % type , io_salary in out employees . salary % type , io_commission_pct in out employees . commission_pct % type , io_manager_id in out employees . manager_id % type , io_department_id in out employees . department_id % type , in_wait in integer ) is l_status pls_integer ; co_dflt_pipe_name constant string ( 30 char ) : = 'MyPipe' ; co_ok constant pls_integer : = 1 ; co_wait constant pls_integer : = in_wait ; begin -- Receive next message and unpack for each column. l_status : = sys . dbms_pipe . receive_message ( pipename => co_dflt_pipe_name , timeout => co_wait ); if l_status = co_ok then sys . dbms_pipe . unpack_message ( io_first_name ); sys . dbms_pipe . unpack_message ( io_last_name ); sys . dbms_pipe . unpack_message ( io_email ); sys . dbms_pipe . unpack_message ( io_phone_number ); sys . dbms_pipe . unpack_message ( io_hire_date ); sys . dbms_pipe . unpack_message ( io_job_id ); sys . dbms_pipe . unpack_message ( io_salary ); sys . dbms_pipe . unpack_message ( io_commission_pct ); sys . dbms_pipe . unpack_message ( io_manager_id ); sys . dbms_pipe . unpack_message ( io_department_id ); end if ; end rcv_emp ; end employee_up ; /","title":"Example (bad)"},{"location":"4-language-usage/7-stored-objects/1-general/g-7170/#example-good","text":"1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 create or replace package body employee_up is procedure rcv_emp ( out_first_name out employees . first_name % type , out_last_name out employees . last_name % type , out_email out employees . email % type , out_phone_number out employees . phone_number % type , out_hire_date out employees . hire_date % type , out_job_id out employees . job_id % type , out_salary out employees . salary % type , out_commission_pct out employees . commission_pct % type , out_manager_id out employees . manager_id % type , out_department_id out employees . department_id % type , in_wait in integer ) is l_status pls_integer ; co_dflt_pipe_name constant string ( 30 char ) : = 'MyPipe' ; co_ok constant pls_integer : = 1 ; co_wait constant pls_integer : = in_wait ; begin -- Receive next message and unpack for each column. l_status : = sys . dbms_pipe . receive_message ( pipename => co_dflt_pipe_name , timeout => co_wait ); if l_status = co_ok then sys . dbms_pipe . unpack_message ( out_first_name ); sys . dbms_pipe . unpack_message ( out_last_name ); sys . dbms_pipe . unpack_message ( out_email ); sys . dbms_pipe . unpack_message ( out_phone_number ); sys . dbms_pipe . unpack_message ( out_hire_date ); sys . dbms_pipe . unpack_message ( out_job_id ); sys . dbms_pipe . unpack_message ( out_salary ); sys . dbms_pipe . unpack_message ( out_commission_pct ); sys . dbms_pipe . unpack_message ( out_manager_id ); sys . dbms_pipe . unpack_message ( out_department_id ); end if ; end rcv_emp ; end employee_up ; /","title":"Example (good)"},{"location":"4-language-usage/7-stored-objects/2-packages/g-7210/","text":"G-7210: Try to keep your packages small. Include only few procedures and functions that are used in the same context. Major Efficiency, Maintainability Reason The entire package is loaded into memory when the package is called the first time. To optimize memory consumption and keep load time small packages should be kept small but include components that are used together.","title":"G-7210: Try to keep your packages small. Include only few procedures and functions that are used in the same context."},{"location":"4-language-usage/7-stored-objects/2-packages/g-7210/#g-7210-try-to-keep-your-packages-small-include-only-few-procedures-and-functions-that-are-used-in-the-same-context","text":"Major Efficiency, Maintainability","title":"G-7210: Try to keep your packages small. Include only few procedures and functions that are used in the same context."},{"location":"4-language-usage/7-stored-objects/2-packages/g-7210/#reason","text":"The entire package is loaded into memory when the package is called the first time. To optimize memory consumption and keep load time small packages should be kept small but include components that are used together.","title":"Reason"},{"location":"4-language-usage/7-stored-objects/2-packages/g-7220/","text":"G-7220: Always use forward declaration for private functions and procedures. Minor Changeability Reason Having forward declarations allows you to order the functions and procedures of the package in a reasonable way. Example (bad) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 create or replace package department_api is procedure del ( in_department_id in departments . department_id % type ); end department_api ; / create or replace package body department_api is function does_exist ( in_department_id in departments . department_id % type ) -- violates also G-7460 return boolean is co_department_id constant departments . department_id % type : = in_department_id ; l_return pls_integer ; begin << check_row_exists >> begin select 1 into l_return from departments where department_id = co_department_id ; exception when no_data_found or too_many_rows then l_return : = 0 ; end check_row_exists ; return l_return = 1 ; end does_exist ; procedure del ( in_department_id in departments . department_id % type ) is co_department_id constant departments . department_id % type : = in_department_id ; begin if does_exist ( co_department_id ) then null ; end if ; end del ; end department_api ; / Example (good) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 create or replace package department_api is procedure del ( in_department_id in departments . department_id % type ); end department_api ; / create or replace package body department_api is function does_exist ( in_department_id in departments . department_id % type ) -- NOSONAR: non-deterministic return boolean ; procedure del ( in_department_id in departments . department_id % type ) is co_department_id constant departments . department_id % type : = in_department_id ; begin if does_exist ( co_department_id ) then null ; end if ; end del ; function does_exist ( in_department_id in departments . department_id % type ) -- NOSONAR: non-deterministic return boolean is co_department_id constant departments . department_id % type : = in_department_id ; l_return pls_integer ; begin << check_row_exists >> begin select 1 into l_return from departments where department_id = co_department_id ; exception when no_data_found or too_many_rows then l_return : = 0 ; end check_row_exists ; return l_return = 1 ; end does_exist ; end department_api ; /","title":"G-7220: Always use forward declaration for private functions and procedures."},{"location":"4-language-usage/7-stored-objects/2-packages/g-7220/#g-7220-always-use-forward-declaration-for-private-functions-and-procedures","text":"Minor Changeability","title":"G-7220: Always use forward declaration for private functions and procedures."},{"location":"4-language-usage/7-stored-objects/2-packages/g-7220/#reason","text":"Having forward declarations allows you to order the functions and procedures of the package in a reasonable way.","title":"Reason"},{"location":"4-language-usage/7-stored-objects/2-packages/g-7220/#example-bad","text":"1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 create or replace package department_api is procedure del ( in_department_id in departments . department_id % type ); end department_api ; / create or replace package body department_api is function does_exist ( in_department_id in departments . department_id % type ) -- violates also G-7460 return boolean is co_department_id constant departments . department_id % type : = in_department_id ; l_return pls_integer ; begin << check_row_exists >> begin select 1 into l_return from departments where department_id = co_department_id ; exception when no_data_found or too_many_rows then l_return : = 0 ; end check_row_exists ; return l_return = 1 ; end does_exist ; procedure del ( in_department_id in departments . department_id % type ) is co_department_id constant departments . department_id % type : = in_department_id ; begin if does_exist ( co_department_id ) then null ; end if ; end del ; end department_api ; /","title":"Example (bad)"},{"location":"4-language-usage/7-stored-objects/2-packages/g-7220/#example-good","text":"1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 create or replace package department_api is procedure del ( in_department_id in departments . department_id % type ); end department_api ; / create or replace package body department_api is function does_exist ( in_department_id in departments . department_id % type ) -- NOSONAR: non-deterministic return boolean ; procedure del ( in_department_id in departments . department_id % type ) is co_department_id constant departments . department_id % type : = in_department_id ; begin if does_exist ( co_department_id ) then null ; end if ; end del ; function does_exist ( in_department_id in departments . department_id % type ) -- NOSONAR: non-deterministic return boolean is co_department_id constant departments . department_id % type : = in_department_id ; l_return pls_integer ; begin << check_row_exists >> begin select 1 into l_return from departments where department_id = co_department_id ; exception when no_data_found or too_many_rows then l_return : = 0 ; end check_row_exists ; return l_return = 1 ; end does_exist ; end department_api ; /","title":"Example (good)"},{"location":"4-language-usage/7-stored-objects/2-packages/g-7230/","text":"G-7230: Avoid declaring global variables public. Major Reliability Reason You should always declare package-level data (non-constants) inside the package body. You can then define \"get and set\" methods (functions and procedures, respectively) in the package specification to provide controlled access to that data. By doing so you can guarantee data integrity, you can change your data structure implementation, and also track access to those data structures. Data structures (scalar variables, collections, cursors) declared in the package specification (not within any specific program) can be referenced directly by any program running in a session with execute rights to the package. Instead, declare all package-level data in the package body and provide \"get and set\" methods - a function to get the value and a procedure to set the value - in the package specification. Developers then can access the data using these methods - and will automatically follow all rules you set upon data modification. For package-level constants, consider whether the constant should be public and usable from other code, or if only relevant for code within the package. If the latter, declare the constant in the package body. If the former, it is typically good practice to place the constants in a package specification that only holds constants. Example (bad) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 create or replace package employee_api as co_min_increase constant types_up . sal_increase_type : = 0 . 01 ; co_max_increase constant types_up . sal_increase_type : = 0 . 5 ; g_salary_increase types_up . sal_increase_type : = co_min_increase ; procedure set_salary_increase ( in_increase in types_up . sal_increase_type ); function salary_increase return types_up . sal_increase_type ; -- NOSONAR: non-deterministic end employee_api ; / create or replace package body employee_api as procedure set_salary_increase ( in_increase in types_up . sal_increase_type ) is co_increase constant types_up . sal_increase_type : = in_increase ; begin g_salary_increase : = greatest ( least ( co_increase , co_max_increase ) , co_min_increase ); end set_salary_increase ; function salary_increase return types_up . sal_increase_type is -- NOSONAR: non-deterministic begin return g_salary_increase ; end salary_increase ; end employee_api ; / Example (good) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 create or replace package constants_up as co_min_increase constant types_up . sal_increase_type : = 0 . 01 ; co_max_increase constant types_up . sal_increase_type : = 0 . 5 ; end constants_up ; / create or replace package employee_api as procedure set_salary_increase ( in_increase in types_up . sal_increase_type ); function salary_increase return types_up . sal_increase_type ; -- NOSONAR: non-deterministic end employee_api ; / create or replace package body employee_api as g_salary_increase types_up . sal_increase_type ; procedure init ; procedure set_salary_increase ( in_increase in types_up . sal_increase_type ) is co_increase constant types_up . sal_increase_type : = in_increase ; begin g_salary_increase : = greatest ( least ( co_increase , constants_up . co_max_increase ) , constants_up . co_min_increase ); end set_salary_increase ; function salary_increase return types_up . sal_increase_type is -- NOSONAR: non-deterministic begin return g_salary_increase ; end salary_increase ; procedure init is begin g_salary_increase : = constants_up . co_min_increase ; end init ; begin init (); end employee_api ; /","title":"G-7230: Avoid declaring global variables public."},{"location":"4-language-usage/7-stored-objects/2-packages/g-7230/#g-7230-avoid-declaring-global-variables-public","text":"Major Reliability","title":"G-7230: Avoid declaring global variables public."},{"location":"4-language-usage/7-stored-objects/2-packages/g-7230/#reason","text":"You should always declare package-level data (non-constants) inside the package body. You can then define \"get and set\" methods (functions and procedures, respectively) in the package specification to provide controlled access to that data. By doing so you can guarantee data integrity, you can change your data structure implementation, and also track access to those data structures. Data structures (scalar variables, collections, cursors) declared in the package specification (not within any specific program) can be referenced directly by any program running in a session with execute rights to the package. Instead, declare all package-level data in the package body and provide \"get and set\" methods - a function to get the value and a procedure to set the value - in the package specification. Developers then can access the data using these methods - and will automatically follow all rules you set upon data modification. For package-level constants, consider whether the constant should be public and usable from other code, or if only relevant for code within the package. If the latter, declare the constant in the package body. If the former, it is typically good practice to place the constants in a package specification that only holds constants.","title":"Reason"},{"location":"4-language-usage/7-stored-objects/2-packages/g-7230/#example-bad","text":"1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 create or replace package employee_api as co_min_increase constant types_up . sal_increase_type : = 0 . 01 ; co_max_increase constant types_up . sal_increase_type : = 0 . 5 ; g_salary_increase types_up . sal_increase_type : = co_min_increase ; procedure set_salary_increase ( in_increase in types_up . sal_increase_type ); function salary_increase return types_up . sal_increase_type ; -- NOSONAR: non-deterministic end employee_api ; / create or replace package body employee_api as procedure set_salary_increase ( in_increase in types_up . sal_increase_type ) is co_increase constant types_up . sal_increase_type : = in_increase ; begin g_salary_increase : = greatest ( least ( co_increase , co_max_increase ) , co_min_increase ); end set_salary_increase ; function salary_increase return types_up . sal_increase_type is -- NOSONAR: non-deterministic begin return g_salary_increase ; end salary_increase ; end employee_api ; /","title":"Example (bad)"},{"location":"4-language-usage/7-stored-objects/2-packages/g-7230/#example-good","text":"1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 create or replace package constants_up as co_min_increase constant types_up . sal_increase_type : = 0 . 01 ; co_max_increase constant types_up . sal_increase_type : = 0 . 5 ; end constants_up ; / create or replace package employee_api as procedure set_salary_increase ( in_increase in types_up . sal_increase_type ); function salary_increase return types_up . sal_increase_type ; -- NOSONAR: non-deterministic end employee_api ; / create or replace package body employee_api as g_salary_increase types_up . sal_increase_type ; procedure init ; procedure set_salary_increase ( in_increase in types_up . sal_increase_type ) is co_increase constant types_up . sal_increase_type : = in_increase ; begin g_salary_increase : = greatest ( least ( co_increase , constants_up . co_max_increase ) , constants_up . co_min_increase ); end set_salary_increase ; function salary_increase return types_up . sal_increase_type is -- NOSONAR: non-deterministic begin return g_salary_increase ; end salary_increase ; procedure init is begin g_salary_increase : = constants_up . co_min_increase ; end init ; begin init (); end employee_api ; /","title":"Example (good)"},{"location":"4-language-usage/7-stored-objects/2-packages/g-7250/","text":"G-7250: Never use RETURN in package initialization block. Major Maintainability Reason The purpose of the initialization block of a package body is to set initial values of the global variables of the package (initialize the package state). Although return is syntactically allowed in this block, it makes no sense. If it is the last keyword of the block, it is superfluous. If it is not the last keyword, then all code after the return is unreachable and thus dead code. Example (bad) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 create or replace package body employee_api as g_salary_increase types_up . sal_increase_type ; procedure set_salary_increase ( in_increase in types_up . sal_increase_type ) is co_increase constant types_up . sal_increase_type : = in_increase ; begin g_salary_increase : = greatest ( least ( co_increase , constants_up . max_salary_increase ()) , constants_up . min_salary_increase ()); end set_salary_increase ; function salary_increase return types_up . sal_increase_type is -- NOSONAR: non-deterministic begin return g_salary_increase ; end salary_increase ; begin g_salary_increase : = constants_up . min_salary_increase (); return ; -- violates also G-1040 set_salary_increase ( constants_up . min_salary_increase ()); -- dead code end employee_api ; / Example (good) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 create or replace package body employee_api as g_salary_increase types_up . sal_increase_type ; procedure set_salary_increase ( in_increase in types_up . sal_increase_type ) is co_increase constant types_up . sal_increase_type : = in_increase ; begin g_salary_increase : = greatest ( least ( co_increase , constants_up . max_salary_increase ()) , constants_up . min_salary_increase ()); end set_salary_increase ; function salary_increase return types_up . sal_increase_type is -- NOSONAR: non-deterministic begin return g_salary_increase ; end salary_increase ; begin g_salary_increase : = constants_up . min_salary_increase (); end employee_api ; /","title":"G-7250: Never use RETURN in package initialization block."},{"location":"4-language-usage/7-stored-objects/2-packages/g-7250/#g-7250-never-use-return-in-package-initialization-block","text":"Major Maintainability","title":"G-7250: Never use RETURN in package initialization block."},{"location":"4-language-usage/7-stored-objects/2-packages/g-7250/#reason","text":"The purpose of the initialization block of a package body is to set initial values of the global variables of the package (initialize the package state). Although return is syntactically allowed in this block, it makes no sense. If it is the last keyword of the block, it is superfluous. If it is not the last keyword, then all code after the return is unreachable and thus dead code.","title":"Reason"},{"location":"4-language-usage/7-stored-objects/2-packages/g-7250/#example-bad","text":"1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 create or replace package body employee_api as g_salary_increase types_up . sal_increase_type ; procedure set_salary_increase ( in_increase in types_up . sal_increase_type ) is co_increase constant types_up . sal_increase_type : = in_increase ; begin g_salary_increase : = greatest ( least ( co_increase , constants_up . max_salary_increase ()) , constants_up . min_salary_increase ()); end set_salary_increase ; function salary_increase return types_up . sal_increase_type is -- NOSONAR: non-deterministic begin return g_salary_increase ; end salary_increase ; begin g_salary_increase : = constants_up . min_salary_increase (); return ; -- violates also G-1040 set_salary_increase ( constants_up . min_salary_increase ()); -- dead code end employee_api ; /","title":"Example (bad)"},{"location":"4-language-usage/7-stored-objects/2-packages/g-7250/#example-good","text":"1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 create or replace package body employee_api as g_salary_increase types_up . sal_increase_type ; procedure set_salary_increase ( in_increase in types_up . sal_increase_type ) is co_increase constant types_up . sal_increase_type : = in_increase ; begin g_salary_increase : = greatest ( least ( co_increase , constants_up . max_salary_increase ()) , constants_up . min_salary_increase ()); end set_salary_increase ; function salary_increase return types_up . sal_increase_type is -- NOSONAR: non-deterministic begin return g_salary_increase ; end salary_increase ; begin g_salary_increase : = constants_up . min_salary_increase (); end employee_api ; /","title":"Example (good)"},{"location":"4-language-usage/7-stored-objects/3-procedures/g-7310/","text":"G-7310: Avoid standalone procedures \u2013 put your procedures in packages. Minor Maintainability Reason Use packages to structure your code, combine procedures and functions which belong together. Package bodies may be changed and compiled without invalidating other packages. This is a major advantage compared to standalone procedures and functions. Example (bad) 1 2 3 4 5 create or replace procedure my_procedure is begin null ; end my_procedure ; / Example (good) 1 2 3 4 5 6 7 8 9 10 11 12 create or replace package my_package is procedure my_procedure ; end my_package ; / create or replace package body my_package is procedure my_procedure is begin null ; end my_procedure ; end my_package ; /","title":"G-7310: Avoid standalone procedures \u2013 put your procedures in packages."},{"location":"4-language-usage/7-stored-objects/3-procedures/g-7310/#g-7310-avoid-standalone-procedures-put-your-procedures-in-packages","text":"Minor Maintainability","title":"G-7310: Avoid standalone procedures \u2013 put your procedures in packages."},{"location":"4-language-usage/7-stored-objects/3-procedures/g-7310/#reason","text":"Use packages to structure your code, combine procedures and functions which belong together. Package bodies may be changed and compiled without invalidating other packages. This is a major advantage compared to standalone procedures and functions.","title":"Reason"},{"location":"4-language-usage/7-stored-objects/3-procedures/g-7310/#example-bad","text":"1 2 3 4 5 create or replace procedure my_procedure is begin null ; end my_procedure ; /","title":"Example (bad)"},{"location":"4-language-usage/7-stored-objects/3-procedures/g-7310/#example-good","text":"1 2 3 4 5 6 7 8 9 10 11 12 create or replace package my_package is procedure my_procedure ; end my_package ; / create or replace package body my_package is procedure my_procedure is begin null ; end my_procedure ; end my_package ; /","title":"Example (good)"},{"location":"4-language-usage/7-stored-objects/3-procedures/g-7320/","text":"G-7320: Avoid using RETURN statements in a PROCEDURE. Major Maintainability, Testability Reason Use of the return statement is legal within a procedure in PL/SQL, but it is very similar to a goto , which means you end up with poorly structured code that is hard to debug and maintain. A good general rule to follow as you write your PL/SQL programs is \"one way in and one way out\". In other words, there should be just one way to enter or call a program, and there should be one way out, one exit path from a program (or loop) on successful termination. By following this rule, you end up with code that is much easier to trace, debug, and maintain. Example (bad) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 create or replace package body my_package is procedure my_procedure is l_idx simple_integer : = 1 ; co_modulo constant simple_integer : = 7 ; begin << mod7_loop >> loop if mod ( l_idx , co_modulo ) = 0 then return ; end if ; l_idx : = l_idx + 1 ; end loop mod7_loop ; end my_procedure ; end my_package ; / Example (good) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 create or replace package body my_package is procedure my_procedure is l_idx simple_integer : = 1 ; co_modulo constant simple_integer : = 7 ; begin << mod7_loop >> loop exit mod7_loop when mod ( l_idx , co_modulo ) = 0 ; l_idx : = l_idx + 1 ; end loop mod7_loop ; end my_procedure ; end my_package ; /","title":"G-7320: Avoid using RETURN statements in a PROCEDURE."},{"location":"4-language-usage/7-stored-objects/3-procedures/g-7320/#g-7320-avoid-using-return-statements-in-a-procedure","text":"Major Maintainability, Testability","title":"G-7320: Avoid using RETURN statements in a PROCEDURE."},{"location":"4-language-usage/7-stored-objects/3-procedures/g-7320/#reason","text":"Use of the return statement is legal within a procedure in PL/SQL, but it is very similar to a goto , which means you end up with poorly structured code that is hard to debug and maintain. A good general rule to follow as you write your PL/SQL programs is \"one way in and one way out\". In other words, there should be just one way to enter or call a program, and there should be one way out, one exit path from a program (or loop) on successful termination. By following this rule, you end up with code that is much easier to trace, debug, and maintain.","title":"Reason"},{"location":"4-language-usage/7-stored-objects/3-procedures/g-7320/#example-bad","text":"1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 create or replace package body my_package is procedure my_procedure is l_idx simple_integer : = 1 ; co_modulo constant simple_integer : = 7 ; begin << mod7_loop >> loop if mod ( l_idx , co_modulo ) = 0 then return ; end if ; l_idx : = l_idx + 1 ; end loop mod7_loop ; end my_procedure ; end my_package ; /","title":"Example (bad)"},{"location":"4-language-usage/7-stored-objects/3-procedures/g-7320/#example-good","text":"1 2 3 4 5 6 7 8 9 10 11 12 13 14 create or replace package body my_package is procedure my_procedure is l_idx simple_integer : = 1 ; co_modulo constant simple_integer : = 7 ; begin << mod7_loop >> loop exit mod7_loop when mod ( l_idx , co_modulo ) = 0 ; l_idx : = l_idx + 1 ; end loop mod7_loop ; end my_procedure ; end my_package ; /","title":"Example (good)"},{"location":"4-language-usage/7-stored-objects/3-procedures/g-7330/","text":"G-7330: Always assign values to OUT parameters. Blocker Maintainability, Testability Reason Marking a parameter for output means that callers will expect its value to be updated with a result from the execution of the procedure. Failing to update the parameter before the procedure returns is surely an error. Example (bad) 1 2 3 4 5 6 7 8 9 10 11 12 13 create or replace package body my_package is procedure greet ( in_name in varchar2 , out_greeting out varchar2 -- violates also G-7150 ) is l_message types_up . text ; co_name constant employees . first_name : = in_name ; co_hello constant types_up . text : = 'Hello, ' ; begin l_message : = co_hello || co_name ; -- NOSONAR: G-2135 end greet ; end my_package ; / Example (good) 1 2 3 4 5 6 7 8 9 10 11 12 create or replace package body my_package is procedure greet ( in_name in varchar2 , out_greeting out varchar2 ) is co_name constant employees . first_name : = in_name ; co_hello constant types_up . text : = 'Hello, ' ; begin out_greeting : = co_hello || co_name ; end greet ; end my_package ; /","title":"G-7330: Always assign values to OUT parameters."},{"location":"4-language-usage/7-stored-objects/3-procedures/g-7330/#g-7330-always-assign-values-to-out-parameters","text":"Blocker Maintainability, Testability","title":"G-7330: Always assign values to OUT parameters."},{"location":"4-language-usage/7-stored-objects/3-procedures/g-7330/#reason","text":"Marking a parameter for output means that callers will expect its value to be updated with a result from the execution of the procedure. Failing to update the parameter before the procedure returns is surely an error.","title":"Reason"},{"location":"4-language-usage/7-stored-objects/3-procedures/g-7330/#example-bad","text":"1 2 3 4 5 6 7 8 9 10 11 12 13 create or replace package body my_package is procedure greet ( in_name in varchar2 , out_greeting out varchar2 -- violates also G-7150 ) is l_message types_up . text ; co_name constant employees . first_name : = in_name ; co_hello constant types_up . text : = 'Hello, ' ; begin l_message : = co_hello || co_name ; -- NOSONAR: G-2135 end greet ; end my_package ; /","title":"Example (bad)"},{"location":"4-language-usage/7-stored-objects/3-procedures/g-7330/#example-good","text":"1 2 3 4 5 6 7 8 9 10 11 12 create or replace package body my_package is procedure greet ( in_name in varchar2 , out_greeting out varchar2 ) is co_name constant employees . first_name : = in_name ; co_hello constant types_up . text : = 'Hello, ' ; begin out_greeting : = co_hello || co_name ; end greet ; end my_package ; /","title":"Example (good)"},{"location":"4-language-usage/7-stored-objects/4-functions/g-7410/","text":"G-7410: Avoid standalone functions \u2013 put your functions in packages. Minor Maintainability Reason Use packages to structure your code, combine procedures and functions which belong together. Package bodies may be changed and compiled without invalidating other packages. This is a major advantage compared to standalone procedures and functions. Example (bad) 1 2 3 4 5 6 7 create or replace function my_function return varchar2 deterministic is begin return null ; end my_function ; / Example (good) 1 2 3 4 5 6 7 8 9 create or replace package body my_package is function my_function return varchar2 deterministic is begin return null ; end my_function ; end my_package ; /","title":"G-7410: Avoid standalone functions \u2013 put your functions in packages."},{"location":"4-language-usage/7-stored-objects/4-functions/g-7410/#g-7410-avoid-standalone-functions-put-your-functions-in-packages","text":"Minor Maintainability","title":"G-7410: Avoid standalone functions \u2013 put your functions in packages."},{"location":"4-language-usage/7-stored-objects/4-functions/g-7410/#reason","text":"Use packages to structure your code, combine procedures and functions which belong together. Package bodies may be changed and compiled without invalidating other packages. This is a major advantage compared to standalone procedures and functions.","title":"Reason"},{"location":"4-language-usage/7-stored-objects/4-functions/g-7410/#example-bad","text":"1 2 3 4 5 6 7 create or replace function my_function return varchar2 deterministic is begin return null ; end my_function ; /","title":"Example (bad)"},{"location":"4-language-usage/7-stored-objects/4-functions/g-7410/#example-good","text":"1 2 3 4 5 6 7 8 9 create or replace package body my_package is function my_function return varchar2 deterministic is begin return null ; end my_function ; end my_package ; /","title":"Example (good)"},{"location":"4-language-usage/7-stored-objects/4-functions/g-7420/","text":"G-7420: Always make the RETURN statement the last statement of your function. Major Maintainability Reason The reader expects the return statement to be the last statement of a function. Example (bad) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 create or replace package body my_package is function my_function ( in_from in pls_integer , in_to in pls_integer ) return pls_integer deterministic is l_ret pls_integer ; begin l_ret : = in_from ; << for_loop >> for i in in_from .. in_to loop l_ret : = l_ret + i ; if i = in_to then return l_ret ; end if ; end loop for_loop ; end my_function ; end my_package ; / Example (good) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 create or replace package body my_package is function my_function ( in_from in pls_integer , in_to in pls_integer ) return pls_integer deterministic is l_ret pls_integer ; begin l_ret : = in_from ; << for_loop >> for i in in_from .. in_to loop l_ret : = l_ret + i ; end loop for_loop ; return l_ret ; end my_function ; end my_package ; /","title":"G-7420: Always make the RETURN statement the last statement of your function."},{"location":"4-language-usage/7-stored-objects/4-functions/g-7420/#g-7420-always-make-the-return-statement-the-last-statement-of-your-function","text":"Major Maintainability","title":"G-7420: Always make the RETURN statement the last statement of your function."},{"location":"4-language-usage/7-stored-objects/4-functions/g-7420/#reason","text":"The reader expects the return statement to be the last statement of a function.","title":"Reason"},{"location":"4-language-usage/7-stored-objects/4-functions/g-7420/#example-bad","text":"1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 create or replace package body my_package is function my_function ( in_from in pls_integer , in_to in pls_integer ) return pls_integer deterministic is l_ret pls_integer ; begin l_ret : = in_from ; << for_loop >> for i in in_from .. in_to loop l_ret : = l_ret + i ; if i = in_to then return l_ret ; end if ; end loop for_loop ; end my_function ; end my_package ; /","title":"Example (bad)"},{"location":"4-language-usage/7-stored-objects/4-functions/g-7420/#example-good","text":"1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 create or replace package body my_package is function my_function ( in_from in pls_integer , in_to in pls_integer ) return pls_integer deterministic is l_ret pls_integer ; begin l_ret : = in_from ; << for_loop >> for i in in_from .. in_to loop l_ret : = l_ret + i ; end loop for_loop ; return l_ret ; end my_function ; end my_package ; /","title":"Example (good)"},{"location":"4-language-usage/7-stored-objects/4-functions/g-7430/","text":"G-7430: Try to use no more than one RETURN statement within a function. Major Maintainability, Testability Reason A function should have a single point of entry as well as a single exit-point. Example (bad) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 create or replace package body my_package is function my_function ( in_value in pls_integer ) return boolean deterministic is co_yes constant pls_integer : = 1 ; begin if in_value = co_yes then return true ; else return false ; end if ; end my_function ; end my_package ; / Example (better) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 create or replace package body my_package is function my_function ( in_value in pls_integer ) return boolean deterministic is co_yes constant pls_integer : = 1 ; l_ret boolean ; begin if in_value = co_yes then l_ret : = true ; else l_ret : = false ; end if ; return l_ret ; end my_function ; end my_package ; / Example (good) 1 2 3 4 5 6 7 8 9 10 create or replace package body my_package is function my_function ( in_value in pls_integer ) return boolean deterministic is co_yes constant pls_integer : = 1 ; begin return in_value = co_yes ; end my_function ; end my_package ; /","title":"G-7430: Try to use no more than one RETURN statement within a function."},{"location":"4-language-usage/7-stored-objects/4-functions/g-7430/#g-7430-try-to-use-no-more-than-one-return-statement-within-a-function","text":"Major Maintainability, Testability","title":"G-7430: Try to use no more than one RETURN statement within a function."},{"location":"4-language-usage/7-stored-objects/4-functions/g-7430/#reason","text":"A function should have a single point of entry as well as a single exit-point.","title":"Reason"},{"location":"4-language-usage/7-stored-objects/4-functions/g-7430/#example-bad","text":"1 2 3 4 5 6 7 8 9 10 11 12 13 14 create or replace package body my_package is function my_function ( in_value in pls_integer ) return boolean deterministic is co_yes constant pls_integer : = 1 ; begin if in_value = co_yes then return true ; else return false ; end if ; end my_function ; end my_package ; /","title":"Example (bad)"},{"location":"4-language-usage/7-stored-objects/4-functions/g-7430/#example-better","text":"1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 create or replace package body my_package is function my_function ( in_value in pls_integer ) return boolean deterministic is co_yes constant pls_integer : = 1 ; l_ret boolean ; begin if in_value = co_yes then l_ret : = true ; else l_ret : = false ; end if ; return l_ret ; end my_function ; end my_package ; /","title":"Example (better)"},{"location":"4-language-usage/7-stored-objects/4-functions/g-7430/#example-good","text":"1 2 3 4 5 6 7 8 9 10 create or replace package body my_package is function my_function ( in_value in pls_integer ) return boolean deterministic is co_yes constant pls_integer : = 1 ; begin return in_value = co_yes ; end my_function ; end my_package ; /","title":"Example (good)"},{"location":"4-language-usage/7-stored-objects/4-functions/g-7440/","text":"G-7440: Never use OUT parameters to return values from a function. Major Reusability Reason A function should return all its data through the return clause. Having an out parameter prohibits usage of a function within SQL statements. Example (bad) 1 2 3 4 5 6 7 8 9 10 create or replace package body my_package is function my_function ( out_date out date ) return boolean deterministic is begin out_date : = sysdate ; return true ; end my_function ; end my_package ; / Example (good) 1 2 3 4 5 6 7 8 9 create or replace package body my_package is function my_function return date deterministic is begin return sysdate ; end my_function ; end my_package ; /","title":"G-7440: Never use OUT parameters to return values from a function."},{"location":"4-language-usage/7-stored-objects/4-functions/g-7440/#g-7440-never-use-out-parameters-to-return-values-from-a-function","text":"Major Reusability","title":"G-7440: Never use OUT parameters to return values from a function."},{"location":"4-language-usage/7-stored-objects/4-functions/g-7440/#reason","text":"A function should return all its data through the return clause. Having an out parameter prohibits usage of a function within SQL statements.","title":"Reason"},{"location":"4-language-usage/7-stored-objects/4-functions/g-7440/#example-bad","text":"1 2 3 4 5 6 7 8 9 10 create or replace package body my_package is function my_function ( out_date out date ) return boolean deterministic is begin out_date : = sysdate ; return true ; end my_function ; end my_package ; /","title":"Example (bad)"},{"location":"4-language-usage/7-stored-objects/4-functions/g-7440/#example-good","text":"1 2 3 4 5 6 7 8 9 create or replace package body my_package is function my_function return date deterministic is begin return sysdate ; end my_function ; end my_package ; /","title":"Example (good)"},{"location":"4-language-usage/7-stored-objects/4-functions/g-7450/","text":"G-7450: Never return a NULL value from a BOOLEAN function. Blocker Reliability, Testability Reason If a boolean function returns null , the caller has do deal with it. This makes the usage cumbersome and more error-prone. Example (bad) 1 2 3 4 5 6 7 8 9 create or replace package body my_package is function my_function return boolean deterministic is begin return null ; end my_function ; end my_package ; / Example (good) 1 2 3 4 5 6 7 8 9 create or replace package body my_package is function my_function return boolean deterministic is begin return true ; end my_function ; end my_package ; /","title":"G-7450: Never return a NULL value from a BOOLEAN function."},{"location":"4-language-usage/7-stored-objects/4-functions/g-7450/#g-7450-never-return-a-null-value-from-a-boolean-function","text":"Blocker Reliability, Testability","title":"G-7450: Never return a NULL value from a BOOLEAN function."},{"location":"4-language-usage/7-stored-objects/4-functions/g-7450/#reason","text":"If a boolean function returns null , the caller has do deal with it. This makes the usage cumbersome and more error-prone.","title":"Reason"},{"location":"4-language-usage/7-stored-objects/4-functions/g-7450/#example-bad","text":"1 2 3 4 5 6 7 8 9 create or replace package body my_package is function my_function return boolean deterministic is begin return null ; end my_function ; end my_package ; /","title":"Example (bad)"},{"location":"4-language-usage/7-stored-objects/4-functions/g-7450/#example-good","text":"1 2 3 4 5 6 7 8 9 create or replace package body my_package is function my_function return boolean deterministic is begin return true ; end my_function ; end my_package ; /","title":"Example (good)"},{"location":"4-language-usage/7-stored-objects/4-functions/g-7460/","text":"G-7460: Try to define your packaged/standalone function deterministic if appropriate. Major Efficiency Reason A deterministic function (always return same result for identical parameters) which is defined to be deterministic will be executed once per different parameter within a SQL statement whereas if the function is not defined to be deterministic it is executed once per result row. Example (bad) 1 2 3 4 5 create or replace package department_api is function name_by_id ( in_department_id in departments . department_id % type ) return departments . department_name % type ; end department_api ; / Example (good) 1 2 3 4 5 6 create or replace package department_api is function name_by_id ( in_department_id in departments . department_id % type ) return departments . department_name % type deterministic ; end department_api ; /","title":"G-7460: Try to define your packaged/standalone function deterministic if appropriate."},{"location":"4-language-usage/7-stored-objects/4-functions/g-7460/#g-7460-try-to-define-your-packagedstandalone-function-deterministic-if-appropriate","text":"Major Efficiency","title":"G-7460: Try to define your packaged/standalone function deterministic if appropriate."},{"location":"4-language-usage/7-stored-objects/4-functions/g-7460/#reason","text":"A deterministic function (always return same result for identical parameters) which is defined to be deterministic will be executed once per different parameter within a SQL statement whereas if the function is not defined to be deterministic it is executed once per result row.","title":"Reason"},{"location":"4-language-usage/7-stored-objects/4-functions/g-7460/#example-bad","text":"1 2 3 4 5 create or replace package department_api is function name_by_id ( in_department_id in departments . department_id % type ) return departments . department_name % type ; end department_api ; /","title":"Example (bad)"},{"location":"4-language-usage/7-stored-objects/4-functions/g-7460/#example-good","text":"1 2 3 4 5 6 create or replace package department_api is function name_by_id ( in_department_id in departments . department_id % type ) return departments . department_name % type deterministic ; end department_api ; /","title":"Example (good)"},{"location":"4-language-usage/7-stored-objects/5-oracle-supplied-packages/g-7510/","text":"G-7510: Always prefix Oracle supplied packages with owner schema name. Major Security Reason The signature of Oracle supplied packages is well known and therefore it is quite easy to provide packages with the same name as those from Oracle doing something completely different without you noticing it. Example (bad) 1 2 3 4 5 6 declare co_hello_world constant string ( 30 char ) : = 'Hello World' ; begin dbms_output . put_line ( co_hello_world ); end ; / Example (good) 1 2 3 4 5 6 declare co_hello_world constant string ( 30 char ) : = 'Hello World' ; begin sys . dbms_output . put_line ( co_hello_world ); end ; /","title":"G-7510: Always prefix Oracle supplied packages with owner schema name."},{"location":"4-language-usage/7-stored-objects/5-oracle-supplied-packages/g-7510/#g-7510-always-prefix-oracle-supplied-packages-with-owner-schema-name","text":"Major Security","title":"G-7510: Always prefix Oracle supplied packages with owner schema name."},{"location":"4-language-usage/7-stored-objects/5-oracle-supplied-packages/g-7510/#reason","text":"The signature of Oracle supplied packages is well known and therefore it is quite easy to provide packages with the same name as those from Oracle doing something completely different without you noticing it.","title":"Reason"},{"location":"4-language-usage/7-stored-objects/5-oracle-supplied-packages/g-7510/#example-bad","text":"1 2 3 4 5 6 declare co_hello_world constant string ( 30 char ) : = 'Hello World' ; begin dbms_output . put_line ( co_hello_world ); end ; /","title":"Example (bad)"},{"location":"4-language-usage/7-stored-objects/5-oracle-supplied-packages/g-7510/#example-good","text":"1 2 3 4 5 6 declare co_hello_world constant string ( 30 char ) : = 'Hello World' ; begin sys . dbms_output . put_line ( co_hello_world ); end ; /","title":"Example (good)"},{"location":"4-language-usage/7-stored-objects/6-object-types/object-types/","text":"Object Types There are no object type-specific recommendations to be defined at the time of writing.","title":"Object Types"},{"location":"4-language-usage/7-stored-objects/6-object-types/object-types/#object-types","text":"There are no object type-specific recommendations to be defined at the time of writing.","title":"Object Types"},{"location":"4-language-usage/7-stored-objects/7-triggers/g-7710/","text":"G-7710: Avoid cascading triggers. Major Maintainability, Testability Reason Having triggers that act on other tables in a way that causes triggers on that table to fire lead to obscure behavior. Example (bad) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 create or replace trigger dept_br_u before update on departments for each row begin insert into departments_hist ( department_id , department_name , manager_id , location_id , modification_date ) values ( : old . department_id ,: old . department_name ,: old . manager_id ,: old . location_id , sysdate ); end ; / create or replace trigger dept_hist_br_i before insert on departments_hist for each row begin insert into departments_log ( department_id , department_name , modification_date ) values ( : new . department_id ,: new . department_name , sysdate ); end ; / Example (good) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 create or replace trigger dept_br_u before update on departments for each row begin insert into departments_hist ( department_id , department_name , manager_id , location_id , modification_date ) values ( : old . department_id ,: old . department_name ,: old . manager_id ,: old . location_id , sysdate ); insert into departments_log ( department_id , department_name , modification_date ) values ( : old . department_id ,: old . department_name , sysdate ); end ; /","title":"G-7710: Avoid cascading triggers."},{"location":"4-language-usage/7-stored-objects/7-triggers/g-7710/#g-7710-avoid-cascading-triggers","text":"Major Maintainability, Testability","title":"G-7710: Avoid cascading triggers."},{"location":"4-language-usage/7-stored-objects/7-triggers/g-7710/#reason","text":"Having triggers that act on other tables in a way that causes triggers on that table to fire lead to obscure behavior.","title":"Reason"},{"location":"4-language-usage/7-stored-objects/7-triggers/g-7710/#example-bad","text":"1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 create or replace trigger dept_br_u before update on departments for each row begin insert into departments_hist ( department_id , department_name , manager_id , location_id , modification_date ) values ( : old . department_id ,: old . department_name ,: old . manager_id ,: old . location_id , sysdate ); end ; / create or replace trigger dept_hist_br_i before insert on departments_hist for each row begin insert into departments_log ( department_id , department_name , modification_date ) values ( : new . department_id ,: new . department_name , sysdate ); end ; /","title":"Example (bad)"},{"location":"4-language-usage/7-stored-objects/7-triggers/g-7710/#example-good","text":"1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 create or replace trigger dept_br_u before update on departments for each row begin insert into departments_hist ( department_id , department_name , manager_id , location_id , modification_date ) values ( : old . department_id ,: old . department_name ,: old . manager_id ,: old . location_id , sysdate ); insert into departments_log ( department_id , department_name , modification_date ) values ( : old . department_id ,: old . department_name , sysdate ); end ; /","title":"Example (good)"},{"location":"4-language-usage/7-stored-objects/7-triggers/g-7720/","text":"G-7720: Never use multiple UPDATE OF in trigger event clause. Blocker Maintainability, Reliability, Testability Reason A DML trigger can have multiple triggering events separated by or like before insert or delete or update of some_column . If you have multiple update of separated by or , only one of them (the last one) is actually used and you get no error message, so you have a bug waiting to happen. Instead you always should use a single update of with all columns comma-separated, or an update without of if you wish all columns. Example (bad) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 create or replace trigger dept_br_u before update of department_id or update of department_name -- violates also G-7730 on departments for each row begin -- will only fire on updates of department_name insert into departments_log ( department_id , department_name , modification_date ) values ( : old . department_id ,: old . department_name , sysdate ); end ; / Example (good) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 create or replace trigger dept_br_u before update of department_id , department_name on departments for each row begin insert into departments_log ( department_id , department_name , modification_date ) values ( : old . department_id ,: old . department_name , sysdate ); end ; /","title":"G-7720: Never use multiple UPDATE OF in trigger event clause."},{"location":"4-language-usage/7-stored-objects/7-triggers/g-7720/#g-7720-never-use-multiple-update-of-in-trigger-event-clause","text":"Blocker Maintainability, Reliability, Testability","title":"G-7720: Never use multiple UPDATE OF in trigger event clause."},{"location":"4-language-usage/7-stored-objects/7-triggers/g-7720/#reason","text":"A DML trigger can have multiple triggering events separated by or like before insert or delete or update of some_column . If you have multiple update of separated by or , only one of them (the last one) is actually used and you get no error message, so you have a bug waiting to happen. Instead you always should use a single update of with all columns comma-separated, or an update without of if you wish all columns.","title":"Reason"},{"location":"4-language-usage/7-stored-objects/7-triggers/g-7720/#example-bad","text":"1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 create or replace trigger dept_br_u before update of department_id or update of department_name -- violates also G-7730 on departments for each row begin -- will only fire on updates of department_name insert into departments_log ( department_id , department_name , modification_date ) values ( : old . department_id ,: old . department_name , sysdate ); end ; /","title":"Example (bad)"},{"location":"4-language-usage/7-stored-objects/7-triggers/g-7720/#example-good","text":"1 2 3 4 5 6 7 8 9 10 11 12 13 14 create or replace trigger dept_br_u before update of department_id , department_name on departments for each row begin insert into departments_log ( department_id , department_name , modification_date ) values ( : old . department_id ,: old . department_name , sysdate ); end ; /","title":"Example (good)"},{"location":"4-language-usage/7-stored-objects/7-triggers/g-7730/","text":"G-7730: Avoid multiple DML events per trigger. Minor Maintainability, Testability Reason Rather than a single trigger handling multiple DML events with separated blocks of if inserting , if updating and if deleting , modularity by individual triggers per DML event helps maintaining and testing the code. If most of the code is common for either DML event (only small pieces of code are individual) consider an exception to the rule and allow if inserting , if updating and if deleting blocks, or alternatively gather the common code in a procedure and let individual triggers handle the individual pieces of code plus call the procedure with the common code. If the trigger makes assignment to a primary key and there are child tables with a foreign key referring to this primary key, the database can make undesirable table locks. If such is the case, you should always use individual triggers. See G-7740 for details. Example (bad) 1 2 3 4 5 6 7 8 9 10 11 12 create or replace trigger dept_br_iu before insert or update on departments for each row begin if inserting then : new . created_date : = sysdate ; end if ; if updating then : new . changed_date : = sysdate ; end if ; end ; / Example (good) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 create or replace trigger dept_br_i before insert on departments for each row begin : new . created_date : = sysdate ; end ; / create or replace trigger dept_br_u before update on departments for each row begin : new . changed_date : = sysdate ; end ; /","title":"G-7730: Avoid multiple DML events per trigger."},{"location":"4-language-usage/7-stored-objects/7-triggers/g-7730/#g-7730-avoid-multiple-dml-events-per-trigger","text":"Minor Maintainability, Testability","title":"G-7730: Avoid multiple DML events per trigger."},{"location":"4-language-usage/7-stored-objects/7-triggers/g-7730/#reason","text":"Rather than a single trigger handling multiple DML events with separated blocks of if inserting , if updating and if deleting , modularity by individual triggers per DML event helps maintaining and testing the code. If most of the code is common for either DML event (only small pieces of code are individual) consider an exception to the rule and allow if inserting , if updating and if deleting blocks, or alternatively gather the common code in a procedure and let individual triggers handle the individual pieces of code plus call the procedure with the common code. If the trigger makes assignment to a primary key and there are child tables with a foreign key referring to this primary key, the database can make undesirable table locks. If such is the case, you should always use individual triggers. See G-7740 for details.","title":"Reason"},{"location":"4-language-usage/7-stored-objects/7-triggers/g-7730/#example-bad","text":"1 2 3 4 5 6 7 8 9 10 11 12 create or replace trigger dept_br_iu before insert or update on departments for each row begin if inserting then : new . created_date : = sysdate ; end if ; if updating then : new . changed_date : = sysdate ; end if ; end ; /","title":"Example (bad)"},{"location":"4-language-usage/7-stored-objects/7-triggers/g-7730/#example-good","text":"1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 create or replace trigger dept_br_i before insert on departments for each row begin : new . created_date : = sysdate ; end ; / create or replace trigger dept_br_u before update on departments for each row begin : new . changed_date : = sysdate ; end ; /","title":"Example (good)"},{"location":"4-language-usage/7-stored-objects/7-triggers/g-7740/","text":"G-7740: Never handle multiple DML events per trigger if primary key is assigned in trigger. Critical Efficiency, Reliability Unsupported in db* CODECOP Validators We cannot identify what the primary key column(s) are to check if assignment to a primary key is taking place in the trigger. Reason If a trigger makes assignment to the primary key anywhere in the trigger code, that causes the session firing the trigger to take a lock on any child tables with a foreign key to this primary key. Even if the assignment is in for example an if inserting block and the trigger is fired by an update statement, such locks still happen unnecessarily. The issue is avoided by having one trigger for the insert containing the primary key assignment, and another trigger for the update. Or even better by handling the insert assignment as \u00b4default on null\u00b4 clauses, so that only an on update trigger is needed. This locking of child tables behaviour goes for simple DML triggers as well as compound DML triggers where assignments to primary keys take place. It is not relevant for instead-of triggers on views, as it is not possible to assign :new values and therefore no locks on child tables are needed. Example (bad) 1 2 3 4 5 6 7 8 9 10 11 12 13 create or replace trigger dept_br_iu before insert or update -- NOSONAR: G-7730 on departments for each row begin if inserting then : new . department_id : = department_seq . nextval ; -- NOSONAR: G-3150 : new . created_date : = sysdate ; end if ; if updating then : new . changed_date : = sysdate ; end if ; end ; / Example (good) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 create or replace trigger dept_br_i before insert on departments for each row begin : new . department_id : = department_seq . nextval ; -- NOSONAR: G-3150 : new . created_date : = sysdate ; end ; / create or replace trigger dept_br_u before update on departments for each row begin : new . changed_date : = sysdate ; end ; / Example (best) 1 2 3 4 5 6 7 8 9 10 alter table department modify department_id default on null department_seq . nextval ; alter table department modify created_date default on null sysdate ; create or replace trigger dept_br_u before update on departments for each row begin : new . changed_date : = sysdate ; end ; /","title":"G-7740: Never handle multiple DML events per trigger if primary key is assigned in trigger."},{"location":"4-language-usage/7-stored-objects/7-triggers/g-7740/#g-7740-never-handle-multiple-dml-events-per-trigger-if-primary-key-is-assigned-in-trigger","text":"Critical Efficiency, Reliability Unsupported in db* CODECOP Validators We cannot identify what the primary key column(s) are to check if assignment to a primary key is taking place in the trigger.","title":"G-7740: Never handle multiple DML events per trigger if primary key is assigned in trigger."},{"location":"4-language-usage/7-stored-objects/7-triggers/g-7740/#reason","text":"If a trigger makes assignment to the primary key anywhere in the trigger code, that causes the session firing the trigger to take a lock on any child tables with a foreign key to this primary key. Even if the assignment is in for example an if inserting block and the trigger is fired by an update statement, such locks still happen unnecessarily. The issue is avoided by having one trigger for the insert containing the primary key assignment, and another trigger for the update. Or even better by handling the insert assignment as \u00b4default on null\u00b4 clauses, so that only an on update trigger is needed. This locking of child tables behaviour goes for simple DML triggers as well as compound DML triggers where assignments to primary keys take place. It is not relevant for instead-of triggers on views, as it is not possible to assign :new values and therefore no locks on child tables are needed.","title":"Reason"},{"location":"4-language-usage/7-stored-objects/7-triggers/g-7740/#example-bad","text":"1 2 3 4 5 6 7 8 9 10 11 12 13 create or replace trigger dept_br_iu before insert or update -- NOSONAR: G-7730 on departments for each row begin if inserting then : new . department_id : = department_seq . nextval ; -- NOSONAR: G-3150 : new . created_date : = sysdate ; end if ; if updating then : new . changed_date : = sysdate ; end if ; end ; /","title":"Example (bad)"},{"location":"4-language-usage/7-stored-objects/7-triggers/g-7740/#example-good","text":"1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 create or replace trigger dept_br_i before insert on departments for each row begin : new . department_id : = department_seq . nextval ; -- NOSONAR: G-3150 : new . created_date : = sysdate ; end ; / create or replace trigger dept_br_u before update on departments for each row begin : new . changed_date : = sysdate ; end ; /","title":"Example (good)"},{"location":"4-language-usage/7-stored-objects/7-triggers/g-7740/#example-best","text":"1 2 3 4 5 6 7 8 9 10 alter table department modify department_id default on null department_seq . nextval ; alter table department modify created_date default on null sysdate ; create or replace trigger dept_br_u before update on departments for each row begin : new . changed_date : = sysdate ; end ; /","title":"Example (best)"},{"location":"4-language-usage/7-stored-objects/8-sequences/g-7810/","text":"G-7810: Never use SQL inside PL/SQL to read sequence numbers (or SYSDATE). Critical Efficiency, Maintainability Reason Since Oracle Database 11g it is no longer needed to use a select statement to read a sequence (which would imply a context switch). Example (bad) 1 2 3 4 5 6 7 8 9 declare l_sequence_number employees . employee_id % type ; begin select employees_seq . nextval into l_sequence_number from dual ; my_package . do_something ( l_sequence_number ); end ; / Example (good) 1 2 3 4 5 6 7 declare l_sequence_number employees . employee_id % type ; begin l_sequence_number : = employees_seq . nextval ; my_package . do_something ( l_sequence_number ); end ; /","title":"G-7810: Never use SQL inside PL/SQL to read sequence numbers (or SYSDATE)."},{"location":"4-language-usage/7-stored-objects/8-sequences/g-7810/#g-7810-never-use-sql-inside-plsql-to-read-sequence-numbers-or-sysdate","text":"Critical Efficiency, Maintainability","title":"G-7810: Never use SQL inside PL/SQL to read sequence numbers (or SYSDATE)."},{"location":"4-language-usage/7-stored-objects/8-sequences/g-7810/#reason","text":"Since Oracle Database 11g it is no longer needed to use a select statement to read a sequence (which would imply a context switch).","title":"Reason"},{"location":"4-language-usage/7-stored-objects/8-sequences/g-7810/#example-bad","text":"1 2 3 4 5 6 7 8 9 declare l_sequence_number employees . employee_id % type ; begin select employees_seq . nextval into l_sequence_number from dual ; my_package . do_something ( l_sequence_number ); end ; /","title":"Example (bad)"},{"location":"4-language-usage/7-stored-objects/8-sequences/g-7810/#example-good","text":"1 2 3 4 5 6 7 declare l_sequence_number employees . employee_id % type ; begin l_sequence_number : = employees_seq . nextval ; my_package . do_something ( l_sequence_number ); end ; /","title":"Example (good)"},{"location":"4-language-usage/7-stored-objects/9-sql-macros/g-7910/","text":"G-7910: Never use DML within a SQL macro. Blocker Reliability, Testability Restriction Oracle Database 21c (19c from version 19.7 for table macros alone) Reason Doing DML (except for select ) within a SQL macro can lead to disastrous side effects from calling the macro in a SQL query. Logging macro calls via a call to a procedure that does DML in an autonomous transaction can be an exception to the rule. Example (bad) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 create or replace package body my_package is function row_generator ( in_num_rows in number ) -- NOSONAR: non-deterministic return varchar2 sql_macro as begin insert into function_calls ( name , called_at , parameter_value ) values ( $$ plsql_unit , current_timestamp , in_num_rows ); commit ; return 'select level as row_sequence -- NOSONAR: G-1050 from dual connect by level <= in_num_rows' ; end row_generator ; end my_package ; / Example (good) 1 2 3 4 5 6 7 8 9 10 create or replace package body my_package is function row_generator ( in_num_rows in number ) -- NOSONAR: non-deterministic return varchar2 sql_macro as begin return 'select level as row_sequence -- NOSONAR: G-1050 from dual connect by level <= in_num_rows' ; end row_generator ; end my_package ; /","title":"G-7910: Never use DML within a SQL macro."},{"location":"4-language-usage/7-stored-objects/9-sql-macros/g-7910/#g-7910-never-use-dml-within-a-sql-macro","text":"Blocker Reliability, Testability","title":"G-7910: Never use DML within a SQL macro."},{"location":"4-language-usage/7-stored-objects/9-sql-macros/g-7910/#restriction","text":"Oracle Database 21c (19c from version 19.7 for table macros alone)","title":"Restriction"},{"location":"4-language-usage/7-stored-objects/9-sql-macros/g-7910/#reason","text":"Doing DML (except for select ) within a SQL macro can lead to disastrous side effects from calling the macro in a SQL query. Logging macro calls via a call to a procedure that does DML in an autonomous transaction can be an exception to the rule.","title":"Reason"},{"location":"4-language-usage/7-stored-objects/9-sql-macros/g-7910/#example-bad","text":"1 2 3 4 5 6 7 8 9 10 11 12 13 14 create or replace package body my_package is function row_generator ( in_num_rows in number ) -- NOSONAR: non-deterministic return varchar2 sql_macro as begin insert into function_calls ( name , called_at , parameter_value ) values ( $$ plsql_unit , current_timestamp , in_num_rows ); commit ; return 'select level as row_sequence -- NOSONAR: G-1050 from dual connect by level <= in_num_rows' ; end row_generator ; end my_package ; /","title":"Example (bad)"},{"location":"4-language-usage/7-stored-objects/9-sql-macros/g-7910/#example-good","text":"1 2 3 4 5 6 7 8 9 10 create or replace package body my_package is function row_generator ( in_num_rows in number ) -- NOSONAR: non-deterministic return varchar2 sql_macro as begin return 'select level as row_sequence -- NOSONAR: G-1050 from dual connect by level <= in_num_rows' ; end row_generator ; end my_package ; /","title":"Example (good)"},{"location":"4-language-usage/8-patterns/1-checking-the-number-of-rows/g-8110/","text":"G-8110: Never use SELECT COUNT(*) if you are only interested in the existence of a row. Critical Efficiency Reason If you do a select count(*) all rows will be read according to the where clause, even if only the availability of data is of interest. For this we have a big performance overhead. If we do a select count(*) ... where rownum = 1 there is also a overhead as there will be two communications between the PL/SQL and the SQL engine. See the following example for a better solution. Example (bad) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 declare l_count pls_integer ; co_zero constant simple_integer : = 0 ; co_salary constant employees . salary % type : = 5000 ; begin select count ( * ) into l_count from employees where salary < co_salary ; if l_count > co_zero then << emp_loop >> for r_emp in ( select employee_id from employees ) loop if r_emp . salary < co_salary then my_package . my_proc ( in_employee_id => r_emp . employee_id ); end if ; end loop emp_loop ; end if ; end ; / Example (good) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 declare co_salary constant employees . salary % type : = 5000 ; begin << emp_loop >> for r_emp in ( select e1 . employee_id from employees e1 where exists ( select e2 . salary from employees e2 where e2 . salary < co_salary ) ) loop my_package . my_proc ( in_employee_id => r_emp . employee_id ); end loop emp_loop ; end ; /","title":"G-8110: Never use SELECT COUNT(*) if you are only interested in the existence of a row."},{"location":"4-language-usage/8-patterns/1-checking-the-number-of-rows/g-8110/#g-8110-never-use-select-count-if-you-are-only-interested-in-the-existence-of-a-row","text":"Critical Efficiency","title":"G-8110: Never use SELECT COUNT(*) if you are only interested in the existence of a row."},{"location":"4-language-usage/8-patterns/1-checking-the-number-of-rows/g-8110/#reason","text":"If you do a select count(*) all rows will be read according to the where clause, even if only the availability of data is of interest. For this we have a big performance overhead. If we do a select count(*) ... where rownum = 1 there is also a overhead as there will be two communications between the PL/SQL and the SQL engine. See the following example for a better solution.","title":"Reason"},{"location":"4-language-usage/8-patterns/1-checking-the-number-of-rows/g-8110/#example-bad","text":"1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 declare l_count pls_integer ; co_zero constant simple_integer : = 0 ; co_salary constant employees . salary % type : = 5000 ; begin select count ( * ) into l_count from employees where salary < co_salary ; if l_count > co_zero then << emp_loop >> for r_emp in ( select employee_id from employees ) loop if r_emp . salary < co_salary then my_package . my_proc ( in_employee_id => r_emp . employee_id ); end if ; end loop emp_loop ; end if ; end ; /","title":"Example (bad)"},{"location":"4-language-usage/8-patterns/1-checking-the-number-of-rows/g-8110/#example-good","text":"1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 declare co_salary constant employees . salary % type : = 5000 ; begin << emp_loop >> for r_emp in ( select e1 . employee_id from employees e1 where exists ( select e2 . salary from employees e2 where e2 . salary < co_salary ) ) loop my_package . my_proc ( in_employee_id => r_emp . employee_id ); end loop emp_loop ; end ; /","title":"Example (good)"},{"location":"4-language-usage/8-patterns/1-checking-the-number-of-rows/g-8120/","text":"G-8120: Never check existence of a row to decide whether to create it or not. Critical Efficiency, Reliability Reason The result of an existence check is a snapshot of the current situation. You never know whether in the time between the check and the (insert) action someone else has decided to create a row with the values you checked. Therefore, you should only rely on constraints when it comes to prevention of duplicate records. Example (bad) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 create or replace package body department_api is procedure ins ( in_r_department in departments % rowtype ) is l_count pls_integer ; begin select count ( * ) -- NOSONAR: a violation of G-8110 is a prerequisite for G-8120 into l_count from departments where department_id = in_r_department . department_id ; if l_count = 0 then insert into departments values in_r_department ; end if ; end ins ; end department_api ; / Example (good) 1 2 3 4 5 6 7 8 9 10 11 create or replace package body department_api is procedure ins ( in_r_department in departments % rowtype ) is begin insert into departments values in_r_department ; exception when dup_val_on_index then null ; -- handle exception end ins ; end department_api ; /","title":"G-8120: Never check existence of a row to decide whether to create it or not."},{"location":"4-language-usage/8-patterns/1-checking-the-number-of-rows/g-8120/#g-8120-never-check-existence-of-a-row-to-decide-whether-to-create-it-or-not","text":"Critical Efficiency, Reliability","title":"G-8120: Never check existence of a row to decide whether to create it or not."},{"location":"4-language-usage/8-patterns/1-checking-the-number-of-rows/g-8120/#reason","text":"The result of an existence check is a snapshot of the current situation. You never know whether in the time between the check and the (insert) action someone else has decided to create a row with the values you checked. Therefore, you should only rely on constraints when it comes to prevention of duplicate records.","title":"Reason"},{"location":"4-language-usage/8-patterns/1-checking-the-number-of-rows/g-8120/#example-bad","text":"1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 create or replace package body department_api is procedure ins ( in_r_department in departments % rowtype ) is l_count pls_integer ; begin select count ( * ) -- NOSONAR: a violation of G-8110 is a prerequisite for G-8120 into l_count from departments where department_id = in_r_department . department_id ; if l_count = 0 then insert into departments values in_r_department ; end if ; end ins ; end department_api ; /","title":"Example (bad)"},{"location":"4-language-usage/8-patterns/1-checking-the-number-of-rows/g-8120/#example-good","text":"1 2 3 4 5 6 7 8 9 10 11 create or replace package body department_api is procedure ins ( in_r_department in departments % rowtype ) is begin insert into departments values in_r_department ; exception when dup_val_on_index then null ; -- handle exception end ins ; end department_api ; /","title":"Example (good)"},{"location":"4-language-usage/8-patterns/2-access-objects-of-foreign-application-schemas/g-8210/","text":"G-8210: Always use synonyms when accessing objects of another application schema. Minor Changeability, Maintainability Reason If a connection is needed to a table that is placed in a foreign schema, using synonyms is a good choice. If there are structural changes to that table (e.g. the table name changes or the table changes into another schema) only the synonym has to be changed no changes to the package are needed (single point of change). If you only have read access for a table inside another schema, or there is another reason that does not allow you to change data in this table, you can switch the synonym to a table in your own schema. This is also good practice for testers working on test systems. Example (bad) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 declare l_product_name oe . products . product_name % type ; co_price constant oe . products @ list_price % type : = 1000 ; begin select p . product_name into l_product_name from oe . products p where list_price > co_price ; exception when no_data_found then null ; -- handle_no_data_found; when too_many_rows then null ; -- handle_too_many_rows; end ; / Example (good) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 create synonym oe_products for oe . products ; declare l_product_name oe_products . product_name % type ; co_price constant oe_products . list_price % type : = 1000 ; begin select p . product_name into l_product_name from oe_products p where list_price > co_price ; exception when no_data_found then null ; -- handle_no_data_found; when too_many_rows then null ; -- handle_too_many_rows; end ; /","title":"G-8210: Always use synonyms when accessing objects of another application schema."},{"location":"4-language-usage/8-patterns/2-access-objects-of-foreign-application-schemas/g-8210/#g-8210-always-use-synonyms-when-accessing-objects-of-another-application-schema","text":"Minor Changeability, Maintainability","title":"G-8210: Always use synonyms when accessing objects of another application schema."},{"location":"4-language-usage/8-patterns/2-access-objects-of-foreign-application-schemas/g-8210/#reason","text":"If a connection is needed to a table that is placed in a foreign schema, using synonyms is a good choice. If there are structural changes to that table (e.g. the table name changes or the table changes into another schema) only the synonym has to be changed no changes to the package are needed (single point of change). If you only have read access for a table inside another schema, or there is another reason that does not allow you to change data in this table, you can switch the synonym to a table in your own schema. This is also good practice for testers working on test systems.","title":"Reason"},{"location":"4-language-usage/8-patterns/2-access-objects-of-foreign-application-schemas/g-8210/#example-bad","text":"1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 declare l_product_name oe . products . product_name % type ; co_price constant oe . products @ list_price % type : = 1000 ; begin select p . product_name into l_product_name from oe . products p where list_price > co_price ; exception when no_data_found then null ; -- handle_no_data_found; when too_many_rows then null ; -- handle_too_many_rows; end ; /","title":"Example (bad)"},{"location":"4-language-usage/8-patterns/2-access-objects-of-foreign-application-schemas/g-8210/#example-good","text":"1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 create synonym oe_products for oe . products ; declare l_product_name oe_products . product_name % type ; co_price constant oe_products . list_price % type : = 1000 ; begin select p . product_name into l_product_name from oe_products p where list_price > co_price ; exception when no_data_found then null ; -- handle_no_data_found; when too_many_rows then null ; -- handle_too_many_rows; end ; /","title":"Example (good)"},{"location":"4-language-usage/8-patterns/3-validating-input-parameter-size/g-8310/","text":"G-8310: Always validate input parameter size by assigning the parameter to a size limited variable in the declaration section of program unit. Major Maintainability, Reliability, Reusability, Testability Reason This technique raises an error ( value_error ) which may not be handled in the called program unit. This is the right way to do it, as the error is not within this unit but when calling it, so the caller should handle the error. To limit the number of false positives, only the following data types used in parameters should be considered: char dec decimal interval day to second interval year to month nchar number numeric nvarchar2 varchar2 %type Example (bad) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 create or replace package body department_api is function dept_by_name ( -- NOSONAR: non-deterministic in_dept_name in departments . department_name % type ) return departments % rowtype is r_return departments % rowtype ; co_max_dept_name_length constant integer : = 20 ; begin if in_dept_name is null or length ( in_dept_name ) > co_max_dept_name_length then raise err . e_param_to_large ; end if ; -- get the department by name << trap >> begin select * into r_return from departments where department_name = in_dept_name ; return r_return ; exception when no_data_found then return null ; when too_many_rows then raise ; end trap ; end dept_by_name ; end department_api ; / Example (good) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 create or replace package body department_api is function dept_by_name ( -- NOSONAR: non-deterministic in_dept_name in departments . department_name % type ) return departments % rowtype is co_dept_name constant departments . department_name % type not null : = in_dept_name ; r_return departments % rowtype ; begin -- get the department by name << trap >> begin select * into r_return from departments where department_name = co_dept_name ; return r_return ; exception when no_data_found then return null ; when too_many_rows then raise ; end trap ; end dept_by_name ; end department_api ; / The exception should be handled where the function is called, like this: 1 2 3 4 5 6 7 8 9 10 11 declare co_dept_name constant type_up . text : = 'Far to long name of a department' ; begin pre_processing ; r_department : = department_api . dept_by_name ( co_dept_name ); post_processing ; exception when value_error then handle_error ; end ; /","title":"G-8310: Always validate input parameter size by assigning the parameter to a size limited variable in the declaration section of program unit."},{"location":"4-language-usage/8-patterns/3-validating-input-parameter-size/g-8310/#g-8310-always-validate-input-parameter-size-by-assigning-the-parameter-to-a-size-limited-variable-in-the-declaration-section-of-program-unit","text":"Major Maintainability, Reliability, Reusability, Testability","title":"G-8310: Always validate input parameter size by assigning the parameter to a size limited variable in the declaration section of program unit."},{"location":"4-language-usage/8-patterns/3-validating-input-parameter-size/g-8310/#reason","text":"This technique raises an error ( value_error ) which may not be handled in the called program unit. This is the right way to do it, as the error is not within this unit but when calling it, so the caller should handle the error. To limit the number of false positives, only the following data types used in parameters should be considered: char dec decimal interval day to second interval year to month nchar number numeric nvarchar2 varchar2 %type","title":"Reason"},{"location":"4-language-usage/8-patterns/3-validating-input-parameter-size/g-8310/#example-bad","text":"1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 create or replace package body department_api is function dept_by_name ( -- NOSONAR: non-deterministic in_dept_name in departments . department_name % type ) return departments % rowtype is r_return departments % rowtype ; co_max_dept_name_length constant integer : = 20 ; begin if in_dept_name is null or length ( in_dept_name ) > co_max_dept_name_length then raise err . e_param_to_large ; end if ; -- get the department by name << trap >> begin select * into r_return from departments where department_name = in_dept_name ; return r_return ; exception when no_data_found then return null ; when too_many_rows then raise ; end trap ; end dept_by_name ; end department_api ; /","title":"Example (bad)"},{"location":"4-language-usage/8-patterns/3-validating-input-parameter-size/g-8310/#example-good","text":"1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 create or replace package body department_api is function dept_by_name ( -- NOSONAR: non-deterministic in_dept_name in departments . department_name % type ) return departments % rowtype is co_dept_name constant departments . department_name % type not null : = in_dept_name ; r_return departments % rowtype ; begin -- get the department by name << trap >> begin select * into r_return from departments where department_name = co_dept_name ; return r_return ; exception when no_data_found then return null ; when too_many_rows then raise ; end trap ; end dept_by_name ; end department_api ; / The exception should be handled where the function is called, like this: 1 2 3 4 5 6 7 8 9 10 11 declare co_dept_name constant type_up . text : = 'Far to long name of a department' ; begin pre_processing ; r_department : = department_api . dept_by_name ( co_dept_name ); post_processing ; exception when value_error then handle_error ; end ; /","title":"Example (good)"},{"location":"4-language-usage/8-patterns/4-ensure-single-execution-at-a-time-of-a-program-unit/g-8410/","text":"G-8410: Always use application locks to ensure a program unit is only running once at a given time. Blocker Efficiency, Reliability Unsupported in db* CODECOP Validators We cannot identify where an application lock would make sense. Algorithms to detect wrong, missing and right usages of this pattern are virtually impossible to implement without understanding the context. Reason This technique allows us to have locks across transactions as well as a proven way to clean up at the end of the session. The alternative using a table where a \u201cLock-Row\u201d is stored has the disadvantage that in case of an error a proper cleanup has to be done to \u201cunlock\u201d the program unit. Example (bad) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 /* Example */ create or replace package body lock_up is -- manage locks in a dedicated table created as follows: -- CREATE TABLE app_locks ( -- lock_name VARCHAR2(128 CHAR) NOT NULL primary key -- ); procedure request_lock ( in_lock_name in varchar2 ) is co_lock_name constant app_locks . lock_name % type : = in_lock_name ; begin -- raises dup_val_on_index insert into app_locks ( lock_name ) values ( co_lock_name ); end request_lock ; procedure release_lock ( in_lock_name in varchar2 ) is co_lock_name constant app_locks . lock_name % type : = in_lock_name ; begin delete from app_locks where lock_name = co_lock_name ; end release_lock ; end lock_up ; / /* Call bad example */ declare co_lock_name constant app_locks . lock_name % type : = 'APPLICATION_LOCK' ; begin lock_up . request_lock ( in_lock_name => co_lock_name ); -- processing lock_up . release_lock ( in_lock_name => co_lock_name ); exception when dup_val_on_index then -- expected exception lock_up . release_lock ( in_lock_name => co_lock_name ); raise ; when others then -- unexpected exception, logging is recommended lock_up . release_lock ( in_lock_name => co_lock_name ); raise ; end ; / Example (good) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 /* Example */ create or replace package body lock_up is function request_lock ( -- NOSONAR: non-deterministic in_lock_name in varchar2 , in_release_on_commit in boolean default false ) return varchar2 is co_lock_name constant type_up . lock_name : = in_lock_name ; co_release_on_commit constant boolean : = in_release_on_commit ; l_lock_handle type_up . lock_handle ; begin sys . dbms_lock . allocate_unique ( lockname => co_lock_name , lockhandle => l_lock_handle , expiration_secs => constants_up . co_one_week ); if sys . dbms_lock . request ( lockhandle => l_lock_handle , lockmode => sys . dbms_lock . x_mode , timeout => sys . dbms_lock . maxwait , release_on_commit => co_release_on_commit ) > 0 then raise err . e_lock_request_failed ; end if ; return l_lock_handle ; end request_lock ; procedure release_lock ( in_lock_handle in varchar2 ) is co_lock_type constant type_up . lock_handle : = in_lock_handle ; begin if sys . dbms_lock . release ( lockhandle => co_lock_type ) > 0 then raise err . e_lock_request_failed ; end if ; end release_lock ; end lock_up ; / /* Call good example */ declare l_handle type_up . lock_handle ; co_lock_name constant type_up . lock_name : = 'APPLICATION_LOCK' ; begin l_handle : = lock_up . request_lock ( in_lock_name => co_lock_name ); -- processing lock_up . release_lock ( in_lock_handle => l_handle ); exception when err . e_lock_request_failed then -- expected exception lock_up . release_lock ( in_lock_name => co_lock_name ); raise ; when others then -- unexpected exception, logging is recommended lock_up . release_lock ( in_lock_name => co_lock_name ); raise ; end ; /","title":"G-8410: Always use application locks to ensure a program unit is only running once at a given time."},{"location":"4-language-usage/8-patterns/4-ensure-single-execution-at-a-time-of-a-program-unit/g-8410/#g-8410-always-use-application-locks-to-ensure-a-program-unit-is-only-running-once-at-a-given-time","text":"Blocker Efficiency, Reliability Unsupported in db* CODECOP Validators We cannot identify where an application lock would make sense. Algorithms to detect wrong, missing and right usages of this pattern are virtually impossible to implement without understanding the context.","title":"G-8410: Always use application locks to ensure a program unit is only running once at a given time."},{"location":"4-language-usage/8-patterns/4-ensure-single-execution-at-a-time-of-a-program-unit/g-8410/#reason","text":"This technique allows us to have locks across transactions as well as a proven way to clean up at the end of the session. The alternative using a table where a \u201cLock-Row\u201d is stored has the disadvantage that in case of an error a proper cleanup has to be done to \u201cunlock\u201d the program unit.","title":"Reason"},{"location":"4-language-usage/8-patterns/4-ensure-single-execution-at-a-time-of-a-program-unit/g-8410/#example-bad","text":"1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 /* Example */ create or replace package body lock_up is -- manage locks in a dedicated table created as follows: -- CREATE TABLE app_locks ( -- lock_name VARCHAR2(128 CHAR) NOT NULL primary key -- ); procedure request_lock ( in_lock_name in varchar2 ) is co_lock_name constant app_locks . lock_name % type : = in_lock_name ; begin -- raises dup_val_on_index insert into app_locks ( lock_name ) values ( co_lock_name ); end request_lock ; procedure release_lock ( in_lock_name in varchar2 ) is co_lock_name constant app_locks . lock_name % type : = in_lock_name ; begin delete from app_locks where lock_name = co_lock_name ; end release_lock ; end lock_up ; / /* Call bad example */ declare co_lock_name constant app_locks . lock_name % type : = 'APPLICATION_LOCK' ; begin lock_up . request_lock ( in_lock_name => co_lock_name ); -- processing lock_up . release_lock ( in_lock_name => co_lock_name ); exception when dup_val_on_index then -- expected exception lock_up . release_lock ( in_lock_name => co_lock_name ); raise ; when others then -- unexpected exception, logging is recommended lock_up . release_lock ( in_lock_name => co_lock_name ); raise ; end ; /","title":"Example (bad)"},{"location":"4-language-usage/8-patterns/4-ensure-single-execution-at-a-time-of-a-program-unit/g-8410/#example-good","text":"1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 /* Example */ create or replace package body lock_up is function request_lock ( -- NOSONAR: non-deterministic in_lock_name in varchar2 , in_release_on_commit in boolean default false ) return varchar2 is co_lock_name constant type_up . lock_name : = in_lock_name ; co_release_on_commit constant boolean : = in_release_on_commit ; l_lock_handle type_up . lock_handle ; begin sys . dbms_lock . allocate_unique ( lockname => co_lock_name , lockhandle => l_lock_handle , expiration_secs => constants_up . co_one_week ); if sys . dbms_lock . request ( lockhandle => l_lock_handle , lockmode => sys . dbms_lock . x_mode , timeout => sys . dbms_lock . maxwait , release_on_commit => co_release_on_commit ) > 0 then raise err . e_lock_request_failed ; end if ; return l_lock_handle ; end request_lock ; procedure release_lock ( in_lock_handle in varchar2 ) is co_lock_type constant type_up . lock_handle : = in_lock_handle ; begin if sys . dbms_lock . release ( lockhandle => co_lock_type ) > 0 then raise err . e_lock_request_failed ; end if ; end release_lock ; end lock_up ; / /* Call good example */ declare l_handle type_up . lock_handle ; co_lock_name constant type_up . lock_name : = 'APPLICATION_LOCK' ; begin l_handle : = lock_up . request_lock ( in_lock_name => co_lock_name ); -- processing lock_up . release_lock ( in_lock_handle => l_handle ); exception when err . e_lock_request_failed then -- expected exception lock_up . release_lock ( in_lock_name => co_lock_name ); raise ; when others then -- unexpected exception, logging is recommended lock_up . release_lock ( in_lock_name => co_lock_name ); raise ; end ; /","title":"Example (good)"},{"location":"4-language-usage/8-patterns/5-use-dbms-application-info-package-to-follow-progress-of-a-process/g-8510/","text":"G-8510: Always use dbms_application_info to track program process transiently. Critical Efficiency, Reliability Unsupported in db* CODECOP Validators We cannot know where the use of dbms_application_info is sensible. Algorithms to detect wrong, missing and right usages of this pattern are virtually impossible to implement without understanding the context. Reason This technique allows us to view progress of a process without having to persistently write log data in either a table or a file. The information is accessible through the v$session view. Example (bad) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 create or replace package body employee_api is procedure process_emps is begin << employees >> for emp_rec in ( select employee_id from employees order by employee_id ) loop -- some processing sys . dbms_output . put_line ( emp_rec . employee_id ); end loop employees ; end process_emps ; end employee_api ; / Example (good) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 create or replace package body employee_api is procedure process_emps is co_action_name constant v$session . action % type : = 'init' ; co_label constant v$session . action % type : = 'Processing ' ; begin sys . dbms_application_info . set_module ( module_name => $$ plsql_unit , action_name => co_action_name ); << employees >> for emp_rec in ( select employee_id from employees order by employee_id ) loop -- some processing sys . dbms_application_info . set_action ( co_label || emp_rec . employee_id ); end loop employees ; end process_emps ; end employee_api ; /","title":"G-8510: Always use dbms_application_info to track program process transiently."},{"location":"4-language-usage/8-patterns/5-use-dbms-application-info-package-to-follow-progress-of-a-process/g-8510/#g-8510-always-use-dbms_application_info-to-track-program-process-transiently","text":"Critical Efficiency, Reliability Unsupported in db* CODECOP Validators We cannot know where the use of dbms_application_info is sensible. Algorithms to detect wrong, missing and right usages of this pattern are virtually impossible to implement without understanding the context.","title":"G-8510: Always use dbms_application_info to track program process transiently."},{"location":"4-language-usage/8-patterns/5-use-dbms-application-info-package-to-follow-progress-of-a-process/g-8510/#reason","text":"This technique allows us to view progress of a process without having to persistently write log data in either a table or a file. The information is accessible through the v$session view.","title":"Reason"},{"location":"4-language-usage/8-patterns/5-use-dbms-application-info-package-to-follow-progress-of-a-process/g-8510/#example-bad","text":"1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 create or replace package body employee_api is procedure process_emps is begin << employees >> for emp_rec in ( select employee_id from employees order by employee_id ) loop -- some processing sys . dbms_output . put_line ( emp_rec . employee_id ); end loop employees ; end process_emps ; end employee_api ; /","title":"Example (bad)"},{"location":"4-language-usage/8-patterns/5-use-dbms-application-info-package-to-follow-progress-of-a-process/g-8510/#example-good","text":"1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 create or replace package body employee_api is procedure process_emps is co_action_name constant v$session . action % type : = 'init' ; co_label constant v$session . action % type : = 'Processing ' ; begin sys . dbms_application_info . set_module ( module_name => $$ plsql_unit , action_name => co_action_name ); << employees >> for emp_rec in ( select employee_id from employees order by employee_id ) loop -- some processing sys . dbms_application_info . set_action ( co_label || emp_rec . employee_id ); end loop employees ; end process_emps ; end employee_api ; /","title":"Example (good)"},{"location":"4-language-usage/9-function-usage/g-9010/","text":"G-9010: Always use a format model in string to date/time conversion functions. Blocker Changeability, Maintainability, Reliability, Security, Testability Reason Converting from strings to date or timestamp datatypes (using to_date , to_timestamp , to_timestamp_tz or cast to any of those datatypes) in practice always expects a fixed format (unlike converting to strings that can be fixed as well as allow the session to decide). Therefore it is a bad idea to allow this conversion to rely on the session NLS settings ( nls_date_format , nls_timestamp_format and nls_timestamp_tz_format ) as this makes the code vulnerable to changes in session and/or server configuration. It is even possible to utilize session nls_date_format for SQL injection if you use dynamic SQL. Using an explicit format model for string to date or timestamp conversion avoids this inappropriate dependability on configurable NLS parameters. Example (bad) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 create or replace package body employee_api is procedure set_dob ( in_employee_id in employees . employee_id % type , in_dob_str in varchar2 ) is co_employee_id constant employees . employee_id % type : = in_employee_id ; co_dob_str constant type_up . date_string : = in_dob_str ; begin update employees set date_of_birth = to_date ( co_dob_str default null on conversion error ) where employee_id = co_employee_id ; end set_dob ; end employee_api ; / Example (good) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 create or replace package body employee_api is procedure set_dob ( in_employee_id in employees . employee_id % type , in_dob_str in varchar2 ) is co_employee_id constant employees . employee_id % type : = in_employee_id ; co_dob_str constant type_up . date_string : = in_dob_str ; begin update employees set date_of_birth = to_date ( co_dob_str default null on conversion error , 'FXYYYY-MM-DD' ) where employee_id = co_employee_id ; end set_dob ; end employee_api ; /","title":"G-9010: Always use a format model in string to date/time conversion functions."},{"location":"4-language-usage/9-function-usage/g-9010/#g-9010-always-use-a-format-model-in-string-to-datetime-conversion-functions","text":"Blocker Changeability, Maintainability, Reliability, Security, Testability","title":"G-9010: Always use a format model in string to date/time conversion functions."},{"location":"4-language-usage/9-function-usage/g-9010/#reason","text":"Converting from strings to date or timestamp datatypes (using to_date , to_timestamp , to_timestamp_tz or cast to any of those datatypes) in practice always expects a fixed format (unlike converting to strings that can be fixed as well as allow the session to decide). Therefore it is a bad idea to allow this conversion to rely on the session NLS settings ( nls_date_format , nls_timestamp_format and nls_timestamp_tz_format ) as this makes the code vulnerable to changes in session and/or server configuration. It is even possible to utilize session nls_date_format for SQL injection if you use dynamic SQL. Using an explicit format model for string to date or timestamp conversion avoids this inappropriate dependability on configurable NLS parameters.","title":"Reason"},{"location":"4-language-usage/9-function-usage/g-9010/#example-bad","text":"1 2 3 4 5 6 7 8 9 10 11 12 13 14 create or replace package body employee_api is procedure set_dob ( in_employee_id in employees . employee_id % type , in_dob_str in varchar2 ) is co_employee_id constant employees . employee_id % type : = in_employee_id ; co_dob_str constant type_up . date_string : = in_dob_str ; begin update employees set date_of_birth = to_date ( co_dob_str default null on conversion error ) where employee_id = co_employee_id ; end set_dob ; end employee_api ; /","title":"Example (bad)"},{"location":"4-language-usage/9-function-usage/g-9010/#example-good","text":"1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 create or replace package body employee_api is procedure set_dob ( in_employee_id in employees . employee_id % type , in_dob_str in varchar2 ) is co_employee_id constant employees . employee_id % type : = in_employee_id ; co_dob_str constant type_up . date_string : = in_dob_str ; begin update employees set date_of_birth = to_date ( co_dob_str default null on conversion error , 'FXYYYY-MM-DD' ) where employee_id = co_employee_id ; end set_dob ; end employee_api ; /","title":"Example (good)"},{"location":"4-language-usage/9-function-usage/g-9020/","text":"G-9020: Try to use a format model and NLS_NUMERIC_CHARACTERS in string to number conversion functions. Blocker Changeability, Maintainability, Reliability, Security, Testability Reason Converting from strings to numeric datatypes (using to_number , to_binary_double , to_binary_float or cast to any of those datatypes) rely on session NLS settings for nls_numeric_characters . Typically the input string is expected to have a given decimal- and group-separator, so it is best practice to specify nls_numeric_characters in the function call. However, this requires also setting a format model, which is a good idea but can require a very large format model with many 9's if you do not know the maximum length of the string. To avoid an inappropriate dependability on configurable NLS parameters, try to use both format model and nls_numeric_characters in the conversion function call. The exceptions can be if the input is known to always be integer with no decimal- or group-separator, or if you do not know the maximum number of digits and have control over the session nls_numeric_characters parameter. Example (bad) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 create or replace package body employee_api is procedure set_salary ( in_employee_id in employees . employee_id % type , in_salary in varchar2 ) is co_employee_id constant eployees . employee_id % type : = in_employee_id ; co_salary constant type_up . date_string : = in_salary ; begin update employees set salary = to_number ( co_salary default null on conversion error ) where employee_id = co_employee_id ; end set_dob ; end employee_api ; / Example (good) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 create or replace package body employee_api is procedure set_salary ( in_employee_id in employees . employee_id % type , in_salary in varchar2 ) is co_employee_id constant eployees . employee_id % type : = in_employee_id ; co_salary constant type_up . string : = in_salary ; begin update employees set salary = to_number ( co_salary default null on conversion error , '99999999999999999999.99999' , q '[nls_numeric_characters=' ., ']' ) where employee_id = co_employee_id ; end set_dob ; end employee_api ;","title":"G-9020: Try to use a format model and NLS_NUMERIC_CHARACTERS in string to number conversion functions."},{"location":"4-language-usage/9-function-usage/g-9020/#g-9020-try-to-use-a-format-model-and-nls_numeric_characters-in-string-to-number-conversion-functions","text":"Blocker Changeability, Maintainability, Reliability, Security, Testability","title":"G-9020: Try to use a format model and NLS_NUMERIC_CHARACTERS in string to number conversion functions."},{"location":"4-language-usage/9-function-usage/g-9020/#reason","text":"Converting from strings to numeric datatypes (using to_number , to_binary_double , to_binary_float or cast to any of those datatypes) rely on session NLS settings for nls_numeric_characters . Typically the input string is expected to have a given decimal- and group-separator, so it is best practice to specify nls_numeric_characters in the function call. However, this requires also setting a format model, which is a good idea but can require a very large format model with many 9's if you do not know the maximum length of the string. To avoid an inappropriate dependability on configurable NLS parameters, try to use both format model and nls_numeric_characters in the conversion function call. The exceptions can be if the input is known to always be integer with no decimal- or group-separator, or if you do not know the maximum number of digits and have control over the session nls_numeric_characters parameter.","title":"Reason"},{"location":"4-language-usage/9-function-usage/g-9020/#example-bad","text":"1 2 3 4 5 6 7 8 9 10 11 12 13 14 create or replace package body employee_api is procedure set_salary ( in_employee_id in employees . employee_id % type , in_salary in varchar2 ) is co_employee_id constant eployees . employee_id % type : = in_employee_id ; co_salary constant type_up . date_string : = in_salary ; begin update employees set salary = to_number ( co_salary default null on conversion error ) where employee_id = co_employee_id ; end set_dob ; end employee_api ; /","title":"Example (bad)"},{"location":"4-language-usage/9-function-usage/g-9020/#example-good","text":"1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 create or replace package body employee_api is procedure set_salary ( in_employee_id in employees . employee_id % type , in_salary in varchar2 ) is co_employee_id constant eployees . employee_id % type : = in_employee_id ; co_salary constant type_up . string : = in_salary ; begin update employees set salary = to_number ( co_salary default null on conversion error , '99999999999999999999.99999' , q '[nls_numeric_characters=' ., ']' ) where employee_id = co_employee_id ; end set_dob ; end employee_api ;","title":"Example (good)"},{"location":"4-language-usage/9-function-usage/g-9030/","text":"G-9030: Try to define a default value on conversion errors. Major Maintainability, Reliability, Testability Restriction Oracle Database 12c Release 2 Reason When converting from strings to other datatypes using a conversion function that supports the default ... on conversion error clause, it is a good idea to use this clause to avoid getting an error raised on bad input. The exception can be when you explicitly want an error to be raised to catch and process it in a later exception handler. Example (bad) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 create or replace package body employee_api is procedure set_dob ( in_employee_id in employees . employee_id % type , in_dob_str in varchar2 ) is co_employee_id constant employees . employee_id % type : = in_employee_id ; co_dob_str constant type_up . date_string : = in_dob_str ; begin update employees set date_of_birth = to_date ( co_dob_str , 'FXYYYY-MM-DD' ) -- violates also G-1050 where employee_id = co_employee_id ; end set_dob ; end employee_api ; / Example (good) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 create or replace package body employee_api is procedure set_dob ( in_employee_id in employees . employee_id % type , in_dob_str in varchar2 ) is co_employee_id constant employees . employee_id % type : = in_employee_id ; co_dob_str constant type_up . date_string : = in_dob_str ; begin update employees set date_of_birth = to_date ( co_dob_str default null on conversion error , 'FXYYYY-MM-DD' -- NOSONAR: G-1050 must be a literal ) where employee_id = co_employee_id ; end set_dob ; end employee_api ; /","title":"G-9030: Try to define a default value on conversion errors."},{"location":"4-language-usage/9-function-usage/g-9030/#g-9030-try-to-define-a-default-value-on-conversion-errors","text":"Major Maintainability, Reliability, Testability","title":"G-9030: Try to define a default value on conversion errors."},{"location":"4-language-usage/9-function-usage/g-9030/#restriction","text":"Oracle Database 12c Release 2","title":"Restriction"},{"location":"4-language-usage/9-function-usage/g-9030/#reason","text":"When converting from strings to other datatypes using a conversion function that supports the default ... on conversion error clause, it is a good idea to use this clause to avoid getting an error raised on bad input. The exception can be when you explicitly want an error to be raised to catch and process it in a later exception handler.","title":"Reason"},{"location":"4-language-usage/9-function-usage/g-9030/#example-bad","text":"1 2 3 4 5 6 7 8 9 10 11 12 13 14 create or replace package body employee_api is procedure set_dob ( in_employee_id in employees . employee_id % type , in_dob_str in varchar2 ) is co_employee_id constant employees . employee_id % type : = in_employee_id ; co_dob_str constant type_up . date_string : = in_dob_str ; begin update employees set date_of_birth = to_date ( co_dob_str , 'FXYYYY-MM-DD' ) -- violates also G-1050 where employee_id = co_employee_id ; end set_dob ; end employee_api ; /","title":"Example (bad)"},{"location":"4-language-usage/9-function-usage/g-9030/#example-good","text":"1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 create or replace package body employee_api is procedure set_dob ( in_employee_id in employees . employee_id % type , in_dob_str in varchar2 ) is co_employee_id constant employees . employee_id % type : = in_employee_id ; co_dob_str constant type_up . date_string : = in_dob_str ; begin update employees set date_of_birth = to_date ( co_dob_str default null on conversion error , 'FXYYYY-MM-DD' -- NOSONAR: G-1050 must be a literal ) where employee_id = co_employee_id ; end set_dob ; end employee_api ; /","title":"Example (good)"},{"location":"4-language-usage/9-function-usage/g-9040/","text":"G-9040: Try using FX in string to date/time conversion format model to avoid fuzzy conversion. Blocker Reliability, Testability Reason The default string-to-date conversion rules allow fuzzy conversion when converting from strings to date or timestamp datatypes (using to_date , to_timestamp , to_timestamp_tz or cast to any of those datatypes). For example you can omit punctuation characters, use any non-alphanumeric character for punctuation, use month name instead of number, or various other rules. In practice you almost always expect a truly fixed format and want the database to enforce the format model and raise an error if the data does not match the format model. This you can achieve by adding the format modifier FX (format exact). The exception to this rule can be if you are converting textual input typed by a user, in which case the fuzzy conversion may be what you want. Example (bad) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 create or replace package body employee_api is procedure set_dob ( in_employee_id in employees . employee_id % type , in_dob_str in varchar2 ) is co_employee_id constant employees . employee_id % type : = in_employee_id ; co_dob_str constant type_up . date_string : = in_dob_str ; begin update employees set date_of_birth = to_date ( co_dob_str default null on conversion error , 'YYYY-MM-DD' ) where employee_id = co_employee_id ; end set_dob ; end employee_api ; / Example (good) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 create or replace package body employee_api is procedure set_dob ( in_employee_id in employees . employee_id % type , in_dob_str in varchar2 ) is co_employee_id constant employees . employee_id % type : = in_employee_id ; co_dob_str constant type_up . date_string : = in_dob_str ; begin update employees set date_of_birth = to_date ( co_dob_str default null on conversion error , 'FXYYYY-MM-DD' ) where employee_id = co_employee_id ; end set_dob ; end employee_api ; /","title":"G-9040: Try using FX in string to date/time conversion format model to avoid fuzzy conversion."},{"location":"4-language-usage/9-function-usage/g-9040/#g-9040-try-using-fx-in-string-to-datetime-conversion-format-model-to-avoid-fuzzy-conversion","text":"Blocker Reliability, Testability","title":"G-9040: Try using FX in string to date/time conversion format model to avoid fuzzy conversion."},{"location":"4-language-usage/9-function-usage/g-9040/#reason","text":"The default string-to-date conversion rules allow fuzzy conversion when converting from strings to date or timestamp datatypes (using to_date , to_timestamp , to_timestamp_tz or cast to any of those datatypes). For example you can omit punctuation characters, use any non-alphanumeric character for punctuation, use month name instead of number, or various other rules. In practice you almost always expect a truly fixed format and want the database to enforce the format model and raise an error if the data does not match the format model. This you can achieve by adding the format modifier FX (format exact). The exception to this rule can be if you are converting textual input typed by a user, in which case the fuzzy conversion may be what you want.","title":"Reason"},{"location":"4-language-usage/9-function-usage/g-9040/#example-bad","text":"1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 create or replace package body employee_api is procedure set_dob ( in_employee_id in employees . employee_id % type , in_dob_str in varchar2 ) is co_employee_id constant employees . employee_id % type : = in_employee_id ; co_dob_str constant type_up . date_string : = in_dob_str ; begin update employees set date_of_birth = to_date ( co_dob_str default null on conversion error , 'YYYY-MM-DD' ) where employee_id = co_employee_id ; end set_dob ; end employee_api ; /","title":"Example (bad)"},{"location":"4-language-usage/9-function-usage/g-9040/#example-good","text":"1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 create or replace package body employee_api is procedure set_dob ( in_employee_id in employees . employee_id % type , in_dob_str in varchar2 ) is co_employee_id constant employees . employee_id % type : = in_employee_id ; co_dob_str constant type_up . date_string : = in_dob_str ; begin update employees set date_of_birth = to_date ( co_dob_str default null on conversion error , 'FXYYYY-MM-DD' ) where employee_id = co_employee_id ; end set_dob ; end employee_api ; /","title":"Example (good)"},{"location":"5-complexity-analysis/complexity-analysis/","text":"Complexity Analysis Using software metrics like complexity analysis will guide you towards maintainable and testable pieces of code by reducing the complexity and splitting the code into smaller chunks. Halstead Metrics Calculation First, we need to compute the following numbers, given the program: \\(n_1\\) = the number of distinct operators \\(n_2\\) = the number of distinct operands \\(N_1\\) = the total number of operators \\(N_2\\) = the total number of operands From these numbers, five measures can be calculated: Program length: \\(N = N_1 + N_2\\) Program vocabulary: \\(n = n_1 + n_2\\) Volume: \\(V = N \\cdot log_2 n\\) Difficulty: \\(D = \\frac{n_1}{2} \\cdot \\frac{N_2}{n_2}\\) Effort: \\(E = D \\cdot V\\) The difficulty measure \\(D\\) is related to the difficulty of the program to write or understand, e.g. when doing code review. The volume measure \\(V\\) describes the size of the implementation of an algorithm. McCabe's Cyclomatic Complexity Description Cyclomatic complexity (or conditional complexity) is a software metric used to measure the complexity of a program. It directly measures the number of linearly independent paths through a program's source code. Cyclomatic complexity is computed using the control flow graph of the program: the nodes of the graph correspond to indivisible groups of commands of a program, and a directed edge connects two nodes if the second command might be executed immediately after the first command. Cyclomatic complexity may also be applied to individual functions, modules, methods or classes within a program. The cyclomatic complexity of a section of source code is the count of the number of linearly independent paths through the source code. For instance, if the source code contains no decision points, such as if statements or for loops, the complexity would be 1, since there is only a single path through the code. If the code has a single if statement containing a single condition there would be two paths through the code, one path where the if statement is evaluated as true and one path where the if statement is evaluated as false . Calculation Mathematically, the cyclomatic complexity of a structured program is defined with reference to a directed graph containing the basic blocks of the program, with an edge between two basic blocks if control may pass from the first to the second (the control flow graph of the program). The complexity is then defined as: \\[M = E - N + 2P\\] where \\(M\\) = cyclomatic complexity \\(E\\) = the number of edges of the graph \\(N\\) = the number of nodes of the graph \\(P\\) = the number of connected components. Take, for example, a control flow graph of a simple program. The program begins executing at the red node, then enters a loop (group of three nodes immediately below the red node). On exiting the loop, there is a conditional statement (group below the loop), and finally the program exits at the blue node. For this graph, \\(E = 9\\) , \\(N = 8\\) and \\(P = 1\\) , so the cyclomatic complexity of the program is \\(3\\) . 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 declare co_upper_bound constant integer : = 3 ; co_msg constant user_objects . object_name % type : = 'in loop ' ; co_yes constant user_objects . object_name % type : = 'yes' ; co_end constant user_objects . object_name % type : = 'end' ; begin << print_in_loop >> for i in 1 .. co_upper_bound loop sys . dbms_output . put_line ( co_msg || i ); end loop print_in_loop ; -- if 1 = 1 then sys . dbms_output . put_line ( co_yes ); end if ; -- sys . dbms_output . put_line ( co_end ); end ; / For a single program (or subroutine or method), P is always equal to 1. Cyclomatic complexity may, however, be applied to several such programs or subprograms at the same time (e.g., to all of the methods in a class), and in these cases P will be equal to the number of programs in question, as each subprogram will appear as a disconnected subset of the graph. It can be shown that the cyclomatic complexity of any structured program with only one entrance point and one exit point is equal to the number of decision points (i.e., if statements or conditional loops) contained in that program plus one. Cyclomatic complexity may be extended to a program with multiple exit points; in this case it is equal to: \\[\\pi = s + 2\\] Where \\(\\pi\\) is the number of decision points in the program, and \\(s\\) is the number of exit points.","title":"Complexity Analysis"},{"location":"5-complexity-analysis/complexity-analysis/#complexity-analysis","text":"Using software metrics like complexity analysis will guide you towards maintainable and testable pieces of code by reducing the complexity and splitting the code into smaller chunks.","title":"Complexity Analysis"},{"location":"5-complexity-analysis/complexity-analysis/#halstead-metrics","text":"","title":"Halstead Metrics"},{"location":"5-complexity-analysis/complexity-analysis/#calculation","text":"First, we need to compute the following numbers, given the program: \\(n_1\\) = the number of distinct operators \\(n_2\\) = the number of distinct operands \\(N_1\\) = the total number of operators \\(N_2\\) = the total number of operands From these numbers, five measures can be calculated: Program length: \\(N = N_1 + N_2\\) Program vocabulary: \\(n = n_1 + n_2\\) Volume: \\(V = N \\cdot log_2 n\\) Difficulty: \\(D = \\frac{n_1}{2} \\cdot \\frac{N_2}{n_2}\\) Effort: \\(E = D \\cdot V\\) The difficulty measure \\(D\\) is related to the difficulty of the program to write or understand, e.g. when doing code review. The volume measure \\(V\\) describes the size of the implementation of an algorithm.","title":"Calculation"},{"location":"5-complexity-analysis/complexity-analysis/#mccabes-cyclomatic-complexity","text":"","title":"McCabe's Cyclomatic Complexity"},{"location":"5-complexity-analysis/complexity-analysis/#description","text":"Cyclomatic complexity (or conditional complexity) is a software metric used to measure the complexity of a program. It directly measures the number of linearly independent paths through a program's source code. Cyclomatic complexity is computed using the control flow graph of the program: the nodes of the graph correspond to indivisible groups of commands of a program, and a directed edge connects two nodes if the second command might be executed immediately after the first command. Cyclomatic complexity may also be applied to individual functions, modules, methods or classes within a program. The cyclomatic complexity of a section of source code is the count of the number of linearly independent paths through the source code. For instance, if the source code contains no decision points, such as if statements or for loops, the complexity would be 1, since there is only a single path through the code. If the code has a single if statement containing a single condition there would be two paths through the code, one path where the if statement is evaluated as true and one path where the if statement is evaluated as false .","title":"Description"},{"location":"5-complexity-analysis/complexity-analysis/#calculation_1","text":"Mathematically, the cyclomatic complexity of a structured program is defined with reference to a directed graph containing the basic blocks of the program, with an edge between two basic blocks if control may pass from the first to the second (the control flow graph of the program). The complexity is then defined as: \\[M = E - N + 2P\\] where \\(M\\) = cyclomatic complexity \\(E\\) = the number of edges of the graph \\(N\\) = the number of nodes of the graph \\(P\\) = the number of connected components. Take, for example, a control flow graph of a simple program. The program begins executing at the red node, then enters a loop (group of three nodes immediately below the red node). On exiting the loop, there is a conditional statement (group below the loop), and finally the program exits at the blue node. For this graph, \\(E = 9\\) , \\(N = 8\\) and \\(P = 1\\) , so the cyclomatic complexity of the program is \\(3\\) . 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 declare co_upper_bound constant integer : = 3 ; co_msg constant user_objects . object_name % type : = 'in loop ' ; co_yes constant user_objects . object_name % type : = 'yes' ; co_end constant user_objects . object_name % type : = 'end' ; begin << print_in_loop >> for i in 1 .. co_upper_bound loop sys . dbms_output . put_line ( co_msg || i ); end loop print_in_loop ; -- if 1 = 1 then sys . dbms_output . put_line ( co_yes ); end if ; -- sys . dbms_output . put_line ( co_end ); end ; / For a single program (or subroutine or method), P is always equal to 1. Cyclomatic complexity may, however, be applied to several such programs or subprograms at the same time (e.g., to all of the methods in a class), and in these cases P will be equal to the number of programs in question, as each subprogram will appear as a disconnected subset of the graph. It can be shown that the cyclomatic complexity of any structured program with only one entrance point and one exit point is equal to the number of decision points (i.e., if statements or conditional loops) contained in that program plus one. Cyclomatic complexity may be extended to a program with multiple exit points; in this case it is equal to: \\[\\pi = s + 2\\] Where \\(\\pi\\) is the number of decision points in the program, and \\(s\\) is the number of exit points.","title":"Calculation"},{"location":"6-code-reviews/code-reviews/","text":"Code Reviews Code reviews check the results of software engineering. According to IEEE-Norm 729, a review is a more or less planned and structured analysis and evaluation process. Here we distinguish between code review and architect review. To perform a code review means that after or during the development one or more reviewer proof-reads the code to find potential errors, potential areas for simplification, or test cases. A code review is a very good opportunity to save costs by fixing issues before the testing phase. What can a code-review be good for? Code quality Code clarity and maintainability Quality of the overall architecture Quality of the documentation Quality of the interface specification For an effective review, the following factors must be considered: Definition of clear goals. Choice of a suitable person with constructive critical faculties. Psychological aspects. Selection of the right review techniques. Support of the review process from the management. Existence of a culture of learning and process optimization. Requirements for the reviewer: He must not be the owner of the code. Code reviews may be unpleasant for the developer, as he could fear that his code will be criticized. If the critic is not considerate, the code writer will build up rejection and resistance against code reviews.","title":"Code Reviews"},{"location":"6-code-reviews/code-reviews/#code-reviews","text":"Code reviews check the results of software engineering. According to IEEE-Norm 729, a review is a more or less planned and structured analysis and evaluation process. Here we distinguish between code review and architect review. To perform a code review means that after or during the development one or more reviewer proof-reads the code to find potential errors, potential areas for simplification, or test cases. A code review is a very good opportunity to save costs by fixing issues before the testing phase. What can a code-review be good for? Code quality Code clarity and maintainability Quality of the overall architecture Quality of the documentation Quality of the interface specification For an effective review, the following factors must be considered: Definition of clear goals. Choice of a suitable person with constructive critical faculties. Psychological aspects. Selection of the right review techniques. Support of the review process from the management. Existence of a culture of learning and process optimization. Requirements for the reviewer: He must not be the owner of the code. Code reviews may be unpleasant for the developer, as he could fear that his code will be criticized. If the critic is not considerate, the code writer will build up rejection and resistance against code reviews.","title":"Code Reviews"},{"location":"7-tool-support/1-db-codecop-sqldev/","text":"db* CODECOP for SQL Developer Introduction db* CODECOP for SQL Developer is a free extension to check an editor content for compliance violations of this coding guideline. The extension may be parameterized to your preferred set of rules and allows checking this set against a program unit. db* CODECOP calculates metrics per PL/SQL unit, such as: McCabe\u2019s cyclomatic complexity Halstead\u2019s volume The maintainability index Lines Commands (SQL*Plus and SQL) Statements (within a PL/SQL unit) etc. And aggregates them on file level. The results are presented in an additional tabbed panel. One tab shows all guideline violations to quickly navigate to the corresponding code position. The other tab contains a full HTML report, which also may be opened in your external browser. Examples Open a PL/SQL or SQL script in a SQL Developer editor and press Ctrl-Shift-C to check your code against the Trivadis PL/SQL & SQL guidelines. Navigate through the issues using the cursor keys to highlight the related code section in the linked editor. Dock the db* CODECOP output window on your favorite position within SQL Developer and click on the report tab to reveal some additional metrics. Open the report in an external browser to print or save the report.","title":"db* CODECOP for SQL Developer"},{"location":"7-tool-support/1-db-codecop-sqldev/#db-codecop-for-sql-developer","text":"","title":"db* CODECOP for SQL Developer"},{"location":"7-tool-support/1-db-codecop-sqldev/#introduction","text":"db* CODECOP for SQL Developer is a free extension to check an editor content for compliance violations of this coding guideline. The extension may be parameterized to your preferred set of rules and allows checking this set against a program unit. db* CODECOP calculates metrics per PL/SQL unit, such as: McCabe\u2019s cyclomatic complexity Halstead\u2019s volume The maintainability index Lines Commands (SQL*Plus and SQL) Statements (within a PL/SQL unit) etc. And aggregates them on file level. The results are presented in an additional tabbed panel. One tab shows all guideline violations to quickly navigate to the corresponding code position. The other tab contains a full HTML report, which also may be opened in your external browser.","title":"Introduction"},{"location":"7-tool-support/1-db-codecop-sqldev/#examples","text":"Open a PL/SQL or SQL script in a SQL Developer editor and press Ctrl-Shift-C to check your code against the Trivadis PL/SQL & SQL guidelines. Navigate through the issues using the cursor keys to highlight the related code section in the linked editor. Dock the db* CODECOP output window on your favorite position within SQL Developer and click on the report tab to reveal some additional metrics. Open the report in an external browser to print or save the report.","title":"Examples"},{"location":"7-tool-support/2-db-codecop-sonarqube/","text":"db* CODECOP for SonarQube Introduction db* CODECOP for SonarQube is a plugin for SonarQube . The plugin analyses SQL and PL/SQL code and calculates various metrics and checks the code for compliance of this coding guideline. A static code analysis is typically initiated as part of an continuous integration setup, e.g. at the end of a Jenkins or Hudson build job. SonarQube stores the result of the analysis in a relational database. Supported are PostgreSQL, Microsoft SQL Server and Oracle Database. For evaluation purposes, the embedded H2 database can also be used. Since every analysis is stored as a snapshot in the SonarQube repository the improvement or the decrease of the code quality may be monitored very well. Use SonarQube and the db* CODECOP plugin if you care about your PL/SQL code quality. Examples Run Code Analysis via SonarScanner You start an analysis from the command line as follows (see docs for more information): 1 sonar-scanner -Dsonar.projectKey=\"sample\" Here's an excerpt of the output: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 INFO: Scanner configuration file: /usr/local/opt/sonar-scanner/conf/sonar-scanner.properties INFO: Project root configuration file: NONE INFO: SonarQube Scanner 4.1.0.1829 ... INFO: Project configuration: INFO: 115 files indexed INFO: Quality profile for plsql: db* CODECOP INFO: ------------- Run sensors on module sample INFO: JavaScript/TypeScript frontend is enabled INFO: Define db* CODECOP PlugIn (Secondary) INFO: Load metrics repository INFO: Load metrics repository (done) | time=36ms INFO: PlSQL COP Sensor initializing INFO: Instantiate class: com.trivadis.sonar.plugin.TrivadisGuidelines3ValidatorConfig INFO: Sensor CSS Rules [cssfamily] INFO: No CSS, PHP, HTML or VueJS files are found in the project. CSS analysis is skipped. INFO: Sensor CSS Rules [cssfamily] (done) | time=1ms INFO: Sensor PL/SQL Sensor [plsql] INFO: 115 source files to be analyzed INFO: Load project repositories INFO: Load project repositories (done) | time=10ms ... INFO: Analysis report generated in 149ms, dir size=603 KB INFO: Analysis report compressed in 1101ms, zip size=264 KB INFO: Analysis report uploaded in 1858ms INFO: ANALYSIS SUCCESSFUL, you can browse http://localhost:9000/dashboard?id=sample INFO: Note that you will be able to access the updated dashboard once the server has processed the submitted analysis report INFO: More about the report processing at http://localhost:9000/api/ce/task?id=AXiSv3IJVMRTx5sCSVMo INFO: Analysis total time: 27.088 s INFO: ------------------------------------------------------------------------ INFO: EXECUTION SUCCESS INFO: ------------------------------------------------------------------------ INFO: Total time: 28.961s INFO: Final Memory: 40M/144M INFO: ------------------------------------------------------------------------ At the end of the run an URL to the scanner result is provided. Run Code Analyis with CI Environments You can call the SonarScanner also from Gradle, .NET projects, Maven, Ant, Jenkins, etc. Whichever method you use, in the end the analysis report will be uploaded to SonarQube. See SonarScanner for more information. View Code Analysis Result in SonarQube Here are the results of the previous analysis. Under Issues the following Blocker are shown: By clicking on the reddish box you can drill down to the source code. When clicking on Why is this an issue? the complete rule is shown in similar way as in these guidelines. See SonarQube documentation for more information.","title":"db* CODECOP for SonarQube"},{"location":"7-tool-support/2-db-codecop-sonarqube/#db-codecop-for-sonarqube","text":"","title":"db* CODECOP for SonarQube"},{"location":"7-tool-support/2-db-codecop-sonarqube/#introduction","text":"db* CODECOP for SonarQube is a plugin for SonarQube . The plugin analyses SQL and PL/SQL code and calculates various metrics and checks the code for compliance of this coding guideline. A static code analysis is typically initiated as part of an continuous integration setup, e.g. at the end of a Jenkins or Hudson build job. SonarQube stores the result of the analysis in a relational database. Supported are PostgreSQL, Microsoft SQL Server and Oracle Database. For evaluation purposes, the embedded H2 database can also be used. Since every analysis is stored as a snapshot in the SonarQube repository the improvement or the decrease of the code quality may be monitored very well. Use SonarQube and the db* CODECOP plugin if you care about your PL/SQL code quality.","title":"Introduction"},{"location":"7-tool-support/2-db-codecop-sonarqube/#examples","text":"","title":"Examples"},{"location":"7-tool-support/2-db-codecop-sonarqube/#run-code-analysis-via-sonarscanner","text":"You start an analysis from the command line as follows (see docs for more information): 1 sonar-scanner -Dsonar.projectKey=\"sample\" Here's an excerpt of the output: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 INFO: Scanner configuration file: /usr/local/opt/sonar-scanner/conf/sonar-scanner.properties INFO: Project root configuration file: NONE INFO: SonarQube Scanner 4.1.0.1829 ... INFO: Project configuration: INFO: 115 files indexed INFO: Quality profile for plsql: db* CODECOP INFO: ------------- Run sensors on module sample INFO: JavaScript/TypeScript frontend is enabled INFO: Define db* CODECOP PlugIn (Secondary) INFO: Load metrics repository INFO: Load metrics repository (done) | time=36ms INFO: PlSQL COP Sensor initializing INFO: Instantiate class: com.trivadis.sonar.plugin.TrivadisGuidelines3ValidatorConfig INFO: Sensor CSS Rules [cssfamily] INFO: No CSS, PHP, HTML or VueJS files are found in the project. CSS analysis is skipped. INFO: Sensor CSS Rules [cssfamily] (done) | time=1ms INFO: Sensor PL/SQL Sensor [plsql] INFO: 115 source files to be analyzed INFO: Load project repositories INFO: Load project repositories (done) | time=10ms ... INFO: Analysis report generated in 149ms, dir size=603 KB INFO: Analysis report compressed in 1101ms, zip size=264 KB INFO: Analysis report uploaded in 1858ms INFO: ANALYSIS SUCCESSFUL, you can browse http://localhost:9000/dashboard?id=sample INFO: Note that you will be able to access the updated dashboard once the server has processed the submitted analysis report INFO: More about the report processing at http://localhost:9000/api/ce/task?id=AXiSv3IJVMRTx5sCSVMo INFO: Analysis total time: 27.088 s INFO: ------------------------------------------------------------------------ INFO: EXECUTION SUCCESS INFO: ------------------------------------------------------------------------ INFO: Total time: 28.961s INFO: Final Memory: 40M/144M INFO: ------------------------------------------------------------------------ At the end of the run an URL to the scanner result is provided.","title":"Run Code Analysis via SonarScanner"},{"location":"7-tool-support/2-db-codecop-sonarqube/#run-code-analyis-with-ci-environments","text":"You can call the SonarScanner also from Gradle, .NET projects, Maven, Ant, Jenkins, etc. Whichever method you use, in the end the analysis report will be uploaded to SonarQube. See SonarScanner for more information.","title":"Run Code Analyis with CI Environments"},{"location":"7-tool-support/2-db-codecop-sonarqube/#view-code-analysis-result-in-sonarqube","text":"Here are the results of the previous analysis. Under Issues the following Blocker are shown: By clicking on the reddish box you can drill down to the source code. When clicking on Why is this an issue? the complete rule is shown in similar way as in these guidelines. See SonarQube documentation for more information.","title":"View Code Analysis Result in SonarQube"},{"location":"7-tool-support/3-db-codecop-cli/","text":"db* CODECOP Command Line Introduction Trivadis db* CODECOP is a command line utility to check Oracle SQL*Plus files for compliance violations of this coding guideline. Furthermore McCabe\u2019s cyclomatic complexity, Halstead\u2019s volume, the maintainability index and some other software metrics are calculated for each PL/SQL unit and aggregated on file level. The code checking results are stored in XML, HTML and Excel files for further processing. To get the most out of this command line utility you should make it part of your Continuous Integration environment by using the db* CODECOP for SonarQube plugin. This way you may control the quality of your code base over time. Have also a look at db* CODECOP for SQL Developer if you are interested to check the code quality of PL/SQL code within SQL Developer. It\u2019s a free extension. db* CODECOP supports custom validators. We provide some example validators in this GitHub repository . You may use these validators as is or amend/extend them to suit your needs. Examples Here are some screen shot taken from an of an HTML report based on the samples provided with db* CODECOP. These HTML and Excel reports have been created by db* CODECOP and are based on a simple set of good and bad example files distributed with db* CODECOP.","title":"db* CODECOP Command Line"},{"location":"7-tool-support/3-db-codecop-cli/#db-codecop-command-line","text":"","title":"db* CODECOP Command Line"},{"location":"7-tool-support/3-db-codecop-cli/#introduction","text":"Trivadis db* CODECOP is a command line utility to check Oracle SQL*Plus files for compliance violations of this coding guideline. Furthermore McCabe\u2019s cyclomatic complexity, Halstead\u2019s volume, the maintainability index and some other software metrics are calculated for each PL/SQL unit and aggregated on file level. The code checking results are stored in XML, HTML and Excel files for further processing. To get the most out of this command line utility you should make it part of your Continuous Integration environment by using the db* CODECOP for SonarQube plugin. This way you may control the quality of your code base over time. Have also a look at db* CODECOP for SQL Developer if you are interested to check the code quality of PL/SQL code within SQL Developer. It\u2019s a free extension. db* CODECOP supports custom validators. We provide some example validators in this GitHub repository . You may use these validators as is or amend/extend them to suit your needs.","title":"Introduction"},{"location":"7-tool-support/3-db-codecop-cli/#examples","text":"Here are some screen shot taken from an of an HTML report based on the samples provided with db* CODECOP. These HTML and Excel reports have been created by db* CODECOP and are based on a simple set of good and bad example files distributed with db* CODECOP.","title":"Examples"},{"location":"7-tool-support/4-db-codecop-validators/","text":"db* CODECOP Validators db* CODECOP supports custom validators. A validator must implement the PLSQLCopValidator Java interface and has to be a direct or indirect descendant of the PLSQLValidator class. Such a class can be used in the command line utility and the SQL Developer extension. For SonarQube a ValidationConfig is required. A config defines the validator with its rules and quality profile for SonarQube. See GLPValidatorConfig . The referenced XML files are generated based on the validator and the optional sample guidelines . You may use these validators as is or amend/extend them to suit your needs. Provided Validators The db* CODECOP Validators project provides the following custom validators in the package com.trivadis.tvdcc.validators : Class Description TrivadisPlsqlNaming Checks Naming Conventions of the Trivadis PL/SQL & SQL Coding Guidelines GLP Checks naming of global and local variables and parameters SQLInjection Looks for SQL injection vulnerabilities, e.g. unasserted parameters in dynamic SQL Hint Looks for unknown hints and invalid table references OverrideTrivadisGuidelines Extends TrivadisGuidelines3 and overrides check for G-1050 . TrivadisGuidelines3Plus Combines the validators TrivadisPlsqlNaming, SQLInjection and OverrideTrivadisGuidelines.","title":"db* CODECOP Validators"},{"location":"7-tool-support/4-db-codecop-validators/#db-codecop-validators","text":"db* CODECOP supports custom validators. A validator must implement the PLSQLCopValidator Java interface and has to be a direct or indirect descendant of the PLSQLValidator class. Such a class can be used in the command line utility and the SQL Developer extension. For SonarQube a ValidationConfig is required. A config defines the validator with its rules and quality profile for SonarQube. See GLPValidatorConfig . The referenced XML files are generated based on the validator and the optional sample guidelines . You may use these validators as is or amend/extend them to suit your needs.","title":"db* CODECOP Validators"},{"location":"7-tool-support/4-db-codecop-validators/#provided-validators","text":"The db* CODECOP Validators project provides the following custom validators in the package com.trivadis.tvdcc.validators : Class Description TrivadisPlsqlNaming Checks Naming Conventions of the Trivadis PL/SQL & SQL Coding Guidelines GLP Checks naming of global and local variables and parameters SQLInjection Looks for SQL injection vulnerabilities, e.g. unasserted parameters in dynamic SQL Hint Looks for unknown hints and invalid table references OverrideTrivadisGuidelines Extends TrivadisGuidelines3 and overrides check for G-1050 . TrivadisGuidelines3Plus Combines the validators TrivadisPlsqlNaming, SQLInjection and OverrideTrivadisGuidelines.","title":"Provided Validators"},{"location":"7-tool-support/5-plscope-utils/","text":"plscope-utils Introduction plscope-utils is based on PL/Scope which is available in the Oracle Database since version 11.1. It consists of the following two components: Core Database Objects Provides relational views and PL/SQL packages to simplify common source code analysis tasks. Requires a server side installation. SQL Developer Extension (plscope-utils for SQL Developer) Extends SQL Developer by a PL/Scope node in the database navigator tree, context menus, views shown for tables, views and PL/SQL nodes and some reports. Requires a client side installation only. Part of plscope-utils is a check of naming conventions according to this coding guideline - either as a database view or a Oracle SQL Developer report.","title":"plscope-utils"},{"location":"7-tool-support/5-plscope-utils/#plscope-utils","text":"","title":"plscope-utils"},{"location":"7-tool-support/5-plscope-utils/#introduction","text":"plscope-utils is based on PL/Scope which is available in the Oracle Database since version 11.1. It consists of the following two components: Core Database Objects Provides relational views and PL/SQL packages to simplify common source code analysis tasks. Requires a server side installation. SQL Developer Extension (plscope-utils for SQL Developer) Extends SQL Developer by a PL/Scope node in the database navigator tree, context menus, views shown for tables, views and PL/SQL nodes and some reports. Requires a client side installation only. Part of plscope-utils is a check of naming conventions according to this coding guideline - either as a database view or a Oracle SQL Developer report.","title":"Introduction"},{"location":"7-tool-support/6-formatter-settings/","text":"PL/SQL & SQL Formatter Settings Introduction This GitHub repository provides formatter settings that follow the Coding Style of these guidelines. Extensive settings using Arbori are provided for Oracle SQLcl Oracle SQL Developer Simple configuration files are also available for Allround Automations PL/SQL Developer JetBrains DataGrip Quest Toad for Oracle There is also a standalone formatter that can be used in a Git pre-commit Hook to automate the formatting process. By the way, the code blocks in these guidelines were formatted using this standalone formatter.","title":"PL/SQL & SQL Formatter Settings"},{"location":"7-tool-support/6-formatter-settings/#plsql-sql-formatter-settings","text":"","title":"PL/SQL & SQL Formatter Settings"},{"location":"7-tool-support/6-formatter-settings/#introduction","text":"This GitHub repository provides formatter settings that follow the Coding Style of these guidelines. Extensive settings using Arbori are provided for Oracle SQLcl Oracle SQL Developer Simple configuration files are also available for Allround Automations PL/SQL Developer JetBrains DataGrip Quest Toad for Oracle There is also a standalone formatter that can be used in a Git pre-commit Hook to automate the formatting process. By the way, the code blocks in these guidelines were formatted using this standalone formatter.","title":"Introduction"},{"location":"9-appendix/appendix/","text":"Appendix A - PL/SQL & SQL Coding Guidelines as PDF These guidelines are primarily produced in HTML using Material for MkDocs . However, we provide these guidelines also as PDF produced by wkhtmltopdf . The formatting is not perfect, but it should be adequate for those who want to work with offline documents. B - Mapping new guidelines to prior versions Old Id New Id Text Severity Change- ability Effi- ciency Maintain- ability Port- ability Reli- ability Reus- ability Secu- rity Test- ability 1 1010 Try to label your sub blocks. Minor \u2718 2 1020 Always have a matching loop or block label. Minor \u2718 3 1030 Avoid defining variables that are not used. Major \u2718 \u2718 4 1040 Avoid dead code. Major \u2718 5 1050 Avoid using literals in your code. Minor \u2718 6 1060 Avoid storing ROWIDs or UROWIDs in database tables. Blocker \u2718 7 1070 Avoid nesting comment blocks. Minor \u2718 n/a 1080 Avoid using the same expression on both sides of a relational comparison operator or a logical operator. Blocker \u2718 \u2718 \u2718 8 2110 Try to use anchored declarations for variables, constants and types. Major \u2718 \u2718 9 2120 Try to have a single location to define your types. Minor \u2718 10 2130 Try to use subtypes for constructs used often in your code. Minor \u2718 n/a 2135 Avoid assigning values to local variables that are not used by a subsequent statement. Major \u2718 \u2718 \u2718 11 2140 Never initialize variables with NULL. Minor \u2718 n/a 2145 Never self-assign a variable. Blocker \u2718 12 2150 Avoid comparisons with NULL value, consider using IS [NOT] NULL. Blocker \u2718 \u2718 13 2160 Avoid initializing variables using functions in the declaration section. Critical \u2718 14 2170 Never overload variables. Major \u2718 15 2180 Never use quoted identifiers. Major \u2718 16 2185 Avoid using overly short names for explicitly or implicitly declared identifiers. Major \u2718 17 2190 Avoid using ROWID or UROWID. Blocker \u2718 \u2718 18 2210 Avoid declaring NUMBER variables, constants or subtypes with no precision. Critical \u2718 19 2220 Try to use PLS_INTEGER instead of NUMBER for arithmetic operations with integer values. Critical \u2718 n/a 2230 Try to use SIMPLE_INTEGER datatype when appropriate. Critical \u2718 20 2310 Avoid using CHAR data type. Blocker \u2718 21 2320 Never use VARCHAR data type. Blocker \u2718 \u2718 22 2330 Never use zero-length strings to substitute NULL. Blocker \u2718 \u2718 23 2340 Always define your VARCHAR2 variables using CHAR SEMANTIC (if not defined anchored). Blocker \u2718 24 2410 Try to use boolean data type for values with dual meaning. Minor \u2718 25 2510 Avoid using the LONG and LONG RAW data types. Major \u2718 n/a 2610 Never use self-defined weak ref cursor types. Minor \u2718 \u2718 \u2718 \u2718 26 3110 Always specify the target columns when coding an insert statement. Blocker \u2718 \u2718 n/a 3115 Avoid self-assigning a column. Blocker \u2718 27 3120 Always use table aliases when your SQL statement involves more than one source. Blocker \u2718 28 3130 Try to use ANSI SQL-92 join syntax. Major \u2718 \u2718 29 3140 Try to use anchored records as targets for your cursors. Major \u2718 \u2718 n/a 3145 Avoid using SELECT * directly from a table or view. Blocker \u2718 \u2718 \u2718 \u2718 n/a 3150 Try to use identity columns for surrogate keys. Critical \u2718 \u2718 n/a 3160 Avoid visible virtual columns. Blocker \u2718 \u2718 n/a 3170 Always use DEFAULT ON NULL declarations to assign default values to table columns if you refuse to store NULL values. Blocker \u2718 n/a 3180 Always specify column names instead of positional references in ORDER BY clauses. Major \u2718 \u2718 n/a 3182 Always specify column names/aliases instead of positional references in GROUP BY clauses. Blocker \u2718 n/a 3183 Always specify column aliases instead of expressions in GROUP BY clauses. Minor \u2718 n/a 3185 Never use ROWNUM at the same query level as ORDER BY. Blocker \u2718 \u2718 n/a 3190 Avoid using NATURAL JOIN. Blocker \u2718 \u2718 n/a 3195 Always use wildcards in a LIKE clause. Blocker \u2718 30 3210 Always use BULK OPERATIONS (BULK COLLECT, FORALL) whenever you have to execute a DML statement for more than 4 times. Critical \u2718 n/a 3220 Always process saved exceptions from a FORALL statement. Critical \u2718 \u2718 n/a 3310 Never commit within a cursor loop. Blocker \u2718 \u2718 n/a 3320 Try to move transactions within a non-cursor loop into procedures. Major \u2718 \u2718 \u2718 n/a 3330 Avoid autonomous transactions. Blocker \u2718 \u2718 31 4110 Always use %NOTFOUND instead of NOT %FOUND to check whether a cursor returned data. Minor \u2718 32 4120 Avoid using %NOTFOUND directly after the FETCH when working with BULK OPERATIONS and LIMIT clause. Blocker \u2718 33 4130 Always close locally opened cursors. Blocker \u2718 \u2718 34 4140 Avoid executing any statements between a SQL operation and the usage of an implicit cursor attribute. Blocker \u2718 35 4210 Try to use CASE rather than an IF statement with multiple ELSIF paths. Minor \u2718 \u2718 36 4220 Try to use CASE rather than DECODE. Major \u2718 \u2718 37 4230 Always use a COALESCE instead of a NVL command, if parameter 2 of the NVL function is a function call or a SELECT statement. Critical \u2718 \u2718 38 4240 Always use a CASE instead of a NVL2 command if parameter 2 or 3 of NVL2 is either a function call or a SELECT statement. Critical \u2718 \u2718 n/a 4250 Avoid using identical conditions in different branches of the same IF or CASE statement. Blocker \u2718 \u2718 \u2718 n/a 4260 Avoid inverting boolean conditions with NOT. Minor \u2718 \u2718 n/a 4270 Avoid comparing boolean values to boolean literals. Minor \u2718 \u2718 39 4310 Never use GOTO statements in your code. Major \u2718 \u2718 40 4320 Always label your loops. Minor \u2718 n/a 4325 Never reuse labels in inner scopes. Major \u2718 \u2718 \u2718 41 4330 Always use a CURSOR FOR loop to process the complete cursor results unless you are using bulk operations. Major \u2718 42 4340 Always use a NUMERIC FOR loop to process a dense array. Major \u2718 43 4350 Always use 1 as lower and COUNT() as upper bound when looping through a dense array. Blocker \u2718 44 4360 Always use a WHILE loop to process a loose array. Critical \u2718 n/a 4365 Never use unconditional CONTINUE or EXIT in a loop. Major \u2718 \u2718 45 4370 Avoid using EXIT to stop loop processing unless you are in a basic loop. Major \u2718 46 4375 Always use EXIT WHEN instead of an IF statement to exit from a loop. Minor \u2718 47 4380 Try to label your EXIT WHEN statements. Minor \u2718 48 4385 Never use a cursor for loop to check whether a cursor returns data. Critical \u2718 n/a 4387 !!!CHARACTERISTIC ERROR!!! Blocker \u2718 \u2718 49 4390 Avoid use of unreferenced FOR loop indexes. Major \u2718 50 4395 Avoid hard-coded upper or lower bound values with FOR loops. Minor \u2718 \u2718 n/a 5010 Try to use a error/logging framework for your application. Critical \u2718 \u2718 \u2718 51 5020 Never handle unnamed exceptions using the error number. Critical \u2718 52 5030 Never assign predefined exception names to user defined exceptions. Blocker \u2718 \u2718 53 5040 Avoid use of WHEN OTHERS clause in an exception section without any other specific handlers. Critical \u2718 54 n/a Avoid use of EXCEPTION_INIT pragma for a 20nnn error. Major \u2718 55 5050 Avoid use of the RAISE_APPLICATION_ERROR built-in procedure with a hard-coded 20nnn error number or hard-coded message. Major \u2718 \u2718 56 5060 Avoid unhandled exceptions. Major \u2718 57 5070 Avoid using Oracle predefined exceptions. Blocker \u2718 n/a 5080 Always use FORMAT_ERROR_BACKTRACE when using FORMAT_ERROR_STACK or SQLERRM. Critical \u2718 \u2718 58 6010 Always use a character variable to execute dynamic SQL. Major \u2718 \u2718 59 6020 Try to use output bind arguments in the RETURNING INTO clause of dynamic DML statements rather than the USING clause. Minor \u2718 60 7110 Try to use named notation when calling program units. Major \u2718 \u2718 61 7120 Always add the name of the program unit to its end keyword. Minor \u2718 n/a 7125 Always use CREATE OR REPLACE instead of CREATE alone. Major \u2718 62 7130 Always use parameters or pull in definitions rather than referencing external variables in a local program unit. Major \u2718 \u2718 \u2718 63 7140 Always ensure that locally defined procedures or functions are referenced. Major \u2718 \u2718 64 7150 Try to remove unused parameters. Major \u2718 \u2718 68 7160 Always explicitly state parameter mode. Major \u2718 n/a 7170 Avoid using an IN OUT parameter as IN or OUT only. Major \u2718 \u2718 65 7210 Try to keep your packages small. Include only few procedures and functions that are used in the same context. Major \u2718 \u2718 66 7220 Always use forward declaration for private functions and procedures. Minor \u2718 67 7230 Avoid declaring global variables public. Major \u2718 n/a 7250 Never use RETURN in package initialization block. Major \u2718 69 7310 Avoid standalone procedures \u2013 put your procedures in packages. Minor \u2718 70 7320 Avoid using RETURN statements in a PROCEDURE. Major \u2718 \u2718 n/a 7330 Always assign values to OUT parameters. Blocker \u2718 \u2718 71 7410 Avoid standalone functions \u2013 put your functions in packages. Minor \u2718 73 7420 Always make the RETURN statement the last statement of your function. Major \u2718 72 7430 Try to use no more than one RETURN statement within a function. Major \u2718 \u2718 74 7440 Never use OUT parameters to return values from a function. Major \u2718 75 7450 Never return a NULL value from a BOOLEAN function. Blocker \u2718 \u2718 n/a 7460 Try to define your packaged/standalone function deterministic if appropriate. Major \u2718 76 7510 Always prefix Oracle supplied packages with owner schema name. Major \u2718 77 7710 Avoid cascading triggers. Major \u2718 \u2718 n/a 7720 Never use multiple UPDATE OF in trigger event clause. Blocker \u2718 \u2718 \u2718 n/a 7730 Avoid multiple DML events per trigger. Minor \u2718 \u2718 n/a 7740 Never handle multiple DML events per trigger if primary key is assigned in trigger. Critical \u2718 \u2718 n/a 7810 Never use SQL inside PL/SQL to read sequence numbers (or SYSDATE). Critical \u2718 \u2718 n/a 7910 Never use DML within a SQL macro. Blocker \u2718 \u2718 78 8110 Never use SELECT COUNT(*) if you are only interested in the existence of a row. Critical \u2718 n/a 8120 Never check existence of a row to decide whether to create it or not. Critical \u2718 \u2718 79 8210 Always use synonyms when accessing objects of another application schema. Minor \u2718 \u2718 n/a 8310 Always validate input parameter size by assigning the parameter to a size limited variable in the declaration section of program unit. Major \u2718 \u2718 \u2718 \u2718 n/a 8410 Always use application locks to ensure a program unit is only running once at a given time. Blocker \u2718 \u2718 n/a 8510 Always use dbms_application_info to track program process transiently. Critical \u2718 \u2718 n/a 9010 Always use a format model in string to date/time conversion functions. Blocker \u2718 \u2718 \u2718 \u2718 \u2718 n/a 9020 Try to use a format model and NLS_NUMERIC_CHARACTERS in string to number conversion functions. Blocker \u2718 \u2718 \u2718 \u2718 \u2718 n/a 9030 Try to define a default value on conversion errors. Major \u2718 \u2718 \u2718 n/a 9040 Try using FX in string to date/time conversion format model to avoid fuzzy conversion. Blocker \u2718 \u2718","title":"Appendix"},{"location":"9-appendix/appendix/#appendix","text":"","title":"Appendix"},{"location":"9-appendix/appendix/#a-plsql-sql-coding-guidelines-as-pdf","text":"These guidelines are primarily produced in HTML using Material for MkDocs . However, we provide these guidelines also as PDF produced by wkhtmltopdf . The formatting is not perfect, but it should be adequate for those who want to work with offline documents.","title":"A - PL/SQL & SQL Coding Guidelines as PDF"},{"location":"9-appendix/appendix/#b-mapping-new-guidelines-to-prior-versions","text":"Old Id New Id Text Severity Change- ability Effi- ciency Maintain- ability Port- ability Reli- ability Reus- ability Secu- rity Test- ability 1 1010 Try to label your sub blocks. Minor \u2718 2 1020 Always have a matching loop or block label. Minor \u2718 3 1030 Avoid defining variables that are not used. Major \u2718 \u2718 4 1040 Avoid dead code. Major \u2718 5 1050 Avoid using literals in your code. Minor \u2718 6 1060 Avoid storing ROWIDs or UROWIDs in database tables. Blocker \u2718 7 1070 Avoid nesting comment blocks. Minor \u2718 n/a 1080 Avoid using the same expression on both sides of a relational comparison operator or a logical operator. Blocker \u2718 \u2718 \u2718 8 2110 Try to use anchored declarations for variables, constants and types. Major \u2718 \u2718 9 2120 Try to have a single location to define your types. Minor \u2718 10 2130 Try to use subtypes for constructs used often in your code. Minor \u2718 n/a 2135 Avoid assigning values to local variables that are not used by a subsequent statement. Major \u2718 \u2718 \u2718 11 2140 Never initialize variables with NULL. Minor \u2718 n/a 2145 Never self-assign a variable. Blocker \u2718 12 2150 Avoid comparisons with NULL value, consider using IS [NOT] NULL. Blocker \u2718 \u2718 13 2160 Avoid initializing variables using functions in the declaration section. Critical \u2718 14 2170 Never overload variables. Major \u2718 15 2180 Never use quoted identifiers. Major \u2718 16 2185 Avoid using overly short names for explicitly or implicitly declared identifiers. Major \u2718 17 2190 Avoid using ROWID or UROWID. Blocker \u2718 \u2718 18 2210 Avoid declaring NUMBER variables, constants or subtypes with no precision. Critical \u2718 19 2220 Try to use PLS_INTEGER instead of NUMBER for arithmetic operations with integer values. Critical \u2718 n/a 2230 Try to use SIMPLE_INTEGER datatype when appropriate. Critical \u2718 20 2310 Avoid using CHAR data type. Blocker \u2718 21 2320 Never use VARCHAR data type. Blocker \u2718 \u2718 22 2330 Never use zero-length strings to substitute NULL. Blocker \u2718 \u2718 23 2340 Always define your VARCHAR2 variables using CHAR SEMANTIC (if not defined anchored). Blocker \u2718 24 2410 Try to use boolean data type for values with dual meaning. Minor \u2718 25 2510 Avoid using the LONG and LONG RAW data types. Major \u2718 n/a 2610 Never use self-defined weak ref cursor types. Minor \u2718 \u2718 \u2718 \u2718 26 3110 Always specify the target columns when coding an insert statement. Blocker \u2718 \u2718 n/a 3115 Avoid self-assigning a column. Blocker \u2718 27 3120 Always use table aliases when your SQL statement involves more than one source. Blocker \u2718 28 3130 Try to use ANSI SQL-92 join syntax. Major \u2718 \u2718 29 3140 Try to use anchored records as targets for your cursors. Major \u2718 \u2718 n/a 3145 Avoid using SELECT * directly from a table or view. Blocker \u2718 \u2718 \u2718 \u2718 n/a 3150 Try to use identity columns for surrogate keys. Critical \u2718 \u2718 n/a 3160 Avoid visible virtual columns. Blocker \u2718 \u2718 n/a 3170 Always use DEFAULT ON NULL declarations to assign default values to table columns if you refuse to store NULL values. Blocker \u2718 n/a 3180 Always specify column names instead of positional references in ORDER BY clauses. Major \u2718 \u2718 n/a 3182 Always specify column names/aliases instead of positional references in GROUP BY clauses. Blocker \u2718 n/a 3183 Always specify column aliases instead of expressions in GROUP BY clauses. Minor \u2718 n/a 3185 Never use ROWNUM at the same query level as ORDER BY. Blocker \u2718 \u2718 n/a 3190 Avoid using NATURAL JOIN. Blocker \u2718 \u2718 n/a 3195 Always use wildcards in a LIKE clause. Blocker \u2718 30 3210 Always use BULK OPERATIONS (BULK COLLECT, FORALL) whenever you have to execute a DML statement for more than 4 times. Critical \u2718 n/a 3220 Always process saved exceptions from a FORALL statement. Critical \u2718 \u2718 n/a 3310 Never commit within a cursor loop. Blocker \u2718 \u2718 n/a 3320 Try to move transactions within a non-cursor loop into procedures. Major \u2718 \u2718 \u2718 n/a 3330 Avoid autonomous transactions. Blocker \u2718 \u2718 31 4110 Always use %NOTFOUND instead of NOT %FOUND to check whether a cursor returned data. Minor \u2718 32 4120 Avoid using %NOTFOUND directly after the FETCH when working with BULK OPERATIONS and LIMIT clause. Blocker \u2718 33 4130 Always close locally opened cursors. Blocker \u2718 \u2718 34 4140 Avoid executing any statements between a SQL operation and the usage of an implicit cursor attribute. Blocker \u2718 35 4210 Try to use CASE rather than an IF statement with multiple ELSIF paths. Minor \u2718 \u2718 36 4220 Try to use CASE rather than DECODE. Major \u2718 \u2718 37 4230 Always use a COALESCE instead of a NVL command, if parameter 2 of the NVL function is a function call or a SELECT statement. Critical \u2718 \u2718 38 4240 Always use a CASE instead of a NVL2 command if parameter 2 or 3 of NVL2 is either a function call or a SELECT statement. Critical \u2718 \u2718 n/a 4250 Avoid using identical conditions in different branches of the same IF or CASE statement. Blocker \u2718 \u2718 \u2718 n/a 4260 Avoid inverting boolean conditions with NOT. Minor \u2718 \u2718 n/a 4270 Avoid comparing boolean values to boolean literals. Minor \u2718 \u2718 39 4310 Never use GOTO statements in your code. Major \u2718 \u2718 40 4320 Always label your loops. Minor \u2718 n/a 4325 Never reuse labels in inner scopes. Major \u2718 \u2718 \u2718 41 4330 Always use a CURSOR FOR loop to process the complete cursor results unless you are using bulk operations. Major \u2718 42 4340 Always use a NUMERIC FOR loop to process a dense array. Major \u2718 43 4350 Always use 1 as lower and COUNT() as upper bound when looping through a dense array. Blocker \u2718 44 4360 Always use a WHILE loop to process a loose array. Critical \u2718 n/a 4365 Never use unconditional CONTINUE or EXIT in a loop. Major \u2718 \u2718 45 4370 Avoid using EXIT to stop loop processing unless you are in a basic loop. Major \u2718 46 4375 Always use EXIT WHEN instead of an IF statement to exit from a loop. Minor \u2718 47 4380 Try to label your EXIT WHEN statements. Minor \u2718 48 4385 Never use a cursor for loop to check whether a cursor returns data. Critical \u2718 n/a 4387 !!!CHARACTERISTIC ERROR!!! Blocker \u2718 \u2718 49 4390 Avoid use of unreferenced FOR loop indexes. Major \u2718 50 4395 Avoid hard-coded upper or lower bound values with FOR loops. Minor \u2718 \u2718 n/a 5010 Try to use a error/logging framework for your application. Critical \u2718 \u2718 \u2718 51 5020 Never handle unnamed exceptions using the error number. Critical \u2718 52 5030 Never assign predefined exception names to user defined exceptions. Blocker \u2718 \u2718 53 5040 Avoid use of WHEN OTHERS clause in an exception section without any other specific handlers. Critical \u2718 54 n/a Avoid use of EXCEPTION_INIT pragma for a 20nnn error. Major \u2718 55 5050 Avoid use of the RAISE_APPLICATION_ERROR built-in procedure with a hard-coded 20nnn error number or hard-coded message. Major \u2718 \u2718 56 5060 Avoid unhandled exceptions. Major \u2718 57 5070 Avoid using Oracle predefined exceptions. Blocker \u2718 n/a 5080 Always use FORMAT_ERROR_BACKTRACE when using FORMAT_ERROR_STACK or SQLERRM. Critical \u2718 \u2718 58 6010 Always use a character variable to execute dynamic SQL. Major \u2718 \u2718 59 6020 Try to use output bind arguments in the RETURNING INTO clause of dynamic DML statements rather than the USING clause. Minor \u2718 60 7110 Try to use named notation when calling program units. Major \u2718 \u2718 61 7120 Always add the name of the program unit to its end keyword. Minor \u2718 n/a 7125 Always use CREATE OR REPLACE instead of CREATE alone. Major \u2718 62 7130 Always use parameters or pull in definitions rather than referencing external variables in a local program unit. Major \u2718 \u2718 \u2718 63 7140 Always ensure that locally defined procedures or functions are referenced. Major \u2718 \u2718 64 7150 Try to remove unused parameters. Major \u2718 \u2718 68 7160 Always explicitly state parameter mode. Major \u2718 n/a 7170 Avoid using an IN OUT parameter as IN or OUT only. Major \u2718 \u2718 65 7210 Try to keep your packages small. Include only few procedures and functions that are used in the same context. Major \u2718 \u2718 66 7220 Always use forward declaration for private functions and procedures. Minor \u2718 67 7230 Avoid declaring global variables public. Major \u2718 n/a 7250 Never use RETURN in package initialization block. Major \u2718 69 7310 Avoid standalone procedures \u2013 put your procedures in packages. Minor \u2718 70 7320 Avoid using RETURN statements in a PROCEDURE. Major \u2718 \u2718 n/a 7330 Always assign values to OUT parameters. Blocker \u2718 \u2718 71 7410 Avoid standalone functions \u2013 put your functions in packages. Minor \u2718 73 7420 Always make the RETURN statement the last statement of your function. Major \u2718 72 7430 Try to use no more than one RETURN statement within a function. Major \u2718 \u2718 74 7440 Never use OUT parameters to return values from a function. Major \u2718 75 7450 Never return a NULL value from a BOOLEAN function. Blocker \u2718 \u2718 n/a 7460 Try to define your packaged/standalone function deterministic if appropriate. Major \u2718 76 7510 Always prefix Oracle supplied packages with owner schema name. Major \u2718 77 7710 Avoid cascading triggers. Major \u2718 \u2718 n/a 7720 Never use multiple UPDATE OF in trigger event clause. Blocker \u2718 \u2718 \u2718 n/a 7730 Avoid multiple DML events per trigger. Minor \u2718 \u2718 n/a 7740 Never handle multiple DML events per trigger if primary key is assigned in trigger. Critical \u2718 \u2718 n/a 7810 Never use SQL inside PL/SQL to read sequence numbers (or SYSDATE). Critical \u2718 \u2718 n/a 7910 Never use DML within a SQL macro. Blocker \u2718 \u2718 78 8110 Never use SELECT COUNT(*) if you are only interested in the existence of a row. Critical \u2718 n/a 8120 Never check existence of a row to decide whether to create it or not. Critical \u2718 \u2718 79 8210 Always use synonyms when accessing objects of another application schema. Minor \u2718 \u2718 n/a 8310 Always validate input parameter size by assigning the parameter to a size limited variable in the declaration section of program unit. Major \u2718 \u2718 \u2718 \u2718 n/a 8410 Always use application locks to ensure a program unit is only running once at a given time. Blocker \u2718 \u2718 n/a 8510 Always use dbms_application_info to track program process transiently. Critical \u2718 \u2718 n/a 9010 Always use a format model in string to date/time conversion functions. Blocker \u2718 \u2718 \u2718 \u2718 \u2718 n/a 9020 Try to use a format model and NLS_NUMERIC_CHARACTERS in string to number conversion functions. Blocker \u2718 \u2718 \u2718 \u2718 \u2718 n/a 9030 Try to define a default value on conversion errors. Major \u2718 \u2718 \u2718 n/a 9040 Try using FX in string to date/time conversion format model to avoid fuzzy conversion. Blocker \u2718 \u2718","title":"B - Mapping new guidelines to prior versions"}]} \ No newline at end of file +{"config":{"indexing":"full","lang":["en"],"min_search_length":3,"prebuild_index":false,"separator":"[\\s\\-]+"},"docs":[{"location":"","text":"About Foreword In the I.T. world of today, robust and secure applications are becoming more and more important. Many business processes no longer work without I.T. and the dependence of businesses on their I.T. has grown tremendously, meaning we need robust and maintainable applications. An important requirement is to have standards and guidelines, which make it possible to maintain source code created by a number of people quickly and easily. This forms the basis of well functioning off- or on-shoring strategy, as it allows quality assurance to be carried out efficiently at the source. Good standards and guidelines are based on the wealth of experience and knowledge gained from past (and future?) problems, such as those, which can arise in a cloud environment, for example. Urban Lankes Chairman biGENIUS AG The Oracle Database Developer community is made stronger by resources freely shared by experts around the world, such as the Trivadis Coding Guidelines. If you have not yet adopted standards for writing SQL and PL/SQL in your applications, this is a great place to start. Steven Feuerstein Senior Advisor Insum Solutions Coding Guidelines are a crucial part of software development. It is a matter of fact, that code is more often read than written \u2013 therefore we should take efforts to ease the work of the reader, which is not necessarily the author. I am convinced that this standard may be a good starting point for your own guidelines. Roger Troller Senior Consultant finnova AG Bankware License The Trivadis PL/SQL & SQL Coding Guidelines are licensed under the Apache License, Version 2.0. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 . Trademarks All terms that are known trademarks or service marks have been capitalized. All trademarks are the property of their respective owners. Disclaimer The authors and publisher shall have neither liability nor responsibility to any person or entity with respect to the loss or damages arising from the information contained in this work. This work may include inaccuracies or typographical errors and solely represent the opinions of the authors. Changes are periodically made to this document without notice. The authors reserve the right to revise this document at any time without notice. Revision History The first version of these guidelines was compiled by Roger Troller on March 17, 2009. J\u00f6rn Kulessa, Daniela Reiner, Richard Bushnell, Andreas Flubacher and Thomas Mauch helped Roger complete version 1.2 until August 21, 2009. This was the first GA version. The handy printed version in A5 format was distributed free of charge at the DOAG Annual Conference and on other occasions. Since then Roger updated the guidelines regularily. Philipp Salvisberg was involved in the review process for version 3.0 which was a major update. Philipp took the lead, after Roger left Trivadis in 2016. In 2020 Kim Berg Hansen started handling guidelines maintenance, letting Philipp concentrate on the related Trivadis db* CODECOP tool suite. After Kim left in September 2022, Philipp took over again until August 2024. Since July, 7 2018 these guidelines are hosted on GitHub. Ready to be enhanced by the community and forked to fit specific needs. On https://github.com/Trivadis/plsql-and-sql-coding-guidelines/releases you find the release information for every version since 1.2.","title":"About"},{"location":"#about","text":"","title":"About"},{"location":"#foreword","text":"In the I.T. world of today, robust and secure applications are becoming more and more important. Many business processes no longer work without I.T. and the dependence of businesses on their I.T. has grown tremendously, meaning we need robust and maintainable applications. An important requirement is to have standards and guidelines, which make it possible to maintain source code created by a number of people quickly and easily. This forms the basis of well functioning off- or on-shoring strategy, as it allows quality assurance to be carried out efficiently at the source. Good standards and guidelines are based on the wealth of experience and knowledge gained from past (and future?) problems, such as those, which can arise in a cloud environment, for example. Urban Lankes Chairman biGENIUS AG The Oracle Database Developer community is made stronger by resources freely shared by experts around the world, such as the Trivadis Coding Guidelines. If you have not yet adopted standards for writing SQL and PL/SQL in your applications, this is a great place to start. Steven Feuerstein Senior Advisor Insum Solutions Coding Guidelines are a crucial part of software development. It is a matter of fact, that code is more often read than written \u2013 therefore we should take efforts to ease the work of the reader, which is not necessarily the author. I am convinced that this standard may be a good starting point for your own guidelines. Roger Troller Senior Consultant finnova AG Bankware","title":"Foreword"},{"location":"#license","text":"The Trivadis PL/SQL & SQL Coding Guidelines are licensed under the Apache License, Version 2.0. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 .","title":"License"},{"location":"#trademarks","text":"All terms that are known trademarks or service marks have been capitalized. All trademarks are the property of their respective owners.","title":"Trademarks"},{"location":"#disclaimer","text":"The authors and publisher shall have neither liability nor responsibility to any person or entity with respect to the loss or damages arising from the information contained in this work. This work may include inaccuracies or typographical errors and solely represent the opinions of the authors. Changes are periodically made to this document without notice. The authors reserve the right to revise this document at any time without notice.","title":"Disclaimer"},{"location":"#revision-history","text":"The first version of these guidelines was compiled by Roger Troller on March 17, 2009. J\u00f6rn Kulessa, Daniela Reiner, Richard Bushnell, Andreas Flubacher and Thomas Mauch helped Roger complete version 1.2 until August 21, 2009. This was the first GA version. The handy printed version in A5 format was distributed free of charge at the DOAG Annual Conference and on other occasions. Since then Roger updated the guidelines regularily. Philipp Salvisberg was involved in the review process for version 3.0 which was a major update. Philipp took the lead, after Roger left Trivadis in 2016. In 2020 Kim Berg Hansen started handling guidelines maintenance, letting Philipp concentrate on the related Trivadis db* CODECOP tool suite. After Kim left in September 2022, Philipp took over again until August 2024. Since July, 7 2018 these guidelines are hosted on GitHub. Ready to be enhanced by the community and forked to fit specific needs. On https://github.com/Trivadis/plsql-and-sql-coding-guidelines/releases you find the release information for every version since 1.2.","title":"Revision History"},{"location":"1-introduction/introduction/","text":"Introduction This document describes rules and recommendations for developing applications using the PL/SQL & SQL Language. Scope This document applies to the PL/SQL and SQL language as used within Oracle Databases and tools, which access Oracle Databases version 11g Release 2 or later. Document Conventions SQALE (Software Quality Assessment based on Lifecycle Expectations) is a method to support the evaluation of a software application source code. It is a generic method, independent of the language and source code analysis tools. SQALE characteristics and subcharacteristics Characteristic Description and Subcharacteristics Changeability The capability of the software product to enable a specified modification to be implemented. Architecture related changeability Logic related changeability Data related changeability Efficiency The capability of the software product to provide appropriate performance, relative to the amount of resources used, under stated conditions. Memory use Processor use Network use Maintainability The capability of the software product to be modified. Modifications may include corrections, improvements or adaptation of the software to changes in environment, and in requirements and functional specifications. Understandability Readability Portability The capability of the software product to be transferred from one environment to another. Compiler related portability Hardware related portability Language related portability OS related portability Software related portability Time zone related portability. Reliability The capability of the software product to maintain a specified level of performance when used under specified conditions. Architecture related reliability Data related reliability Exception handling Fault tolerance Instruction related reliability Logic related reliability Resource related reliability Synchronization related reliability Unit tests coverage. Reusability The capability of the software product to be reused within the development process. Modularity Transportability. Security The capability of the software product to protect information and data so that unauthorized persons or systems cannot read or modify them and authorized persons or systems are not denied access to them. API abuse Errors (e.g. leaving a system in a vulnerable state) Input validatation and representation Security features. Testability The capability of the software product to enable modified software to be validated. Integration level testability Unit level testability. Severity of the rule Blocker Will or may result in a bug; for example, an incorrect result or a runtime exception. Critical Will have a high/direct impact on the maintenance cost. May have an impact on runtime behavior; for example, incomplete audit data or slower runtime performance. Major Will have a medium/potential impact on the maintenance cost. May have an impact on runtime behavior; for example, higher memory consumption. Minor Will have a low impact on the maintenance cost. No impact on the runtime behavior. Info Very low impact; it is just a remediation cost report. No impact on runtime behavior. For example, a NOSONAR marker comment. Keywords used Keyword Meaning Always Emphasizes this rule must be enforced. Never Emphasizes this action must not happen. Avoid Emphasizes that the action should be prevented, but some exceptions may exist. Try Emphasizes that the rule should be attempted whenever possible and appropriate. Example Precedes text used to illustrate a rule or a recommendation. Reason Explains the thoughts and purpose behind a rule or a recommendation. Restriction Describes the circumstances to be fulfilled to make use of a rule. Validator support The tool db* CODECOP (see the \"Tool Support\" chapter) cannot support all the guidelines in this document. Those guidelines that are not supported by db* CODECOP validators are marked like this: Unsupported in db* CODECOP Validators Reason why the specific guideline is not supported by the validators. The db* CODECOP repository documents the details of validator limitations . Why are standards important For a machine executing a program, code formatting is of no importance. However, for the human eye, well-formatted code is much easier to read. Modern tools can help to implement format and coding rules. Implementing formatting and coding standards has the following advantages for PL/SQL development: Well-formatted code is easier to read, analyze and maintain (not only for the author but also for other developers). The developers do not have to define their own guidelines - it is already defined. The code has a structure that makes it easier to avoid making errors. The code is more efficient concerning performance and organization of the whole application. The code is more modular and thus easier to use for other applications. We have other standards This document only defines possible standards. These standards are not written in stone, but are meant as guidelines. If standards already exist, and they are different from those in this document, it makes no sense to change them. We do not agree with all your standards There are basically two types of standards. Non-controversial These standards make sense. There is no reason not to follow them. An example of this category is G-2150 : Avoid comparisons with NULL value, consider using IS [NOT] NULL. Controversial Almost every rule/guideline falls into this category. An example of this category is 3 space indention . - Why not 2 or 4 or even 8? Why not use tabs? You can argue in favor of all these options. In most cases it does not really matter which option you choose. Being consistent is more important. In this case it will make the code easier to read. For very controversial rules, we have started to include the reasoning either as a footnote or directly in the text. Usually it is not helpful to open an issue on GitHub to request to change a highly controversial rule such as the one mentioned. For example, use 2 spaces instead of 3 spaces for an indentation. This leads to a discussion where the people in favor of 4 spaces start to argument as well. There is no right or wrong here. You just have to agree on a standard. More effective is to fork this repository and amend the standards to fit your needs/expectations.","title":"Introduction"},{"location":"1-introduction/introduction/#introduction","text":"This document describes rules and recommendations for developing applications using the PL/SQL & SQL Language.","title":"Introduction"},{"location":"1-introduction/introduction/#scope","text":"This document applies to the PL/SQL and SQL language as used within Oracle Databases and tools, which access Oracle Databases version 11g Release 2 or later.","title":"Scope"},{"location":"1-introduction/introduction/#document-conventions","text":"SQALE (Software Quality Assessment based on Lifecycle Expectations) is a method to support the evaluation of a software application source code. It is a generic method, independent of the language and source code analysis tools.","title":"Document Conventions"},{"location":"1-introduction/introduction/#sqale-characteristics-and-subcharacteristics","text":"Characteristic Description and Subcharacteristics Changeability The capability of the software product to enable a specified modification to be implemented. Architecture related changeability Logic related changeability Data related changeability Efficiency The capability of the software product to provide appropriate performance, relative to the amount of resources used, under stated conditions. Memory use Processor use Network use Maintainability The capability of the software product to be modified. Modifications may include corrections, improvements or adaptation of the software to changes in environment, and in requirements and functional specifications. Understandability Readability Portability The capability of the software product to be transferred from one environment to another. Compiler related portability Hardware related portability Language related portability OS related portability Software related portability Time zone related portability. Reliability The capability of the software product to maintain a specified level of performance when used under specified conditions. Architecture related reliability Data related reliability Exception handling Fault tolerance Instruction related reliability Logic related reliability Resource related reliability Synchronization related reliability Unit tests coverage. Reusability The capability of the software product to be reused within the development process. Modularity Transportability. Security The capability of the software product to protect information and data so that unauthorized persons or systems cannot read or modify them and authorized persons or systems are not denied access to them. API abuse Errors (e.g. leaving a system in a vulnerable state) Input validatation and representation Security features. Testability The capability of the software product to enable modified software to be validated. Integration level testability Unit level testability.","title":"SQALE characteristics and subcharacteristics"},{"location":"1-introduction/introduction/#severity-of-the-rule","text":"Blocker Will or may result in a bug; for example, an incorrect result or a runtime exception. Critical Will have a high/direct impact on the maintenance cost. May have an impact on runtime behavior; for example, incomplete audit data or slower runtime performance. Major Will have a medium/potential impact on the maintenance cost. May have an impact on runtime behavior; for example, higher memory consumption. Minor Will have a low impact on the maintenance cost. No impact on the runtime behavior. Info Very low impact; it is just a remediation cost report. No impact on runtime behavior. For example, a NOSONAR marker comment.","title":"Severity of the rule"},{"location":"1-introduction/introduction/#keywords-used","text":"Keyword Meaning Always Emphasizes this rule must be enforced. Never Emphasizes this action must not happen. Avoid Emphasizes that the action should be prevented, but some exceptions may exist. Try Emphasizes that the rule should be attempted whenever possible and appropriate. Example Precedes text used to illustrate a rule or a recommendation. Reason Explains the thoughts and purpose behind a rule or a recommendation. Restriction Describes the circumstances to be fulfilled to make use of a rule.","title":"Keywords used"},{"location":"1-introduction/introduction/#validator-support","text":"The tool db* CODECOP (see the \"Tool Support\" chapter) cannot support all the guidelines in this document. Those guidelines that are not supported by db* CODECOP validators are marked like this: Unsupported in db* CODECOP Validators Reason why the specific guideline is not supported by the validators. The db* CODECOP repository documents the details of validator limitations .","title":"Validator support"},{"location":"1-introduction/introduction/#why-are-standards-important","text":"For a machine executing a program, code formatting is of no importance. However, for the human eye, well-formatted code is much easier to read. Modern tools can help to implement format and coding rules. Implementing formatting and coding standards has the following advantages for PL/SQL development: Well-formatted code is easier to read, analyze and maintain (not only for the author but also for other developers). The developers do not have to define their own guidelines - it is already defined. The code has a structure that makes it easier to avoid making errors. The code is more efficient concerning performance and organization of the whole application. The code is more modular and thus easier to use for other applications.","title":"Why are standards important"},{"location":"1-introduction/introduction/#we-have-other-standards","text":"This document only defines possible standards. These standards are not written in stone, but are meant as guidelines. If standards already exist, and they are different from those in this document, it makes no sense to change them.","title":"We have other standards"},{"location":"1-introduction/introduction/#we-do-not-agree-with-all-your-standards","text":"There are basically two types of standards. Non-controversial These standards make sense. There is no reason not to follow them. An example of this category is G-2150 : Avoid comparisons with NULL value, consider using IS [NOT] NULL. Controversial Almost every rule/guideline falls into this category. An example of this category is 3 space indention . - Why not 2 or 4 or even 8? Why not use tabs? You can argue in favor of all these options. In most cases it does not really matter which option you choose. Being consistent is more important. In this case it will make the code easier to read. For very controversial rules, we have started to include the reasoning either as a footnote or directly in the text. Usually it is not helpful to open an issue on GitHub to request to change a highly controversial rule such as the one mentioned. For example, use 2 spaces instead of 3 spaces for an indentation. This leads to a discussion where the people in favor of 4 spaces start to argument as well. There is no right or wrong here. You just have to agree on a standard. More effective is to fork this repository and amend the standards to fit your needs/expectations.","title":"We do not agree with all your standards"},{"location":"2-naming-conventions/naming-conventions/","text":"Naming Conventions General Guidelines Never use names with a leading numeric character. Always choose meaningful and specific names. Avoid using abbreviations unless the full name is excessively long. Avoid long abbreviations. Abbreviations should be shorter than 5 characters. Any abbreviations must be widely known and accepted. Create a glossary with all accepted abbreviations. Never use keywords as names. A list of keywords may be found in the dictionary view v$reserved_words . Avoid adding redundant or meaningless prefixes and suffixes to identifiers. Example: create table emp_table . Always use one spoken language (e.g. English, German, French) for all objects in your application. Always use the same names for elements with the same meaning. Naming Conventions for PL/SQL In general, the Oracle Database is not case sensitive with names. A variable named personname is equal to one named PersonName, as well as to one named PERSONNAME. Some products (e.g. TMDA by Trivadis, APEX, OWB) put each name within double quotes (\") so the Oracle Database will treat these names to be case sensitive. Using case sensitive variable names force developers to use double quotes for each reference to the variable. Our recommendation is to write all names in lowercase and to avoid double quoted identifiers. A widely used convention is to follow a {prefix}variablecontent{suffix} pattern. The following table shows a possible set of naming conventions. Identifier Prefix Suffix Example Global Variable g_ g_version Local Variable l_ l_version Cursor c_ c_employees Record r_ r_employee Array / Table t_ t_employees Object o_ o_employee Cursor Parameter p_ p_empno In Parameter in_ in_empno Out Parameter out_ out_ename In/Out Parameter io_ io_employee Record Type Definitions r_ _type r_employee_type Array/Table Type Definitions t_ _type t_employees_type Exception e_ e_employee_exists Constants co_ co_empno Subtypes _type big_string_type Database Object Naming Conventions Never enclose object names (table names, column names, etc.) in double quotes to enforce mixed case or lower case object names in the data dictionary. Collection Type A collection type should include the name of the collected objects in their name. Furthermore, they should have the suffix _ct to identify it as a collection. Optionally prefixed by a project abbreviation. Examples: employees_ct orders_ct Column Singular name of what is stored in the column (unless the column data type is a collection, in this case you use plural 1 names) Add a comment to the database dictionary for every column. Check Constraint Table name or table abbreviation followed by the column and/or role of the check constraint, a _ck and an optional number suffix. Examples: employees_salary_min_ck orders_mode_ck DML / Instead of Trigger Choose a naming convention that includes: either the name of the object the trigger is added to, any of the triggering events: _br_iud for Before Row on Insert, Update and Delete _io_id for Instead of Insert and Delete or the name of the object the trigger is added to, the activity done by the trigger, the suffix _trg Examples: employees_br_iud orders_audit_trg orders_journal_trg Foreign Key Constraint Table abbreviation followed by referenced table abbreviation followed by a _fk and an optional number suffix. Examples: empl_dept_fk sct_icmd_ic_fk1 Function Name is built from a verb followed by a noun in general. Nevertheless, it is not sensible to call a function get_... as a function always gets something. The name of the function should answer the question \u201cWhat is the outcome of the function?\u201d Optionally prefixed by a project abbreviation. Example: employee_by_id If more than one function provides the same outcome, you have to be more specific with the name. Index Indexes serving a constraint (primary, unique or foreign key) are named accordingly. Other indexes should have the name of the table and columns (or their purpose) in their name and should also have _idx as a suffix. Object Type The name of an object type is built by its content (singular) followed by a _ot suffix. Optionally prefixed by a project abbreviation. Example: employee_ot Package Name is built from the content that is contained within the package. Optionally prefixed by a project abbreviation. Examples: employees_api - API for the employee table logging_up - Utilities including logging support Primary Key Constraint Table name or table abbreviation followed by the suffix _pk . Examples: employees_pk departments_pk sct_contracts_pk Procedure Name is built from a verb followed by a noun. The name of the procedure should answer the question \u201cWhat is done?\u201d Procedures and functions are often named with underscores between words because some editors write all letters in uppercase in the object tree, so it is difficult to read them. Optionally prefixed by a project abbreviation. Examples: calculate_salary set_hiredate check_order_state Sequence Name is built from the table name (or its abbreviation) the sequence serves as primary key generator and the suffix _seq or the purpose of the sequence followed by a _seq . Optionally prefixed by a project abbreviation. Examples: employees_seq order_number_seq Synonym Synonyms should be used to address an object in a foreign schema rather than to rename an object. Therefore, synonyms should share the name with the referenced object. System Trigger Name of the event the trigger is based on. Activity done by the trigger Suffix _trg Examples: ddl_audit_trg logon_trg Table Plural 1 name of what is contained in the table (unless the table is designed to always hold one row only \u2013 then you should use a singular name). Suffixed by _eb when protected by an editioning view. Add a comment to the database dictionary for every table and every column in the table. Optionally prefixed by a project abbreviation. Examples: employees departments countries_eb - table interfaced by an editioning view named countries sct_contracts sct_contract_lines sct_incentive_modules Temporary Table (Global Temporary Table) Naming as described for tables. Optionally suffixed by _tmp Optionally prefixed by a project abbreviation. Examples: employees_tmp contracts_tmp Unique Key Constraint Table name or table abbreviation followed by the role of the unique key constraint, a _uk and an optional number suffix. Examples: employees_name_uk departments_deptno_uk sct_contracts_uk sct_coli_uk sct_icmd_uk1 View Plural 1 name of what is contained in the view. Optionally suffixed by an indicator identifying the object as a view (mostly used, when a 1:1 view layer lies above the table layer) Editioning views are named like the original underlying table to avoid changing the existing application code when introducing edition based redefinition (EBR). Add a comment to the database dictionary for every view and every column. Optionally prefixed by a project abbreviation. Examples: active_orders orders_v - a view to the orders table countries - an editioning view for table countries_eb We see a table and a view as a collection. A jar containing beans is labeled \"beans\". In Java we call such a collection also \"beans\" ( List beans ) and name an entry \"bean\" ( for (Bean bean : beans) {...} ). An entry of a table is a row (singular) and a table can contain an unbounded number of rows (plural). This and the fact that the Oracle Database uses the same concept for their tables and views lead to the decision to use the plural to name a table or a view. \u21a9 \u21a9 \u21a9","title":"Naming Conventions"},{"location":"2-naming-conventions/naming-conventions/#naming-conventions","text":"","title":"Naming Conventions"},{"location":"2-naming-conventions/naming-conventions/#general-guidelines","text":"Never use names with a leading numeric character. Always choose meaningful and specific names. Avoid using abbreviations unless the full name is excessively long. Avoid long abbreviations. Abbreviations should be shorter than 5 characters. Any abbreviations must be widely known and accepted. Create a glossary with all accepted abbreviations. Never use keywords as names. A list of keywords may be found in the dictionary view v$reserved_words . Avoid adding redundant or meaningless prefixes and suffixes to identifiers. Example: create table emp_table . Always use one spoken language (e.g. English, German, French) for all objects in your application. Always use the same names for elements with the same meaning.","title":"General Guidelines"},{"location":"2-naming-conventions/naming-conventions/#naming-conventions-for-plsql","text":"In general, the Oracle Database is not case sensitive with names. A variable named personname is equal to one named PersonName, as well as to one named PERSONNAME. Some products (e.g. TMDA by Trivadis, APEX, OWB) put each name within double quotes (\") so the Oracle Database will treat these names to be case sensitive. Using case sensitive variable names force developers to use double quotes for each reference to the variable. Our recommendation is to write all names in lowercase and to avoid double quoted identifiers. A widely used convention is to follow a {prefix}variablecontent{suffix} pattern. The following table shows a possible set of naming conventions. Identifier Prefix Suffix Example Global Variable g_ g_version Local Variable l_ l_version Cursor c_ c_employees Record r_ r_employee Array / Table t_ t_employees Object o_ o_employee Cursor Parameter p_ p_empno In Parameter in_ in_empno Out Parameter out_ out_ename In/Out Parameter io_ io_employee Record Type Definitions r_ _type r_employee_type Array/Table Type Definitions t_ _type t_employees_type Exception e_ e_employee_exists Constants co_ co_empno Subtypes _type big_string_type","title":"Naming Conventions for PL/SQL"},{"location":"2-naming-conventions/naming-conventions/#database-object-naming-conventions","text":"Never enclose object names (table names, column names, etc.) in double quotes to enforce mixed case or lower case object names in the data dictionary.","title":"Database Object Naming Conventions"},{"location":"2-naming-conventions/naming-conventions/#collection-type","text":"A collection type should include the name of the collected objects in their name. Furthermore, they should have the suffix _ct to identify it as a collection. Optionally prefixed by a project abbreviation. Examples: employees_ct orders_ct","title":"Collection Type"},{"location":"2-naming-conventions/naming-conventions/#column","text":"Singular name of what is stored in the column (unless the column data type is a collection, in this case you use plural 1 names) Add a comment to the database dictionary for every column.","title":"Column"},{"location":"2-naming-conventions/naming-conventions/#check-constraint","text":"Table name or table abbreviation followed by the column and/or role of the check constraint, a _ck and an optional number suffix. Examples: employees_salary_min_ck orders_mode_ck","title":"Check Constraint"},{"location":"2-naming-conventions/naming-conventions/#dml-instead-of-trigger","text":"Choose a naming convention that includes: either the name of the object the trigger is added to, any of the triggering events: _br_iud for Before Row on Insert, Update and Delete _io_id for Instead of Insert and Delete or the name of the object the trigger is added to, the activity done by the trigger, the suffix _trg Examples: employees_br_iud orders_audit_trg orders_journal_trg","title":"DML / Instead of Trigger"},{"location":"2-naming-conventions/naming-conventions/#foreign-key-constraint","text":"Table abbreviation followed by referenced table abbreviation followed by a _fk and an optional number suffix. Examples: empl_dept_fk sct_icmd_ic_fk1","title":"Foreign Key Constraint"},{"location":"2-naming-conventions/naming-conventions/#function","text":"Name is built from a verb followed by a noun in general. Nevertheless, it is not sensible to call a function get_... as a function always gets something. The name of the function should answer the question \u201cWhat is the outcome of the function?\u201d Optionally prefixed by a project abbreviation. Example: employee_by_id If more than one function provides the same outcome, you have to be more specific with the name.","title":"Function"},{"location":"2-naming-conventions/naming-conventions/#index","text":"Indexes serving a constraint (primary, unique or foreign key) are named accordingly. Other indexes should have the name of the table and columns (or their purpose) in their name and should also have _idx as a suffix.","title":"Index"},{"location":"2-naming-conventions/naming-conventions/#object-type","text":"The name of an object type is built by its content (singular) followed by a _ot suffix. Optionally prefixed by a project abbreviation. Example: employee_ot","title":"Object Type"},{"location":"2-naming-conventions/naming-conventions/#package","text":"Name is built from the content that is contained within the package. Optionally prefixed by a project abbreviation. Examples: employees_api - API for the employee table logging_up - Utilities including logging support","title":"Package"},{"location":"2-naming-conventions/naming-conventions/#primary-key-constraint","text":"Table name or table abbreviation followed by the suffix _pk . Examples: employees_pk departments_pk sct_contracts_pk","title":"Primary Key Constraint"},{"location":"2-naming-conventions/naming-conventions/#procedure","text":"Name is built from a verb followed by a noun. The name of the procedure should answer the question \u201cWhat is done?\u201d Procedures and functions are often named with underscores between words because some editors write all letters in uppercase in the object tree, so it is difficult to read them. Optionally prefixed by a project abbreviation. Examples: calculate_salary set_hiredate check_order_state","title":"Procedure"},{"location":"2-naming-conventions/naming-conventions/#sequence","text":"Name is built from the table name (or its abbreviation) the sequence serves as primary key generator and the suffix _seq or the purpose of the sequence followed by a _seq . Optionally prefixed by a project abbreviation. Examples: employees_seq order_number_seq","title":"Sequence"},{"location":"2-naming-conventions/naming-conventions/#synonym","text":"Synonyms should be used to address an object in a foreign schema rather than to rename an object. Therefore, synonyms should share the name with the referenced object.","title":"Synonym"},{"location":"2-naming-conventions/naming-conventions/#system-trigger","text":"Name of the event the trigger is based on. Activity done by the trigger Suffix _trg Examples: ddl_audit_trg logon_trg","title":"System Trigger"},{"location":"2-naming-conventions/naming-conventions/#table","text":"Plural 1 name of what is contained in the table (unless the table is designed to always hold one row only \u2013 then you should use a singular name). Suffixed by _eb when protected by an editioning view. Add a comment to the database dictionary for every table and every column in the table. Optionally prefixed by a project abbreviation. Examples: employees departments countries_eb - table interfaced by an editioning view named countries sct_contracts sct_contract_lines sct_incentive_modules","title":"Table"},{"location":"2-naming-conventions/naming-conventions/#temporary-table-global-temporary-table","text":"Naming as described for tables. Optionally suffixed by _tmp Optionally prefixed by a project abbreviation. Examples: employees_tmp contracts_tmp","title":"Temporary Table (Global Temporary Table)"},{"location":"2-naming-conventions/naming-conventions/#unique-key-constraint","text":"Table name or table abbreviation followed by the role of the unique key constraint, a _uk and an optional number suffix. Examples: employees_name_uk departments_deptno_uk sct_contracts_uk sct_coli_uk sct_icmd_uk1","title":"Unique Key Constraint"},{"location":"2-naming-conventions/naming-conventions/#view","text":"Plural 1 name of what is contained in the view. Optionally suffixed by an indicator identifying the object as a view (mostly used, when a 1:1 view layer lies above the table layer) Editioning views are named like the original underlying table to avoid changing the existing application code when introducing edition based redefinition (EBR). Add a comment to the database dictionary for every view and every column. Optionally prefixed by a project abbreviation. Examples: active_orders orders_v - a view to the orders table countries - an editioning view for table countries_eb We see a table and a view as a collection. A jar containing beans is labeled \"beans\". In Java we call such a collection also \"beans\" ( List beans ) and name an entry \"bean\" ( for (Bean bean : beans) {...} ). An entry of a table is a row (singular) and a table can contain an unbounded number of rows (plural). This and the fact that the Oracle Database uses the same concept for their tables and views lead to the decision to use the plural to name a table or a view. \u21a9 \u21a9 \u21a9","title":"View"},{"location":"3-coding-style/coding-style/","text":"Coding Style Formatting Rules Rule Description 1 Keywords and names are written in lowercase 1 . 2 3 space indention 2 . 3 One command per line. 4 Keywords loop , else , elsif , end if , when on a new line. 5 Commas in front of separated elements. 6 Call parameters aligned, operators aligned, values aligned. 7 SQL keywords are right aligned within a SQL command. 8 Within a program unit only line comments -- are used. 9 Brackets are used when needed or when helpful to clarify a construct. Example 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 create or replace package body employee_api is procedure set_salary ( in_employee_id in integer ) is co_employee_id constant employees . employee_id % type : = in_employee_id ; cursor c_employees ( p_employee_id in employees . employee_id % type ) is select last_name , first_name , salary from employees where employee_id = p_employee_id order by last_name , first_name ; r_employee c_employees % rowtype ; l_new_salary employees . salary % type ; begin open c_employees ( p_employee_id => co_employee_id ); fetch c_employees into r_employee ; close c_employees ; new_salary ( in_employee_id => in_employee_id , out_salary => l_new_salary ); -- Check whether salary has changed if r_employee . salary <> l_new_salary then update employees set salary = l_new_salary where employee_id = in_employee_id ; end if ; end set_salary ; end employee_api ; Code Commenting Conventions Inside a program unit only use the line commenting technique -- unless you temporarly deactivate code sections for testing. To comment the source code for later document generation, comments like /** ... */ are used. Within these documentation comments, tags may be used to define the documentation structure. Tools like Oracle SQL Developer or PL/SQL Developer include documentation functionality based on a javadoc-like tagging. Commenting Tags Tag Meaning Example param Description of a parameter. @param in_string input string return Description of the return value of a function. @return result of the calculation throws Describe errors that may be raised by the program unit. @throws NO_DATA_FOUND Example This is an example using the documentation capabilities of SQL Developer. 1 2 3 4 5 6 7 8 9 10 11 12 13 /** Check whether we passed a valid sql name @param in_name string to be checked @return in_name if the string represents a valid sql name @throws ORA-44003: invalid SQL name Call Example:
 select TVDAssert.valid_sql_name('TEST') from dual; select TVDAssert.valid_sql_name('123') from dual 
*/ It used to be good practice to use uppercase keywords and lowercase names to help visualize code structure. But practically all editors support more or less advanced color highlighting of code, similar to the examples in these guidelines. Hence as of version 4.0 we are now recommending all lowercase, as this is easier and faster for the brain to process. You may choose to prefer the old rule - however, it is important to always be consistent, like for example keywords always in uppercase and names always in lowercase. \u21a9 Tabs are not used because the indentation depends on the editor configuration. We want to ensure that the code looks the same, independent of the editor used. Hence, no tabs. But why not use 8 spaces? That's the traditional value for a tab. When writing a package function the code in the body has an indentation of 3. That's 24 characters as a starting point for the code. We think it's too much. Especially if we try to keep a line below 100 or 80 characters. Other good options would be 2 or 4 spaces. We settled for 3 spaces as a compromise. The indentation is still good visible, but does not use too much space. \u21a9","title":"Coding Style"},{"location":"3-coding-style/coding-style/#coding-style","text":"","title":"Coding Style"},{"location":"3-coding-style/coding-style/#formatting","text":"","title":"Formatting"},{"location":"3-coding-style/coding-style/#rules","text":"Rule Description 1 Keywords and names are written in lowercase 1 . 2 3 space indention 2 . 3 One command per line. 4 Keywords loop , else , elsif , end if , when on a new line. 5 Commas in front of separated elements. 6 Call parameters aligned, operators aligned, values aligned. 7 SQL keywords are right aligned within a SQL command. 8 Within a program unit only line comments -- are used. 9 Brackets are used when needed or when helpful to clarify a construct.","title":"Rules"},{"location":"3-coding-style/coding-style/#example","text":"1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 create or replace package body employee_api is procedure set_salary ( in_employee_id in integer ) is co_employee_id constant employees . employee_id % type : = in_employee_id ; cursor c_employees ( p_employee_id in employees . employee_id % type ) is select last_name , first_name , salary from employees where employee_id = p_employee_id order by last_name , first_name ; r_employee c_employees % rowtype ; l_new_salary employees . salary % type ; begin open c_employees ( p_employee_id => co_employee_id ); fetch c_employees into r_employee ; close c_employees ; new_salary ( in_employee_id => in_employee_id , out_salary => l_new_salary ); -- Check whether salary has changed if r_employee . salary <> l_new_salary then update employees set salary = l_new_salary where employee_id = in_employee_id ; end if ; end set_salary ; end employee_api ;","title":"Example"},{"location":"3-coding-style/coding-style/#code-commenting","text":"","title":"Code Commenting"},{"location":"3-coding-style/coding-style/#conventions","text":"Inside a program unit only use the line commenting technique -- unless you temporarly deactivate code sections for testing. To comment the source code for later document generation, comments like /** ... */ are used. Within these documentation comments, tags may be used to define the documentation structure. Tools like Oracle SQL Developer or PL/SQL Developer include documentation functionality based on a javadoc-like tagging.","title":"Conventions"},{"location":"3-coding-style/coding-style/#commenting-tags","text":"Tag Meaning Example param Description of a parameter. @param in_string input string return Description of the return value of a function. @return result of the calculation throws Describe errors that may be raised by the program unit. @throws NO_DATA_FOUND","title":"Commenting Tags"},{"location":"3-coding-style/coding-style/#example_1","text":"This is an example using the documentation capabilities of SQL Developer. 1 2 3 4 5 6 7 8 9 10 11 12 13 /** Check whether we passed a valid sql name @param in_name string to be checked @return in_name if the string represents a valid sql name @throws ORA-44003: invalid SQL name Call Example:
 select TVDAssert.valid_sql_name('TEST') from dual; select TVDAssert.valid_sql_name('123') from dual 
*/ It used to be good practice to use uppercase keywords and lowercase names to help visualize code structure. But practically all editors support more or less advanced color highlighting of code, similar to the examples in these guidelines. Hence as of version 4.0 we are now recommending all lowercase, as this is easier and faster for the brain to process. You may choose to prefer the old rule - however, it is important to always be consistent, like for example keywords always in uppercase and names always in lowercase. \u21a9 Tabs are not used because the indentation depends on the editor configuration. We want to ensure that the code looks the same, independent of the editor used. Hence, no tabs. But why not use 8 spaces? That's the traditional value for a tab. When writing a package function the code in the body has an indentation of 3. That's 24 characters as a starting point for the code. We think it's too much. Especially if we try to keep a line below 100 or 80 characters. Other good options would be 2 or 4 spaces. We settled for 3 spaces as a compromise. The indentation is still good visible, but does not use too much space. \u21a9","title":"Example"},{"location":"4-language-usage/1-general/g-1010/","text":"G-1010: Try to label your sub blocks. Minor Maintainability Reason It's a good alternative for comments to indicate the start and end of a named processing. Example (bad) 1 2 3 4 5 6 7 8 9 10 begin begin null ; end ; begin null ; end ; end ; / Example (good) 1 2 3 4 5 6 7 8 9 10 11 12 begin << prepare_data >> begin null ; end prepare_data ; << process_data >> begin null ; end process_data ; end good ; /","title":"G-1010: Try to label your sub blocks."},{"location":"4-language-usage/1-general/g-1010/#g-1010-try-to-label-your-sub-blocks","text":"Minor Maintainability","title":"G-1010: Try to label your sub blocks."},{"location":"4-language-usage/1-general/g-1010/#reason","text":"It's a good alternative for comments to indicate the start and end of a named processing.","title":"Reason"},{"location":"4-language-usage/1-general/g-1010/#example-bad","text":"1 2 3 4 5 6 7 8 9 10 begin begin null ; end ; begin null ; end ; end ; /","title":"Example (bad)"},{"location":"4-language-usage/1-general/g-1010/#example-good","text":"1 2 3 4 5 6 7 8 9 10 11 12 begin << prepare_data >> begin null ; end prepare_data ; << process_data >> begin null ; end process_data ; end good ; /","title":"Example (good)"},{"location":"4-language-usage/1-general/g-1020/","text":"G-1020: Always have a matching loop or block label. Minor Maintainability Reason Use a label directly in front of loops and nested anonymous blocks: To give a name to that portion of code and thereby self-document what it is doing. So that you can repeat that name with the end statement of that block or loop. Example (bad) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 declare i integer ; co_min_value constant integer : = 1 ; co_max_value constant integer : = 10 ; co_increment constant integer : = 1 ; begin << prepare_data >> begin null ; end ; << process_data >> begin null ; end ; i : = co_min_value ; << while_loop >> while ( i <= co_max_value ) loop i : = i + co_increment ; end loop ; << basic_loop >> loop exit basic_loop when true ; end loop ; << for_loop >> for i in co_min_value .. co_max_value loop sys . dbms_output . put_line ( i ); end loop ; end ; / Example (good) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 declare i integer ; co_min_value constant integer : = 1 ; co_max_value constant integer : = 10 ; co_increment constant integer : = 1 ; begin << prepare_data >> begin null ; end prepare_data ; << process_data >> begin null ; end process_data ; i : = co_min_value ; << while_loop >> while ( i <= co_max_value ) loop i : = i + co_increment ; end loop while_loop ; << basic_loop >> loop exit basic_loop when true ; end loop basic_loop ; << for_loop >> for i in co_min_value .. co_max_value loop sys . dbms_output . put_line ( i ); end loop for_loop ; end ; /","title":"G-1020: Always have a matching loop or block label."},{"location":"4-language-usage/1-general/g-1020/#g-1020-always-have-a-matching-loop-or-block-label","text":"Minor Maintainability","title":"G-1020: Always have a matching loop or block label."},{"location":"4-language-usage/1-general/g-1020/#reason","text":"Use a label directly in front of loops and nested anonymous blocks: To give a name to that portion of code and thereby self-document what it is doing. So that you can repeat that name with the end statement of that block or loop.","title":"Reason"},{"location":"4-language-usage/1-general/g-1020/#example-bad","text":"1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 declare i integer ; co_min_value constant integer : = 1 ; co_max_value constant integer : = 10 ; co_increment constant integer : = 1 ; begin << prepare_data >> begin null ; end ; << process_data >> begin null ; end ; i : = co_min_value ; << while_loop >> while ( i <= co_max_value ) loop i : = i + co_increment ; end loop ; << basic_loop >> loop exit basic_loop when true ; end loop ; << for_loop >> for i in co_min_value .. co_max_value loop sys . dbms_output . put_line ( i ); end loop ; end ; /","title":"Example (bad)"},{"location":"4-language-usage/1-general/g-1020/#example-good","text":"1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 declare i integer ; co_min_value constant integer : = 1 ; co_max_value constant integer : = 10 ; co_increment constant integer : = 1 ; begin << prepare_data >> begin null ; end prepare_data ; << process_data >> begin null ; end process_data ; i : = co_min_value ; << while_loop >> while ( i <= co_max_value ) loop i : = i + co_increment ; end loop while_loop ; << basic_loop >> loop exit basic_loop when true ; end loop basic_loop ; << for_loop >> for i in co_min_value .. co_max_value loop sys . dbms_output . put_line ( i ); end loop for_loop ; end ; /","title":"Example (good)"},{"location":"4-language-usage/1-general/g-1030/","text":"G-1030: Avoid defining variables that are not used. Major Efficiency, Maintainability Reason Unused variables decrease the maintainability and readability of your code. Example (bad) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 create or replace package body my_package is procedure my_proc is l_last_name employees . last_name % type ; l_first_name employees . first_name % type ; co_department_id constant departments . department_id % type : = 10 ; e_good exception ; begin select e . last_name into l_last_name from employees e where e . department_id = co_department_id ; exception when no_data_found then null ; -- handle_no_data_found; when too_many_rows then null ; -- handle_too_many_rows; end my_proc ; end my_package ; / Example (good) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 create or replace package body my_package is procedure my_proc is l_last_name employees . last_name % type ; co_department_id constant departments . department_id % type : = 10 ; e_good exception ; begin select e . last_name into l_last_name from employees e where e . department_id = co_department_id ; raise e_good ; exception when no_data_found then null ; -- handle_no_data_found; when too_many_rows then null ; -- handle_too_many_rows; end my_proc ; end my_package ; /","title":"G-1030: Avoid defining variables that are not used."},{"location":"4-language-usage/1-general/g-1030/#g-1030-avoid-defining-variables-that-are-not-used","text":"Major Efficiency, Maintainability","title":"G-1030: Avoid defining variables that are not used."},{"location":"4-language-usage/1-general/g-1030/#reason","text":"Unused variables decrease the maintainability and readability of your code.","title":"Reason"},{"location":"4-language-usage/1-general/g-1030/#example-bad","text":"1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 create or replace package body my_package is procedure my_proc is l_last_name employees . last_name % type ; l_first_name employees . first_name % type ; co_department_id constant departments . department_id % type : = 10 ; e_good exception ; begin select e . last_name into l_last_name from employees e where e . department_id = co_department_id ; exception when no_data_found then null ; -- handle_no_data_found; when too_many_rows then null ; -- handle_too_many_rows; end my_proc ; end my_package ; /","title":"Example (bad)"},{"location":"4-language-usage/1-general/g-1030/#example-good","text":"1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 create or replace package body my_package is procedure my_proc is l_last_name employees . last_name % type ; co_department_id constant departments . department_id % type : = 10 ; e_good exception ; begin select e . last_name into l_last_name from employees e where e . department_id = co_department_id ; raise e_good ; exception when no_data_found then null ; -- handle_no_data_found; when too_many_rows then null ; -- handle_too_many_rows; end my_proc ; end my_package ; /","title":"Example (good)"},{"location":"4-language-usage/1-general/g-1040/","text":"G-1040: Avoid dead code. Major Maintainability Reason Any part of your code, which is no longer used or cannot be reached, should be eliminated from your programs to simplify the code. Example (bad) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 declare co_dept_purchasing constant departments . department_id % type : = 30 ; begin if 2 = 3 then -- dead code detection works with literals only null ; -- some dead code here end if ; null ; -- some enabled code here << my_loop >> loop exit my_loop when true ; null ; -- some dead code here end loop my_loop ; null ; -- some other enabled code here case when 1 = 1 and 'x' = 'y' then -- dead code detection works with literals only null ; -- some dead code here else null ; -- some further enabled code here end case ; << my_loop2 >> for r_emp in ( select last_name from employees where department_id = co_dept_purchasing or commission_pct is not null and 5 = 6 -- dead code detection works with literals only ) -- \"or commission_pct is not null\" is dead code loop sys . dbms_output . put_line ( r_emp . last_name ); end loop my_loop2 ; return ; null ; -- some dead code here end ; / Example (good) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 declare co_dept_admin constant dept . deptno % type : = 10 ; begin null ; -- some enabled code here null ; -- some other enabled code here null ; -- some further enabled code here << my_loop2 >> for r_emp in ( select last_name from employees where department_id = co_dept_admin or commission_pct is not null ) loop sys . dbms_output . put_line ( r_emp . last_name ); end loop my_loop2 ; end ; /","title":"G-1040: Avoid dead code."},{"location":"4-language-usage/1-general/g-1040/#g-1040-avoid-dead-code","text":"Major Maintainability","title":"G-1040: Avoid dead code."},{"location":"4-language-usage/1-general/g-1040/#reason","text":"Any part of your code, which is no longer used or cannot be reached, should be eliminated from your programs to simplify the code.","title":"Reason"},{"location":"4-language-usage/1-general/g-1040/#example-bad","text":"1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 declare co_dept_purchasing constant departments . department_id % type : = 30 ; begin if 2 = 3 then -- dead code detection works with literals only null ; -- some dead code here end if ; null ; -- some enabled code here << my_loop >> loop exit my_loop when true ; null ; -- some dead code here end loop my_loop ; null ; -- some other enabled code here case when 1 = 1 and 'x' = 'y' then -- dead code detection works with literals only null ; -- some dead code here else null ; -- some further enabled code here end case ; << my_loop2 >> for r_emp in ( select last_name from employees where department_id = co_dept_purchasing or commission_pct is not null and 5 = 6 -- dead code detection works with literals only ) -- \"or commission_pct is not null\" is dead code loop sys . dbms_output . put_line ( r_emp . last_name ); end loop my_loop2 ; return ; null ; -- some dead code here end ; /","title":"Example (bad)"},{"location":"4-language-usage/1-general/g-1040/#example-good","text":"1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 declare co_dept_admin constant dept . deptno % type : = 10 ; begin null ; -- some enabled code here null ; -- some other enabled code here null ; -- some further enabled code here << my_loop2 >> for r_emp in ( select last_name from employees where department_id = co_dept_admin or commission_pct is not null ) loop sys . dbms_output . put_line ( r_emp . last_name ); end loop my_loop2 ; end ; /","title":"Example (good)"},{"location":"4-language-usage/1-general/g-1050/","text":"G-1050: Avoid using literals in your code. Minor Changeability Reason Literals are often used more than once in your code. Having them defined as a constant reduces typos in your code and improves the maintainability. All constants should be collated in just one package used as a library. If these constants should be used in SQL too it is good practice to write a deterministic package function for every constant. To avoid an extreme plethora of constants or false positives, a literal should not occur more than once within a file. Example (bad) 1 2 3 4 5 6 begin some_api . setup ( in_department_id => 10 ); some_api . process ( in_department_id => 10 ); some_api . teardown ( in_department_id => 10 ); end ; / Example (good) 1 2 3 4 5 6 7 8 9 10 11 create or replace package constants_up is co_dept_admin constant departments . department_id % type : = 10 ; end constants_up ; / begin some_api . setup ( in_department_id => constants_up . co_dept_admin ); some_api . process ( in_department_id => constants_up . co_dept_admin ); some_api . teardown ( in_department_id => constants_up . co_dept_admin ); end ; /","title":"G-1050: Avoid using literals in your code."},{"location":"4-language-usage/1-general/g-1050/#g-1050-avoid-using-literals-in-your-code","text":"Minor Changeability","title":"G-1050: Avoid using literals in your code."},{"location":"4-language-usage/1-general/g-1050/#reason","text":"Literals are often used more than once in your code. Having them defined as a constant reduces typos in your code and improves the maintainability. All constants should be collated in just one package used as a library. If these constants should be used in SQL too it is good practice to write a deterministic package function for every constant. To avoid an extreme plethora of constants or false positives, a literal should not occur more than once within a file.","title":"Reason"},{"location":"4-language-usage/1-general/g-1050/#example-bad","text":"1 2 3 4 5 6 begin some_api . setup ( in_department_id => 10 ); some_api . process ( in_department_id => 10 ); some_api . teardown ( in_department_id => 10 ); end ; /","title":"Example (bad)"},{"location":"4-language-usage/1-general/g-1050/#example-good","text":"1 2 3 4 5 6 7 8 9 10 11 create or replace package constants_up is co_dept_admin constant departments . department_id % type : = 10 ; end constants_up ; / begin some_api . setup ( in_department_id => constants_up . co_dept_admin ); some_api . process ( in_department_id => constants_up . co_dept_admin ); some_api . teardown ( in_department_id => constants_up . co_dept_admin ); end ; /","title":"Example (good)"},{"location":"4-language-usage/1-general/g-1060/","text":"G-1060: Avoid storing ROWIDs or UROWIDs in database tables. Blocker Reliability Reason It is an extremely dangerous practice to store rowid 's in a table, except for some very limited scenarios of runtime duration. Any manually explicit or system generated implicit table reorganization will reassign the row's rowid and break the data consistency. Instead of using rowid for later reference to the original row one should use the primary key column(s). Example (bad) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 begin insert into employees_log ( employee_id , last_name , first_name , rid ) select employee_id , last_name , first_name , rowid from employees ; end ; / Example (good) 1 2 3 4 5 6 7 8 9 10 11 12 begin insert into employees_log ( employee_id , last_name , first_name ) select employee_id , last_name , first_name from employees ; end ; /","title":"G-1060: Avoid storing ROWIDs or UROWIDs in database tables."},{"location":"4-language-usage/1-general/g-1060/#g-1060-avoid-storing-rowids-or-urowids-in-database-tables","text":"Blocker Reliability","title":"G-1060: Avoid storing ROWIDs or UROWIDs in database tables."},{"location":"4-language-usage/1-general/g-1060/#reason","text":"It is an extremely dangerous practice to store rowid 's in a table, except for some very limited scenarios of runtime duration. Any manually explicit or system generated implicit table reorganization will reassign the row's rowid and break the data consistency. Instead of using rowid for later reference to the original row one should use the primary key column(s).","title":"Reason"},{"location":"4-language-usage/1-general/g-1060/#example-bad","text":"1 2 3 4 5 6 7 8 9 10 11 12 13 14 begin insert into employees_log ( employee_id , last_name , first_name , rid ) select employee_id , last_name , first_name , rowid from employees ; end ; /","title":"Example (bad)"},{"location":"4-language-usage/1-general/g-1060/#example-good","text":"1 2 3 4 5 6 7 8 9 10 11 12 begin insert into employees_log ( employee_id , last_name , first_name ) select employee_id , last_name , first_name from employees ; end ; /","title":"Example (good)"},{"location":"4-language-usage/1-general/g-1070/","text":"G-1070: Avoid nesting comment blocks. Minor Maintainability Reason Having an end-of-comment within a block comment will end that block-comment. This does not only influence your code but is also very hard to read. Example (bad) 1 2 3 4 5 6 7 begin /* comment one -- nested comment two */ null ; -- comment three /* nested comment four */ null ; end ; / Example (good) 1 2 3 4 5 6 7 begin /* comment one, comment two */ null ; -- comment three, comment four null ; end ; /","title":"G-1070: Avoid nesting comment blocks."},{"location":"4-language-usage/1-general/g-1070/#g-1070-avoid-nesting-comment-blocks","text":"Minor Maintainability","title":"G-1070: Avoid nesting comment blocks."},{"location":"4-language-usage/1-general/g-1070/#reason","text":"Having an end-of-comment within a block comment will end that block-comment. This does not only influence your code but is also very hard to read.","title":"Reason"},{"location":"4-language-usage/1-general/g-1070/#example-bad","text":"1 2 3 4 5 6 7 begin /* comment one -- nested comment two */ null ; -- comment three /* nested comment four */ null ; end ; /","title":"Example (bad)"},{"location":"4-language-usage/1-general/g-1070/#example-good","text":"1 2 3 4 5 6 7 begin /* comment one, comment two */ null ; -- comment three, comment four null ; end ; /","title":"Example (good)"},{"location":"4-language-usage/1-general/g-1080/","text":"G-1080: Avoid using the same expression on both sides of a relational comparison operator or a logical operator. Blocker Maintainability, Efficiency, Testability Reason Using the same value on either side of a binary operator is almost always a mistake. In the case of logical operators, it is either a copy/paste error and therefore a bug, or it is simply wasted code and should be simplified. This rule ignores operators + , * and || , and expressions: 1=1 , 1<>1 , 1!=1 , 1~=1 and 1^=1 . Example (bad) 1 2 3 4 5 6 7 8 9 10 11 12 13 declare co_max_salary constant emp . salary % type : = 3000 ; begin select emp . first_name , emp . last_name , emp . salary , emp . hire_date from employees emp where emp . salary > co_max_salary or emp . salary > co_max_salary order by emp . last_name , emp . first_name ; end ; / Example (good) 1 2 3 4 5 6 7 8 9 10 11 12 declare co_max_salary constant emp . salary % type : = 3000 ; begin select emp . first_name , emp . last_name , emp . salary , emp . hire_date from employees emp where emp . salary > co_max_salary order by emp . last_name , emp . first_name ; end ; /","title":"G-1080: Avoid using the same expression on both sides of a relational comparison operator or a logical operator."},{"location":"4-language-usage/1-general/g-1080/#g-1080-avoid-using-the-same-expression-on-both-sides-of-a-relational-comparison-operator-or-a-logical-operator","text":"Blocker Maintainability, Efficiency, Testability","title":"G-1080: Avoid using the same expression on both sides of a relational comparison operator or a logical operator."},{"location":"4-language-usage/1-general/g-1080/#reason","text":"Using the same value on either side of a binary operator is almost always a mistake. In the case of logical operators, it is either a copy/paste error and therefore a bug, or it is simply wasted code and should be simplified. This rule ignores operators + , * and || , and expressions: 1=1 , 1<>1 , 1!=1 , 1~=1 and 1^=1 .","title":"Reason"},{"location":"4-language-usage/1-general/g-1080/#example-bad","text":"1 2 3 4 5 6 7 8 9 10 11 12 13 declare co_max_salary constant emp . salary % type : = 3000 ; begin select emp . first_name , emp . last_name , emp . salary , emp . hire_date from employees emp where emp . salary > co_max_salary or emp . salary > co_max_salary order by emp . last_name , emp . first_name ; end ; /","title":"Example (bad)"},{"location":"4-language-usage/1-general/g-1080/#example-good","text":"1 2 3 4 5 6 7 8 9 10 11 12 declare co_max_salary constant emp . salary % type : = 3000 ; begin select emp . first_name , emp . last_name , emp . salary , emp . hire_date from employees emp where emp . salary > co_max_salary order by emp . last_name , emp . first_name ; end ; /","title":"Example (good)"},{"location":"4-language-usage/2-variables-and-types/1-general/g-2110/","text":"G-2110: Try to use anchored declarations for variables, constants and types. Major Maintainability, Reliability Reason Changing the size of the database column last_name in the employees table from varchar2(20) to varchar2(30) will result in an error within your code whenever a value larger than the hard coded size is read from the table. This can be avoided using anchored declarations. Example (bad) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 create or replace package body my_package is procedure my_proc is l_last_name varchar2 ( 20 char ); co_first_row constant integer : = 1 ; begin select e . last_name into l_last_name from employees e where rownum = co_first_row ; exception when no_data_found then null ; -- handle no_data_found when too_many_rows then null ; -- handle too_many_rows (impossible) end my_proc ; end my_package ; / Example (good) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 create or replace package body my_package is procedure my_proc is l_last_name employees . last_name % type ; co_first_row constant integer : = 1 ; begin select e . last_name into l_last_name from employees e where rownum = co_first_row ; exception when no_data_found then null ; -- handle no_data_found when too_many_rows then null ; -- handle too_many_rows (impossible) end my_proc ; end my_package ; /","title":"G-2110: Try to use anchored declarations for variables, constants and types."},{"location":"4-language-usage/2-variables-and-types/1-general/g-2110/#g-2110-try-to-use-anchored-declarations-for-variables-constants-and-types","text":"Major Maintainability, Reliability","title":"G-2110: Try to use anchored declarations for variables, constants and types."},{"location":"4-language-usage/2-variables-and-types/1-general/g-2110/#reason","text":"Changing the size of the database column last_name in the employees table from varchar2(20) to varchar2(30) will result in an error within your code whenever a value larger than the hard coded size is read from the table. This can be avoided using anchored declarations.","title":"Reason"},{"location":"4-language-usage/2-variables-and-types/1-general/g-2110/#example-bad","text":"1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 create or replace package body my_package is procedure my_proc is l_last_name varchar2 ( 20 char ); co_first_row constant integer : = 1 ; begin select e . last_name into l_last_name from employees e where rownum = co_first_row ; exception when no_data_found then null ; -- handle no_data_found when too_many_rows then null ; -- handle too_many_rows (impossible) end my_proc ; end my_package ; /","title":"Example (bad)"},{"location":"4-language-usage/2-variables-and-types/1-general/g-2110/#example-good","text":"1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 create or replace package body my_package is procedure my_proc is l_last_name employees . last_name % type ; co_first_row constant integer : = 1 ; begin select e . last_name into l_last_name from employees e where rownum = co_first_row ; exception when no_data_found then null ; -- handle no_data_found when too_many_rows then null ; -- handle too_many_rows (impossible) end my_proc ; end my_package ; /","title":"Example (good)"},{"location":"4-language-usage/2-variables-and-types/1-general/g-2120/","text":"G-2120: Try to have a single location to define your types. Minor Changeability Reason Single point of change when changing the data type. No need to argue where to define types or where to look for existing definitions. A single location could be either a type specification package or the database (database-defined types). Example (bad) 1 2 3 4 5 6 7 8 9 10 create or replace package body my_package is procedure my_proc is subtype big_string_type is varchar2 ( 1000 char ); l_note big_string_type ; begin l_note : = some_function (); do_something ( l_note ); end my_proc ; end my_package ; / Example (good) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 create or replace package types_up is subtype big_string_type is varchar2 ( 1000 char ); end types_up ; / create or replace package body my_package is procedure my_proc is l_note types_up . big_string_type ; begin l_note : = some_function (); do_something ( l_note ); end my_proc ; end my_package ; /","title":"G-2120: Try to have a single location to define your types."},{"location":"4-language-usage/2-variables-and-types/1-general/g-2120/#g-2120-try-to-have-a-single-location-to-define-your-types","text":"Minor Changeability","title":"G-2120: Try to have a single location to define your types."},{"location":"4-language-usage/2-variables-and-types/1-general/g-2120/#reason","text":"Single point of change when changing the data type. No need to argue where to define types or where to look for existing definitions. A single location could be either a type specification package or the database (database-defined types).","title":"Reason"},{"location":"4-language-usage/2-variables-and-types/1-general/g-2120/#example-bad","text":"1 2 3 4 5 6 7 8 9 10 create or replace package body my_package is procedure my_proc is subtype big_string_type is varchar2 ( 1000 char ); l_note big_string_type ; begin l_note : = some_function (); do_something ( l_note ); end my_proc ; end my_package ; /","title":"Example (bad)"},{"location":"4-language-usage/2-variables-and-types/1-general/g-2120/#example-good","text":"1 2 3 4 5 6 7 8 9 10 11 12 13 14 create or replace package types_up is subtype big_string_type is varchar2 ( 1000 char ); end types_up ; / create or replace package body my_package is procedure my_proc is l_note types_up . big_string_type ; begin l_note : = some_function (); do_something ( l_note ); end my_proc ; end my_package ; /","title":"Example (good)"},{"location":"4-language-usage/2-variables-and-types/1-general/g-2130/","text":"G-2130: Try to use subtypes for constructs used often in your code. Minor Changeability Reason Single point of change when changing the data type. Your code will be easier to read as the usage of a variable/constant may be derived from its definition. Examples of possible subtype definitions: Type Usage ora_name_type Object corresponding to the Oracle Database naming conventions (table, variable, column, package, etc.). max_vc2_type String variable with maximal VARCHAR2 size. array_index_type Best fitting data type for array navigation. id_type Data type used for all primary key (id) columns. Example (bad) 1 2 3 4 5 6 7 8 9 create or replace package body my_package is procedure my_proc is l_note varchar2 ( 1000 char ); begin l_note : = some_function (); do_something ( l_note ); end my_proc ; end my_package ; / Example (good) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 create or replace package types_up is subtype big_string_type is varchar2 ( 1000 char ); end types_up ; / create or replace package body my_package is procedure my_proc is l_note types_up . big_string_type ; begin l_note : = some_function (); do_something ( l_note ); end my_proc ; end my_package ; /","title":"G-2130: Try to use subtypes for constructs used often in your code."},{"location":"4-language-usage/2-variables-and-types/1-general/g-2130/#g-2130-try-to-use-subtypes-for-constructs-used-often-in-your-code","text":"Minor Changeability","title":"G-2130: Try to use subtypes for constructs used often in your code."},{"location":"4-language-usage/2-variables-and-types/1-general/g-2130/#reason","text":"Single point of change when changing the data type. Your code will be easier to read as the usage of a variable/constant may be derived from its definition. Examples of possible subtype definitions: Type Usage ora_name_type Object corresponding to the Oracle Database naming conventions (table, variable, column, package, etc.). max_vc2_type String variable with maximal VARCHAR2 size. array_index_type Best fitting data type for array navigation. id_type Data type used for all primary key (id) columns.","title":"Reason"},{"location":"4-language-usage/2-variables-and-types/1-general/g-2130/#example-bad","text":"1 2 3 4 5 6 7 8 9 create or replace package body my_package is procedure my_proc is l_note varchar2 ( 1000 char ); begin l_note : = some_function (); do_something ( l_note ); end my_proc ; end my_package ; /","title":"Example (bad)"},{"location":"4-language-usage/2-variables-and-types/1-general/g-2130/#example-good","text":"1 2 3 4 5 6 7 8 9 10 11 12 13 14 create or replace package types_up is subtype big_string_type is varchar2 ( 1000 char ); end types_up ; / create or replace package body my_package is procedure my_proc is l_note types_up . big_string_type ; begin l_note : = some_function (); do_something ( l_note ); end my_proc ; end my_package ; /","title":"Example (good)"},{"location":"4-language-usage/2-variables-and-types/1-general/g-2135/","text":"G-2135: Avoid assigning values to local variables that are not used by a subsequent statement. Major Efficiency, Maintainability, Testability Reason Expending resources calculating and assigning values to a local variable and never use the value subsequently is at best a waste, at worst indicative of a mistake that leads to a bug. Example (bad) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 create or replace package body my_package is procedure my_proc is co_employee_id constant employees . employee_id % type : = 1042 ; co_hello constant type_up . text : = 'Hello, ' ; l_last_name employees . last_name % type ; l_message types_up . text ; begin select emp . last_name into l_last_name from employees emp where emp . employee_id = co_employee_id ; l_message : = co_hello || l_last_name ; exception when no_data_found then null ; -- handle_no_data_found; when too_many_rows then null ; -- handle_too_many_rows; end my_proc ; end my_package ; / Example (good) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 create or replace package body my_package is procedure my_proc is co_employee_id constant employees . employee_id % type : = 1042 ; co_hello constant type_up . text : = 'Hello, ' ; l_last_name employees . last_name % type ; l_message types_up . text ; begin select emp . last_name into l_last_name from employees emp where emp . employee_id = co_employee_id ; l_message : = co_hello || l_last_name ; message_api . send_message ( l_message ); exception when no_data_found then null ; -- handle_no_data_found; when too_many_rows then null ; -- handle_too_many_rows; end my_proc ; end my_package ; /","title":"G-2135: Avoid assigning values to local variables that are not used by a subsequent statement."},{"location":"4-language-usage/2-variables-and-types/1-general/g-2135/#g-2135-avoid-assigning-values-to-local-variables-that-are-not-used-by-a-subsequent-statement","text":"Major Efficiency, Maintainability, Testability","title":"G-2135: Avoid assigning values to local variables that are not used by a subsequent statement."},{"location":"4-language-usage/2-variables-and-types/1-general/g-2135/#reason","text":"Expending resources calculating and assigning values to a local variable and never use the value subsequently is at best a waste, at worst indicative of a mistake that leads to a bug.","title":"Reason"},{"location":"4-language-usage/2-variables-and-types/1-general/g-2135/#example-bad","text":"1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 create or replace package body my_package is procedure my_proc is co_employee_id constant employees . employee_id % type : = 1042 ; co_hello constant type_up . text : = 'Hello, ' ; l_last_name employees . last_name % type ; l_message types_up . text ; begin select emp . last_name into l_last_name from employees emp where emp . employee_id = co_employee_id ; l_message : = co_hello || l_last_name ; exception when no_data_found then null ; -- handle_no_data_found; when too_many_rows then null ; -- handle_too_many_rows; end my_proc ; end my_package ; /","title":"Example (bad)"},{"location":"4-language-usage/2-variables-and-types/1-general/g-2135/#example-good","text":"1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 create or replace package body my_package is procedure my_proc is co_employee_id constant employees . employee_id % type : = 1042 ; co_hello constant type_up . text : = 'Hello, ' ; l_last_name employees . last_name % type ; l_message types_up . text ; begin select emp . last_name into l_last_name from employees emp where emp . employee_id = co_employee_id ; l_message : = co_hello || l_last_name ; message_api . send_message ( l_message ); exception when no_data_found then null ; -- handle_no_data_found; when too_many_rows then null ; -- handle_too_many_rows; end my_proc ; end my_package ; /","title":"Example (good)"},{"location":"4-language-usage/2-variables-and-types/1-general/g-2140/","text":"G-2140: Never initialize variables with NULL. Minor Maintainability Reason Variables are initialized to null by default. Example (bad) 1 2 3 4 5 6 declare l_note big_string_type : = null ; begin sys . dbms_output . put_line ( l_note ); end ; / Example (good) 1 2 3 4 5 6 declare l_note big_string_type ; begin sys . dbms_output . put_line ( l_note ); end ; /","title":"G-2140: Never initialize variables with NULL."},{"location":"4-language-usage/2-variables-and-types/1-general/g-2140/#g-2140-never-initialize-variables-with-null","text":"Minor Maintainability","title":"G-2140: Never initialize variables with NULL."},{"location":"4-language-usage/2-variables-and-types/1-general/g-2140/#reason","text":"Variables are initialized to null by default.","title":"Reason"},{"location":"4-language-usage/2-variables-and-types/1-general/g-2140/#example-bad","text":"1 2 3 4 5 6 declare l_note big_string_type : = null ; begin sys . dbms_output . put_line ( l_note ); end ; /","title":"Example (bad)"},{"location":"4-language-usage/2-variables-and-types/1-general/g-2140/#example-good","text":"1 2 3 4 5 6 declare l_note big_string_type ; begin sys . dbms_output . put_line ( l_note ); end ; /","title":"Example (good)"},{"location":"4-language-usage/2-variables-and-types/1-general/g-2145/","text":"G-2145: Never self-assign a variable. Blocker Maintainability Reason There is no reason to assign a variable to itself. It is either a redundant statement that should be removed, or it is a mistake where some other value was intended in the assignment. Example (bad) 1 2 3 4 5 6 7 8 9 10 11 12 declare co_parallel_degree constant types_up . name % type : = 'parallel_degree' ; l_function_result pls_integer ; l_parallel_degree pls_integer ; begin l_function_result : = maintenance . get_config ( co_parallel_degree ); if l_function_result is not null then l_parallel_degree : = l_parallel_degree ; do_something ( l_parallel_degree ); end if ; end ; / Example (good) 1 2 3 4 5 6 7 8 9 10 11 12 declare co_parallel_degree constant types_up . name % type : = 'parallel_degree' ; l_function_result pls_integer ; l_parallel_degree pls_integer ; begin l_function_result : = maintenance . get_config ( co_parallel_degree ); if l_function_result is not null then l_parallel_degree : = l_function_result ; do_something ( l_parallel_degree ); end if ; end ; /","title":"G-2145: Never self-assign a variable."},{"location":"4-language-usage/2-variables-and-types/1-general/g-2145/#g-2145-never-self-assign-a-variable","text":"Blocker Maintainability","title":"G-2145: Never self-assign a variable."},{"location":"4-language-usage/2-variables-and-types/1-general/g-2145/#reason","text":"There is no reason to assign a variable to itself. It is either a redundant statement that should be removed, or it is a mistake where some other value was intended in the assignment.","title":"Reason"},{"location":"4-language-usage/2-variables-and-types/1-general/g-2145/#example-bad","text":"1 2 3 4 5 6 7 8 9 10 11 12 declare co_parallel_degree constant types_up . name % type : = 'parallel_degree' ; l_function_result pls_integer ; l_parallel_degree pls_integer ; begin l_function_result : = maintenance . get_config ( co_parallel_degree ); if l_function_result is not null then l_parallel_degree : = l_parallel_degree ; do_something ( l_parallel_degree ); end if ; end ; /","title":"Example (bad)"},{"location":"4-language-usage/2-variables-and-types/1-general/g-2145/#example-good","text":"1 2 3 4 5 6 7 8 9 10 11 12 declare co_parallel_degree constant types_up . name % type : = 'parallel_degree' ; l_function_result pls_integer ; l_parallel_degree pls_integer ; begin l_function_result : = maintenance . get_config ( co_parallel_degree ); if l_function_result is not null then l_parallel_degree : = l_function_result ; do_something ( l_parallel_degree ); end if ; end ; /","title":"Example (good)"},{"location":"4-language-usage/2-variables-and-types/1-general/g-2150/","text":"G-2150: Avoid comparisons with NULL value, consider using IS [NOT] NULL. Blocker Portability, Reliability Reason The null value can cause confusion both from the standpoint of code review and code execution. You must always use the is null or is not null syntax when you need to check if a value is or is not null . Example (bad) 1 2 3 4 5 6 7 8 declare l_value integer ; begin if l_value = null then null ; end if ; end ; / Example (good) 1 2 3 4 5 6 7 8 declare l_value integer ; begin if l_value is null then null ; end if ; end ; /","title":"G-2150: Avoid comparisons with NULL value, consider using IS [NOT] NULL."},{"location":"4-language-usage/2-variables-and-types/1-general/g-2150/#g-2150-avoid-comparisons-with-null-value-consider-using-is-not-null","text":"Blocker Portability, Reliability","title":"G-2150: Avoid comparisons with NULL value, consider using IS [NOT] NULL."},{"location":"4-language-usage/2-variables-and-types/1-general/g-2150/#reason","text":"The null value can cause confusion both from the standpoint of code review and code execution. You must always use the is null or is not null syntax when you need to check if a value is or is not null .","title":"Reason"},{"location":"4-language-usage/2-variables-and-types/1-general/g-2150/#example-bad","text":"1 2 3 4 5 6 7 8 declare l_value integer ; begin if l_value = null then null ; end if ; end ; /","title":"Example (bad)"},{"location":"4-language-usage/2-variables-and-types/1-general/g-2150/#example-good","text":"1 2 3 4 5 6 7 8 declare l_value integer ; begin if l_value is null then null ; end if ; end ; /","title":"Example (good)"},{"location":"4-language-usage/2-variables-and-types/1-general/g-2160/","text":"G-2160: Avoid initializing variables using functions in the declaration section. Critical Reliability Reason If your initialization fails, you will not be able to handle the error in your exceptions block. Example (bad) 1 2 3 4 5 6 7 8 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 ; / Example (good) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 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 ; /","title":"G-2160: Avoid initializing variables using functions in the declaration section."},{"location":"4-language-usage/2-variables-and-types/1-general/g-2160/#g-2160-avoid-initializing-variables-using-functions-in-the-declaration-section","text":"Critical Reliability","title":"G-2160: Avoid initializing variables using functions in the declaration section."},{"location":"4-language-usage/2-variables-and-types/1-general/g-2160/#reason","text":"If your initialization fails, you will not be able to handle the error in your exceptions block.","title":"Reason"},{"location":"4-language-usage/2-variables-and-types/1-general/g-2160/#example-bad","text":"1 2 3 4 5 6 7 8 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 ; /","title":"Example (bad)"},{"location":"4-language-usage/2-variables-and-types/1-general/g-2160/#example-good","text":"1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 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 ; /","title":"Example (good)"},{"location":"4-language-usage/2-variables-and-types/1-general/g-2170/","text":"G-2170: Never overload variables. Major Reliability Reason The readability of your code will be higher when you do not overload variables. Example (bad) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 begin << main >> declare co_main constant user_objects . object_name % type : = 'test_main' ; co_sub constant user_objects . object_name % type : = 'test_sub' ; co_sep constant user_objects . object_name % type : = ' - ' ; l_variable user_objects . object_name % type : = co_main ; begin << sub >> declare l_variable user_objects . object_name % type : = co_sub ; begin sys . dbms_output . put_line ( l_variable || co_sep || main . l_variable ); end sub ; end main ; end ; / Example (good) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 begin << main >> declare co_main constant user_objects . object_name % type : = 'test_main' ; co_sub constant user_objects . object_name % type : = 'test_sub' ; co_sep constant user_objects . object_name % type : = ' - ' ; l_main_variable user_objects . object_name % type : = co_main ; begin << sub >> declare l_sub_variable user_objects . object_name % type : = co_sub ; begin sys . dbms_output . put_line ( l_sub_variable || co_sep || l_main_variable ); end sub ; end main ; end ; /","title":"G-2170: Never overload variables."},{"location":"4-language-usage/2-variables-and-types/1-general/g-2170/#g-2170-never-overload-variables","text":"Major Reliability","title":"G-2170: Never overload variables."},{"location":"4-language-usage/2-variables-and-types/1-general/g-2170/#reason","text":"The readability of your code will be higher when you do not overload variables.","title":"Reason"},{"location":"4-language-usage/2-variables-and-types/1-general/g-2170/#example-bad","text":"1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 begin << main >> declare co_main constant user_objects . object_name % type : = 'test_main' ; co_sub constant user_objects . object_name % type : = 'test_sub' ; co_sep constant user_objects . object_name % type : = ' - ' ; l_variable user_objects . object_name % type : = co_main ; begin << sub >> declare l_variable user_objects . object_name % type : = co_sub ; begin sys . dbms_output . put_line ( l_variable || co_sep || main . l_variable ); end sub ; end main ; end ; /","title":"Example (bad)"},{"location":"4-language-usage/2-variables-and-types/1-general/g-2170/#example-good","text":"1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 begin << main >> declare co_main constant user_objects . object_name % type : = 'test_main' ; co_sub constant user_objects . object_name % type : = 'test_sub' ; co_sep constant user_objects . object_name % type : = ' - ' ; l_main_variable user_objects . object_name % type : = co_main ; begin << sub >> declare l_sub_variable user_objects . object_name % type : = co_sub ; begin sys . dbms_output . put_line ( l_sub_variable || co_sep || l_main_variable ); end sub ; end main ; end ; /","title":"Example (good)"},{"location":"4-language-usage/2-variables-and-types/1-general/g-2180/","text":"G-2180: Never use quoted identifiers. Major Maintainability Reason Quoted identifiers make your code hard to read and maintain. Example (bad) 1 2 3 4 5 6 7 8 9 10 11 12 declare \"sal+comm\" integer ; -- violates also naming conventions (G-9102) \"my constant\" constant integer : = 1 ; -- violates also naming conventions (G-9114) \"my exception\" exception ; -- violates also naming conventsion (G-9113) begin \"sal+comm\" : = \"my constant\" ; do_something ( \"sal+comm\" ); exception when \"my exception\" then null ; end ; / Example (good) 1 2 3 4 5 6 7 8 9 10 11 12 declare l_sal_comm integer ; co_my_constant constant integer : = 1 ; e_my_exception exception ; begin l_sal_comm : = co_my_constant ; do_something ( l_sal_comm ); exception when e_my_exception then null ; end ; /","title":"G-2180: Never use quoted identifiers."},{"location":"4-language-usage/2-variables-and-types/1-general/g-2180/#g-2180-never-use-quoted-identifiers","text":"Major Maintainability","title":"G-2180: Never use quoted identifiers."},{"location":"4-language-usage/2-variables-and-types/1-general/g-2180/#reason","text":"Quoted identifiers make your code hard to read and maintain.","title":"Reason"},{"location":"4-language-usage/2-variables-and-types/1-general/g-2180/#example-bad","text":"1 2 3 4 5 6 7 8 9 10 11 12 declare \"sal+comm\" integer ; -- violates also naming conventions (G-9102) \"my constant\" constant integer : = 1 ; -- violates also naming conventions (G-9114) \"my exception\" exception ; -- violates also naming conventsion (G-9113) begin \"sal+comm\" : = \"my constant\" ; do_something ( \"sal+comm\" ); exception when \"my exception\" then null ; end ; /","title":"Example (bad)"},{"location":"4-language-usage/2-variables-and-types/1-general/g-2180/#example-good","text":"1 2 3 4 5 6 7 8 9 10 11 12 declare l_sal_comm integer ; co_my_constant constant integer : = 1 ; e_my_exception exception ; begin l_sal_comm : = co_my_constant ; do_something ( l_sal_comm ); exception when e_my_exception then null ; end ; /","title":"Example (good)"},{"location":"4-language-usage/2-variables-and-types/1-general/g-2185/","text":"G-2185: Avoid using overly short names for explicitly or implicitly declared identifiers. Major Maintainability Reason You should ensure that the name you have chosen well defines its purpose and usage. While you can save a few keystrokes typing very short names, the resulting code is obscure and hard for anyone besides the author to understand. Example (bad) 1 2 3 4 5 6 7 8 9 10 11 12 declare i integer ; c constant integer : = 1 ; -- violates also naming conventions (G-9114) e exception ; -- violates also naming conventions (G-9113) begin i : = c ; do_something ( i ); exception when e then null ; end ; / Example (good) 1 2 3 4 5 6 7 8 9 10 11 12 declare l_sal_comm integer ; co_my_constant constant integer : = 1 ; e_my_exception exception ; begin l_sal_comm : = co_my_constant ; do_something ( l_sal_comm ); exception when e_my_exception then null ; end ; /","title":"G-2185: Avoid using overly short names for explicitly or implicitly declared identifiers."},{"location":"4-language-usage/2-variables-and-types/1-general/g-2185/#g-2185-avoid-using-overly-short-names-for-explicitly-or-implicitly-declared-identifiers","text":"Major Maintainability","title":"G-2185: Avoid using overly short names for explicitly or implicitly declared identifiers."},{"location":"4-language-usage/2-variables-and-types/1-general/g-2185/#reason","text":"You should ensure that the name you have chosen well defines its purpose and usage. While you can save a few keystrokes typing very short names, the resulting code is obscure and hard for anyone besides the author to understand.","title":"Reason"},{"location":"4-language-usage/2-variables-and-types/1-general/g-2185/#example-bad","text":"1 2 3 4 5 6 7 8 9 10 11 12 declare i integer ; c constant integer : = 1 ; -- violates also naming conventions (G-9114) e exception ; -- violates also naming conventions (G-9113) begin i : = c ; do_something ( i ); exception when e then null ; end ; /","title":"Example (bad)"},{"location":"4-language-usage/2-variables-and-types/1-general/g-2185/#example-good","text":"1 2 3 4 5 6 7 8 9 10 11 12 declare l_sal_comm integer ; co_my_constant constant integer : = 1 ; e_my_exception exception ; begin l_sal_comm : = co_my_constant ; do_something ( l_sal_comm ); exception when e_my_exception then null ; end ; /","title":"Example (good)"},{"location":"4-language-usage/2-variables-and-types/1-general/g-2190/","text":"G-2190: Avoid using ROWID or UROWID. Blocker Portability, Reliability Reason Be careful about your use of Oracle Database specific data types like rowid and urowid . They might offer a slight improvement in performance over other means of identifying a single row (primary key or unique index value), but that is by no means guaranteed. Use of rowid or urowid means that your SQL statement will not be portable to other SQL databases. Many developers are also not familiar with these data types, which can make the code harder to maintain. Example (bad) 1 2 3 4 5 6 7 8 9 declare l_department_name departments . department_name % type ; l_rowid rowid ; begin update departments set department_name = l_department_name where rowid = l_rowid ; end ; / Example (good) 1 2 3 4 5 6 7 8 9 declare l_department_name departments . department_name % type ; l_department_id departments . department_id % type ; begin update departments set department_name = l_department_name where department_id = l_department_id ; end ; /","title":"G-2190: Avoid using ROWID or UROWID."},{"location":"4-language-usage/2-variables-and-types/1-general/g-2190/#g-2190-avoid-using-rowid-or-urowid","text":"Blocker Portability, Reliability","title":"G-2190: Avoid using ROWID or UROWID."},{"location":"4-language-usage/2-variables-and-types/1-general/g-2190/#reason","text":"Be careful about your use of Oracle Database specific data types like rowid and urowid . They might offer a slight improvement in performance over other means of identifying a single row (primary key or unique index value), but that is by no means guaranteed. Use of rowid or urowid means that your SQL statement will not be portable to other SQL databases. Many developers are also not familiar with these data types, which can make the code harder to maintain.","title":"Reason"},{"location":"4-language-usage/2-variables-and-types/1-general/g-2190/#example-bad","text":"1 2 3 4 5 6 7 8 9 declare l_department_name departments . department_name % type ; l_rowid rowid ; begin update departments set department_name = l_department_name where rowid = l_rowid ; end ; /","title":"Example (bad)"},{"location":"4-language-usage/2-variables-and-types/1-general/g-2190/#example-good","text":"1 2 3 4 5 6 7 8 9 declare l_department_name departments . department_name % type ; l_department_id departments . department_id % type ; begin update departments set department_name = l_department_name where department_id = l_department_id ; end ; /","title":"Example (good)"},{"location":"4-language-usage/2-variables-and-types/2-numeric-data-types/g-2210/","text":"G-2210: Avoid declaring NUMBER variables, constants or subtypes with no precision. Critical Efficiency Reason If you do not specify precision number is defaulted to 38 or the maximum supported by your system, whichever is less. You may well need all this precision, but if you know you do not, you should specify whatever matches your needs. Also, consider using a simpler data type that uses fewer resources, such as pls_integer . Example (bad) 1 2 3 4 create or replace package types_up is subtype salary_type is number ; end types_up ; / Example (good) 1 2 3 4 create or replace package types_up is subtype salary_type is number ( 5 , 1 ); end types_up ; /","title":"G-2210: Avoid declaring NUMBER variables, constants or subtypes with no precision."},{"location":"4-language-usage/2-variables-and-types/2-numeric-data-types/g-2210/#g-2210-avoid-declaring-number-variables-constants-or-subtypes-with-no-precision","text":"Critical Efficiency","title":"G-2210: Avoid declaring NUMBER variables, constants or subtypes with no precision."},{"location":"4-language-usage/2-variables-and-types/2-numeric-data-types/g-2210/#reason","text":"If you do not specify precision number is defaulted to 38 or the maximum supported by your system, whichever is less. You may well need all this precision, but if you know you do not, you should specify whatever matches your needs. Also, consider using a simpler data type that uses fewer resources, such as pls_integer .","title":"Reason"},{"location":"4-language-usage/2-variables-and-types/2-numeric-data-types/g-2210/#example-bad","text":"1 2 3 4 create or replace package types_up is subtype salary_type is number ; end types_up ; /","title":"Example (bad)"},{"location":"4-language-usage/2-variables-and-types/2-numeric-data-types/g-2210/#example-good","text":"1 2 3 4 create or replace package types_up is subtype salary_type is number ( 5 , 1 ); end types_up ; /","title":"Example (good)"},{"location":"4-language-usage/2-variables-and-types/2-numeric-data-types/g-2220/","text":"G-2220: Try to use PLS_INTEGER instead of NUMBER for arithmetic operations with integer values. Critical Efficiency Reason pls_integer having a length of -2,147,483,648 to 2,147,483,647, on a 32bit system. There are many reasons to use pls_integer instead of number : pls_integer uses less memory pls_integer uses machine arithmetic, which is up to three times faster than library arithmetic, which is used by number . Example (bad) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 declare l_result number ( 9 , 0 ) : = 0 ; -- violates also G-2130, G-2230 co_upper_bound constant pls_integer : = 1 e8 ; begin << burning_cpu >> for i in 1 .. co_upper_bound loop if i > 0 then l_result : = l_result + 1 ; end if ; end loop burning_cpu ; sys . dbms_output . put_line ( l_result ); end ; / Example (good) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 declare l_result pls_integer : = 0 ; co_upper_bound constant pls_integer : = 1 e8 ; begin << burning_less_cpu >> for i in 1 .. co_upper_bound loop if i > 0 then l_result : = l_result + 1 ; end if ; end loop burning_less_cpu ; sys . dbms_output . put_line ( l_result ); end ; /","title":"G-2220: Try to use PLS_INTEGER instead of NUMBER for arithmetic operations with integer values."},{"location":"4-language-usage/2-variables-and-types/2-numeric-data-types/g-2220/#g-2220-try-to-use-pls_integer-instead-of-number-for-arithmetic-operations-with-integer-values","text":"Critical Efficiency","title":"G-2220: Try to use PLS_INTEGER instead of NUMBER for arithmetic operations with integer values."},{"location":"4-language-usage/2-variables-and-types/2-numeric-data-types/g-2220/#reason","text":"pls_integer having a length of -2,147,483,648 to 2,147,483,647, on a 32bit system. There are many reasons to use pls_integer instead of number : pls_integer uses less memory pls_integer uses machine arithmetic, which is up to three times faster than library arithmetic, which is used by number .","title":"Reason"},{"location":"4-language-usage/2-variables-and-types/2-numeric-data-types/g-2220/#example-bad","text":"1 2 3 4 5 6 7 8 9 10 11 12 13 14 declare l_result number ( 9 , 0 ) : = 0 ; -- violates also G-2130, G-2230 co_upper_bound constant pls_integer : = 1 e8 ; begin << burning_cpu >> for i in 1 .. co_upper_bound loop if i > 0 then l_result : = l_result + 1 ; end if ; end loop burning_cpu ; sys . dbms_output . put_line ( l_result ); end ; /","title":"Example (bad)"},{"location":"4-language-usage/2-variables-and-types/2-numeric-data-types/g-2220/#example-good","text":"1 2 3 4 5 6 7 8 9 10 11 12 13 14 declare l_result pls_integer : = 0 ; co_upper_bound constant pls_integer : = 1 e8 ; begin << burning_less_cpu >> for i in 1 .. co_upper_bound loop if i > 0 then l_result : = l_result + 1 ; end if ; end loop burning_less_cpu ; sys . dbms_output . put_line ( l_result ); end ; /","title":"Example (good)"},{"location":"4-language-usage/2-variables-and-types/2-numeric-data-types/g-2230/","text":"G-2230: Try to use SIMPLE_INTEGER datatype when appropriate. Critical Efficiency Reason simple_integer does no checks on numeric overflow, which results in better performance compared to the other numeric datatypes. With Oracle Database 11g, the new data type simple_integer has been introduced. It is a sub-type of pls_integer and covers the same range. The basic difference is that simple_integer is always not null . When the value of the declared variable is never going to be null then you can declare it as simple_integer . Another major difference is that you will never face a numeric overflow using simple_integer as this data type wraps around without giving any error. simple_integer data type gives major performance boost over pls_integer when code is compiled in native mode, because arithmetic operations on simple_integer type are performed directly at the hardware level. Example (bad) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 declare l_result number ( 9 , 0 ) : = 0 ; -- violates also G-2130, G-2220 co_upper_bound constant pls_integer : = 1 e8 ; begin << burning_cpu >> for i in 1 .. co_upper_bound loop if i > 0 then l_result : = l_result + 1 ; end if ; end loop burning_cpu ; sys . dbms_output . put_line ( l_result ); end ; / Example (good) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 declare l_result simple_integer : = 0 ; co_upper_bound constant pls_integer : = 1 e8 ; begin << burning_cpu >> for i in 1 .. co_upper_bound loop if i > 0 then l_result : = l_result + 1 ; end if ; end loop burning_cpu ; sys . dbms_output . put_line ( l_result ); end ; /","title":"G-2230: Try to use SIMPLE_INTEGER datatype when appropriate."},{"location":"4-language-usage/2-variables-and-types/2-numeric-data-types/g-2230/#g-2230-try-to-use-simple_integer-datatype-when-appropriate","text":"Critical Efficiency","title":"G-2230: Try to use SIMPLE_INTEGER datatype when appropriate."},{"location":"4-language-usage/2-variables-and-types/2-numeric-data-types/g-2230/#reason","text":"simple_integer does no checks on numeric overflow, which results in better performance compared to the other numeric datatypes. With Oracle Database 11g, the new data type simple_integer has been introduced. It is a sub-type of pls_integer and covers the same range. The basic difference is that simple_integer is always not null . When the value of the declared variable is never going to be null then you can declare it as simple_integer . Another major difference is that you will never face a numeric overflow using simple_integer as this data type wraps around without giving any error. simple_integer data type gives major performance boost over pls_integer when code is compiled in native mode, because arithmetic operations on simple_integer type are performed directly at the hardware level.","title":"Reason"},{"location":"4-language-usage/2-variables-and-types/2-numeric-data-types/g-2230/#example-bad","text":"1 2 3 4 5 6 7 8 9 10 11 12 13 14 declare l_result number ( 9 , 0 ) : = 0 ; -- violates also G-2130, G-2220 co_upper_bound constant pls_integer : = 1 e8 ; begin << burning_cpu >> for i in 1 .. co_upper_bound loop if i > 0 then l_result : = l_result + 1 ; end if ; end loop burning_cpu ; sys . dbms_output . put_line ( l_result ); end ; /","title":"Example (bad)"},{"location":"4-language-usage/2-variables-and-types/2-numeric-data-types/g-2230/#example-good","text":"1 2 3 4 5 6 7 8 9 10 11 12 13 14 declare l_result simple_integer : = 0 ; co_upper_bound constant pls_integer : = 1 e8 ; begin << burning_cpu >> for i in 1 .. co_upper_bound loop if i > 0 then l_result : = l_result + 1 ; end if ; end loop burning_cpu ; sys . dbms_output . put_line ( l_result ); end ; /","title":"Example (good)"},{"location":"4-language-usage/2-variables-and-types/3-character-data-types/g-2310/","text":"G-2310: Avoid using CHAR data type. Blocker Reliability Reason char is a fixed length data type, which should only be used when appropriate. char columns/variables are always filled to its specified lengths; this may lead to unwanted side effects and undesired results. Example (bad) 1 2 3 4 5 create or replace package types_up is subtype description_type is char ( 200 ); end types_up ; / Unexpected trailing spaces can lead to wrong results. 1 2 3 4 5 6 7 8 9 with dept as ( select cast ( department_name as varchar2 ( 30 char )) as dname_vc2 , cast ( department_name as char ( 30 char )) as dname_char from departments ) select count ( * ) from dept where dname_vc2 = dname_char ; 1 2 3 COUNT(*) ---------- 0 Example (good) 1 2 3 4 5 create or replace package types_up is subtype description_type is varchar2 ( 200 char ); end types_up ; /","title":"G-2310: Avoid using CHAR data type."},{"location":"4-language-usage/2-variables-and-types/3-character-data-types/g-2310/#g-2310-avoid-using-char-data-type","text":"Blocker Reliability","title":"G-2310: Avoid using CHAR data type."},{"location":"4-language-usage/2-variables-and-types/3-character-data-types/g-2310/#reason","text":"char is a fixed length data type, which should only be used when appropriate. char columns/variables are always filled to its specified lengths; this may lead to unwanted side effects and undesired results.","title":"Reason"},{"location":"4-language-usage/2-variables-and-types/3-character-data-types/g-2310/#example-bad","text":"1 2 3 4 5 create or replace package types_up is subtype description_type is char ( 200 ); end types_up ; / Unexpected trailing spaces can lead to wrong results. 1 2 3 4 5 6 7 8 9 with dept as ( select cast ( department_name as varchar2 ( 30 char )) as dname_vc2 , cast ( department_name as char ( 30 char )) as dname_char from departments ) select count ( * ) from dept where dname_vc2 = dname_char ; 1 2 3 COUNT(*) ---------- 0","title":"Example (bad)"},{"location":"4-language-usage/2-variables-and-types/3-character-data-types/g-2310/#example-good","text":"1 2 3 4 5 create or replace package types_up is subtype description_type is varchar2 ( 200 char ); end types_up ; /","title":"Example (good)"},{"location":"4-language-usage/2-variables-and-types/3-character-data-types/g-2320/","text":"G-2320: Never use VARCHAR data type. Blocker Portability, Reliability Reason Do not use the varchar data type. Use the varchar2 data type instead. Although the varchar data type is currently synonymous with varchar2 , the varchar data type is scheduled to be redefined as a separate data type used for variable-length character strings compared with different comparison semantics. Example (bad) 1 2 3 4 create or replace package types_up is subtype description_type is varchar ( 200 ); end types_up ; / Example (good) 1 2 3 4 create or replace package types_up is subtype description_type is varchar2 ( 200 char ); end types_up ; /","title":"G-2320: Never use VARCHAR data type."},{"location":"4-language-usage/2-variables-and-types/3-character-data-types/g-2320/#g-2320-never-use-varchar-data-type","text":"Blocker Portability, Reliability","title":"G-2320: Never use VARCHAR data type."},{"location":"4-language-usage/2-variables-and-types/3-character-data-types/g-2320/#reason","text":"Do not use the varchar data type. Use the varchar2 data type instead. Although the varchar data type is currently synonymous with varchar2 , the varchar data type is scheduled to be redefined as a separate data type used for variable-length character strings compared with different comparison semantics.","title":"Reason"},{"location":"4-language-usage/2-variables-and-types/3-character-data-types/g-2320/#example-bad","text":"1 2 3 4 create or replace package types_up is subtype description_type is varchar ( 200 ); end types_up ; /","title":"Example (bad)"},{"location":"4-language-usage/2-variables-and-types/3-character-data-types/g-2320/#example-good","text":"1 2 3 4 create or replace package types_up is subtype description_type is varchar2 ( 200 char ); end types_up ; /","title":"Example (good)"},{"location":"4-language-usage/2-variables-and-types/3-character-data-types/g-2330/","text":"G-2330: Never use zero-length strings to substitute NULL. Blocker Portability, Reliability Reason Today zero-length strings and null are currently handled identical by the Oracle Database. There is no guarantee that this will still be the case in future releases, therefore if you mean null use null . Example (bad) 1 2 3 4 5 6 7 8 9 10 11 create or replace package body constants_up is co_null_string constant types_up . text : = '' ; function null_string return varchar2 deterministic is begin return co_null_string ; end null_string ; end constants_up ; / Example (good) 1 2 3 4 5 6 7 8 9 create or replace package body constants_up is function empty_string return varchar2 deterministic is begin return null ; end empty_string ; end constants_up ; /","title":"G-2330: Never use zero-length strings to substitute NULL."},{"location":"4-language-usage/2-variables-and-types/3-character-data-types/g-2330/#g-2330-never-use-zero-length-strings-to-substitute-null","text":"Blocker Portability, Reliability","title":"G-2330: Never use zero-length strings to substitute NULL."},{"location":"4-language-usage/2-variables-and-types/3-character-data-types/g-2330/#reason","text":"Today zero-length strings and null are currently handled identical by the Oracle Database. There is no guarantee that this will still be the case in future releases, therefore if you mean null use null .","title":"Reason"},{"location":"4-language-usage/2-variables-and-types/3-character-data-types/g-2330/#example-bad","text":"1 2 3 4 5 6 7 8 9 10 11 create or replace package body constants_up is co_null_string constant types_up . text : = '' ; function null_string return varchar2 deterministic is begin return co_null_string ; end null_string ; end constants_up ; /","title":"Example (bad)"},{"location":"4-language-usage/2-variables-and-types/3-character-data-types/g-2330/#example-good","text":"1 2 3 4 5 6 7 8 9 create or replace package body constants_up is function empty_string return varchar2 deterministic is begin return null ; end empty_string ; end constants_up ; /","title":"Example (good)"},{"location":"4-language-usage/2-variables-and-types/3-character-data-types/g-2340/","text":"G-2340: Always define your VARCHAR2 variables using CHAR SEMANTIC (if not defined anchored). Blocker Reliability Reason Changes to the nls_length_semantic will only be picked up by your code after a recompilation. In a multibyte environment a varchar2(10) definition may not necessarily hold 10 characters when multibyte characters are part of the value that should be stored, unless the definition was done using the char semantic. Example (bad) 1 2 3 4 create or replace package types_up is subtype description_type is varchar2 ( 200 ); end types_up ; / Example (good) 1 2 3 4 create or replace package types_up is subtype description_type is varchar2 ( 200 char ); end types_up ; /","title":"G-2340: Always define your VARCHAR2 variables using CHAR SEMANTIC (if not defined anchored)."},{"location":"4-language-usage/2-variables-and-types/3-character-data-types/g-2340/#g-2340-always-define-your-varchar2-variables-using-char-semantic-if-not-defined-anchored","text":"Blocker Reliability","title":"G-2340: Always define your VARCHAR2 variables using CHAR SEMANTIC (if not defined anchored)."},{"location":"4-language-usage/2-variables-and-types/3-character-data-types/g-2340/#reason","text":"Changes to the nls_length_semantic will only be picked up by your code after a recompilation. In a multibyte environment a varchar2(10) definition may not necessarily hold 10 characters when multibyte characters are part of the value that should be stored, unless the definition was done using the char semantic.","title":"Reason"},{"location":"4-language-usage/2-variables-and-types/3-character-data-types/g-2340/#example-bad","text":"1 2 3 4 create or replace package types_up is subtype description_type is varchar2 ( 200 ); end types_up ; /","title":"Example (bad)"},{"location":"4-language-usage/2-variables-and-types/3-character-data-types/g-2340/#example-good","text":"1 2 3 4 create or replace package types_up is subtype description_type is varchar2 ( 200 char ); end types_up ; /","title":"Example (good)"},{"location":"4-language-usage/2-variables-and-types/4-boolean-data-types/g-2410/","text":"G-2410: Try to use boolean data type for values with dual meaning. Minor Maintainability Reason The use of true and false clarifies that this is a boolean value and makes the code easier to read. Example (bad) 1 2 3 4 5 6 7 8 9 10 11 12 13 declare co_newfile constant pls_integer : = 1000 ; co_oldfile constant pls_integer : = 500 ; l_bigger pls_integer ; begin if co_newfile < co_oldfile then l_bigger : = constants_up . co_numeric_true ; else l_bigger : = constants_up . co_numeric_false ; end if ; do_something ( l_bigger ); end ; / Example (better) 1 2 3 4 5 6 7 8 9 10 11 12 13 declare co_newfile constant pls_integer : = 1000 ; co_oldfile constant pls_integer : = 500 ; l_bigger boolean ; begin if co_newfile < co_oldfile then l_bigger : = true ; else l_bigger : = false ; end if ; do_something ( l_bigger ); end ; / Example (good) 1 2 3 4 5 6 7 8 9 declare co_newfile constant pls_integer : = 1000 ; co_oldfile constant pls_integer : = 500 ; l_bigger boolean ; begin l_bigger : = nvl ( co_newfile < co_oldfile , false ); do_something ( l_bigger ); end ; /","title":"G-2410: Try to use boolean data type for values with dual meaning."},{"location":"4-language-usage/2-variables-and-types/4-boolean-data-types/g-2410/#g-2410-try-to-use-boolean-data-type-for-values-with-dual-meaning","text":"Minor Maintainability","title":"G-2410: Try to use boolean data type for values with dual meaning."},{"location":"4-language-usage/2-variables-and-types/4-boolean-data-types/g-2410/#reason","text":"The use of true and false clarifies that this is a boolean value and makes the code easier to read.","title":"Reason"},{"location":"4-language-usage/2-variables-and-types/4-boolean-data-types/g-2410/#example-bad","text":"1 2 3 4 5 6 7 8 9 10 11 12 13 declare co_newfile constant pls_integer : = 1000 ; co_oldfile constant pls_integer : = 500 ; l_bigger pls_integer ; begin if co_newfile < co_oldfile then l_bigger : = constants_up . co_numeric_true ; else l_bigger : = constants_up . co_numeric_false ; end if ; do_something ( l_bigger ); end ; /","title":"Example (bad)"},{"location":"4-language-usage/2-variables-and-types/4-boolean-data-types/g-2410/#example-better","text":"1 2 3 4 5 6 7 8 9 10 11 12 13 declare co_newfile constant pls_integer : = 1000 ; co_oldfile constant pls_integer : = 500 ; l_bigger boolean ; begin if co_newfile < co_oldfile then l_bigger : = true ; else l_bigger : = false ; end if ; do_something ( l_bigger ); end ; /","title":"Example (better)"},{"location":"4-language-usage/2-variables-and-types/4-boolean-data-types/g-2410/#example-good","text":"1 2 3 4 5 6 7 8 9 declare co_newfile constant pls_integer : = 1000 ; co_oldfile constant pls_integer : = 500 ; l_bigger boolean ; begin l_bigger : = nvl ( co_newfile < co_oldfile , false ); do_something ( l_bigger ); end ; /","title":"Example (good)"},{"location":"4-language-usage/2-variables-and-types/5-large-objects/g-2510/","text":"G-2510: Avoid using the LONG and LONG RAW data types. Major Portability Reason long and long raw data types have been deprecated by the Oracle Database since version 8i - support might be discontinued in future Oracle Database releases. There are many constraints to long datatypes in comparison to the lob types. Example (bad) 1 2 3 4 5 6 7 8 declare l_long long ; -- violates also G-2130 l_raw long raw ; -- violates also G-2130 begin do_something ( l_long ); do_something ( l_raw ); end ; / Example (good) 1 2 3 4 5 6 7 8 declare l_long clob ; l_raw blob ; begin do_something ( l_long ); do_something ( l_raw ); end ; /","title":"G-2510: Avoid using the LONG and LONG RAW data types."},{"location":"4-language-usage/2-variables-and-types/5-large-objects/g-2510/#g-2510-avoid-using-the-long-and-long-raw-data-types","text":"Major Portability","title":"G-2510: Avoid using the LONG and LONG RAW data types."},{"location":"4-language-usage/2-variables-and-types/5-large-objects/g-2510/#reason","text":"long and long raw data types have been deprecated by the Oracle Database since version 8i - support might be discontinued in future Oracle Database releases. There are many constraints to long datatypes in comparison to the lob types.","title":"Reason"},{"location":"4-language-usage/2-variables-and-types/5-large-objects/g-2510/#example-bad","text":"1 2 3 4 5 6 7 8 declare l_long long ; -- violates also G-2130 l_raw long raw ; -- violates also G-2130 begin do_something ( l_long ); do_something ( l_raw ); end ; /","title":"Example (bad)"},{"location":"4-language-usage/2-variables-and-types/5-large-objects/g-2510/#example-good","text":"1 2 3 4 5 6 7 8 declare l_long clob ; l_raw blob ; begin do_something ( l_long ); do_something ( l_raw ); end ; /","title":"Example (good)"},{"location":"4-language-usage/2-variables-and-types/6-cursor-variables/g-2610/","text":"G-2610: Never use self-defined weak ref cursor types. Minor Changeability, Maintainability, Portability, Reusability Reason There is no reason to define your own weak ref cursor types, as they are not different from the built-in sys_refcursor . Introducing your own types just gives you unnecessary maintenance to perform. Example (bad) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 declare type local_weak_cursor_type is ref cursor ; c_data local_weak_cursor_type ; begin if configuration . use_employee then open c_data for select e . employee_id , e . first_name , e . last_name from employees e ; else open c_data for select e . emp_id , e . name from emp e ; end if ; end ; / Example (good) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 declare c_data sys_refcursor ; begin if configuration . use_employee then open c_data for select e . employee_id , e . first_name , e . last_name from employees e ; else open c_data for select e . emp_id , e . name from emp e ; end if ; end ; /","title":"G-2610: Never use self-defined weak ref cursor types."},{"location":"4-language-usage/2-variables-and-types/6-cursor-variables/g-2610/#g-2610-never-use-self-defined-weak-ref-cursor-types","text":"Minor Changeability, Maintainability, Portability, Reusability","title":"G-2610: Never use self-defined weak ref cursor types."},{"location":"4-language-usage/2-variables-and-types/6-cursor-variables/g-2610/#reason","text":"There is no reason to define your own weak ref cursor types, as they are not different from the built-in sys_refcursor . Introducing your own types just gives you unnecessary maintenance to perform.","title":"Reason"},{"location":"4-language-usage/2-variables-and-types/6-cursor-variables/g-2610/#example-bad","text":"1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 declare type local_weak_cursor_type is ref cursor ; c_data local_weak_cursor_type ; begin if configuration . use_employee then open c_data for select e . employee_id , e . first_name , e . last_name from employees e ; else open c_data for select e . emp_id , e . name from emp e ; end if ; end ; /","title":"Example (bad)"},{"location":"4-language-usage/2-variables-and-types/6-cursor-variables/g-2610/#example-good","text":"1 2 3 4 5 6 7 8 9 10 11 12 13 14 declare c_data sys_refcursor ; begin if configuration . use_employee then open c_data for select e . employee_id , e . first_name , e . last_name from employees e ; else open c_data for select e . emp_id , e . name from emp e ; end if ; end ; /","title":"Example (good)"},{"location":"4-language-usage/3-dml-and-sql/1-general/g-3110/","text":"G-3110: Always specify the target columns when coding an insert statement. Blocker Maintainability, Reliability Reason Data structures often change. Having the target columns in your insert statements will lead to change-resistant code. Example (bad) 1 2 3 4 5 6 7 8 9 10 11 12 13 create or replace package body dept_api is procedure ins_dept ( in_dept_row in dept % rowtype ) is begin insert into departments values ( departments_seq . nextval , in_dept_row . department_name , in_dept_row . manager_id , in_dept_row . location_id ); end ins_dept ; end dept_api ; / Example (good) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 create or replace package body dept_api is procedure ins_dept ( in_dept_row in dept % rowtype ) is begin insert into departments ( department_id , department_name , manager_id , location_id ) values ( departments_seq . nextval , in_dept_row . department_name , in_dept_row . manager_id , in_dept_row . location_id ); end ins_dept ; end dept_api ; /","title":"G-3110: Always specify the target columns when coding an insert statement."},{"location":"4-language-usage/3-dml-and-sql/1-general/g-3110/#g-3110-always-specify-the-target-columns-when-coding-an-insert-statement","text":"Blocker Maintainability, Reliability","title":"G-3110: Always specify the target columns when coding an insert statement."},{"location":"4-language-usage/3-dml-and-sql/1-general/g-3110/#reason","text":"Data structures often change. Having the target columns in your insert statements will lead to change-resistant code.","title":"Reason"},{"location":"4-language-usage/3-dml-and-sql/1-general/g-3110/#example-bad","text":"1 2 3 4 5 6 7 8 9 10 11 12 13 create or replace package body dept_api is procedure ins_dept ( in_dept_row in dept % rowtype ) is begin insert into departments values ( departments_seq . nextval , in_dept_row . department_name , in_dept_row . manager_id , in_dept_row . location_id ); end ins_dept ; end dept_api ; /","title":"Example (bad)"},{"location":"4-language-usage/3-dml-and-sql/1-general/g-3110/#example-good","text":"1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 create or replace package body dept_api is procedure ins_dept ( in_dept_row in dept % rowtype ) is begin insert into departments ( department_id , department_name , manager_id , location_id ) values ( departments_seq . nextval , in_dept_row . department_name , in_dept_row . manager_id , in_dept_row . location_id ); end ins_dept ; end dept_api ; /","title":"Example (good)"},{"location":"4-language-usage/3-dml-and-sql/1-general/g-3115/","text":"G-3115: Avoid self-assigning a column. Blocker Maintainability Reason There is normally no reason to assign a column to itself. It is either a redundant statement that should be removed, or it is a mistake where some other value was intended in the assignment. One exception to this rule can be when you attempt to fire cross edition triggers when using Edition Based Redefinition. Example (bad) 1 2 update employees set first_name = first_name ; Example (good) 1 2 update employees set first_name = initcap ( first_name );","title":"G-3115: Avoid self-assigning a column."},{"location":"4-language-usage/3-dml-and-sql/1-general/g-3115/#g-3115-avoid-self-assigning-a-column","text":"Blocker Maintainability","title":"G-3115: Avoid self-assigning a column."},{"location":"4-language-usage/3-dml-and-sql/1-general/g-3115/#reason","text":"There is normally no reason to assign a column to itself. It is either a redundant statement that should be removed, or it is a mistake where some other value was intended in the assignment. One exception to this rule can be when you attempt to fire cross edition triggers when using Edition Based Redefinition.","title":"Reason"},{"location":"4-language-usage/3-dml-and-sql/1-general/g-3115/#example-bad","text":"1 2 update employees set first_name = first_name ;","title":"Example (bad)"},{"location":"4-language-usage/3-dml-and-sql/1-general/g-3115/#example-good","text":"1 2 update employees set first_name = initcap ( first_name );","title":"Example (good)"},{"location":"4-language-usage/3-dml-and-sql/1-general/g-3120/","text":"G-3120: Always use table aliases when your SQL statement involves more than one source. Blocker Maintainability Reason It is more human readable to use aliases instead of writing columns with no table information. Especially when using subqueries the omission of table aliases may end in unexpected behavior and result. Example (bad) 1 2 3 4 5 6 7 select last_name , first_name , department_name from employees join departments using ( department_id ) where extract ( month from hire_date ) = extract ( month from sysdate ); If the jobs table has no employee_id column and employees has one this query will not raise an error but return all rows of the employees table as a subquery is allowed to access columns of all its parent tables - this construct is known as correlated subquery. 1 2 3 4 5 6 7 8 select last_name , first_name from employees where employee_id in ( select employee_id from jobs where job_title like '%Manager%' -- NOSONAR: G-1050 literal is ok for a standalone query ); Example (better) 1 2 3 4 5 6 7 select e . last_name , e . first_name , d . department_name from employees e join departments d on ( e . department_id = d . department_id ) where extract ( month from e . hire_date ) = extract ( month from sysdate ); Example (good) Using meaningful aliases improves the readability of your code. 1 2 3 4 5 6 7 select emp . last_name , emp . first_name , dept . department_name from employees emp join departments dept on ( emp . department_id = dept . department_id ) where extract ( month from emp . hire_date ) = extract ( month from sysdate ); If the jobs table has no employee_id column this query will return an error due to the directive (given by adding the table alias to the column) to read the employee_id column from the jobs table. 1 2 3 4 5 6 7 8 select emp . last_name , emp . first_name from employees emp where emp . employee_id in ( select job . employee_id from jobs job where job . job_title like '%Manager%' -- NOSONAR: G-1050 literal is ok for a standalone query );","title":"G-3120: Always use table aliases when your SQL statement involves more than one source."},{"location":"4-language-usage/3-dml-and-sql/1-general/g-3120/#g-3120-always-use-table-aliases-when-your-sql-statement-involves-more-than-one-source","text":"Blocker Maintainability","title":"G-3120: Always use table aliases when your SQL statement involves more than one source."},{"location":"4-language-usage/3-dml-and-sql/1-general/g-3120/#reason","text":"It is more human readable to use aliases instead of writing columns with no table information. Especially when using subqueries the omission of table aliases may end in unexpected behavior and result.","title":"Reason"},{"location":"4-language-usage/3-dml-and-sql/1-general/g-3120/#example-bad","text":"1 2 3 4 5 6 7 select last_name , first_name , department_name from employees join departments using ( department_id ) where extract ( month from hire_date ) = extract ( month from sysdate ); If the jobs table has no employee_id column and employees has one this query will not raise an error but return all rows of the employees table as a subquery is allowed to access columns of all its parent tables - this construct is known as correlated subquery. 1 2 3 4 5 6 7 8 select last_name , first_name from employees where employee_id in ( select employee_id from jobs where job_title like '%Manager%' -- NOSONAR: G-1050 literal is ok for a standalone query );","title":"Example (bad)"},{"location":"4-language-usage/3-dml-and-sql/1-general/g-3120/#example-better","text":"1 2 3 4 5 6 7 select e . last_name , e . first_name , d . department_name from employees e join departments d on ( e . department_id = d . department_id ) where extract ( month from e . hire_date ) = extract ( month from sysdate );","title":"Example (better)"},{"location":"4-language-usage/3-dml-and-sql/1-general/g-3120/#example-good","text":"Using meaningful aliases improves the readability of your code. 1 2 3 4 5 6 7 select emp . last_name , emp . first_name , dept . department_name from employees emp join departments dept on ( emp . department_id = dept . department_id ) where extract ( month from emp . hire_date ) = extract ( month from sysdate ); If the jobs table has no employee_id column this query will return an error due to the directive (given by adding the table alias to the column) to read the employee_id column from the jobs table. 1 2 3 4 5 6 7 8 select emp . last_name , emp . first_name from employees emp where emp . employee_id in ( select job . employee_id from jobs job where job . job_title like '%Manager%' -- NOSONAR: G-1050 literal is ok for a standalone query );","title":"Example (good)"},{"location":"4-language-usage/3-dml-and-sql/1-general/g-3130/","text":"G-3130: Try to use ANSI SQL-92 join syntax. Major Maintainability, Portability Reason ANSI SQL-92 join syntax supports the full outer join. A further advantage of the ANSI SQL-92 join syntax is the separation of the join condition from the query filters. Example (bad) 1 2 3 4 5 6 7 8 select e . employee_id , e . last_name , e . first_name , d . department_name from employees e , departments d where e . department_id = d . department_id and extract ( month from e . hire_date ) = extract ( month from sysdate ); Example (good) 1 2 3 4 5 6 7 8 select emp . employee_id , emp . last_name , emp . first_name , dept . department_name from employees emp join departments dept on dept . department_id = emp . department_id where extract ( month from emp . hire_date ) = extract ( month from sysdate );","title":"G-3130: Try to use ANSI SQL-92 join syntax."},{"location":"4-language-usage/3-dml-and-sql/1-general/g-3130/#g-3130-try-to-use-ansi-sql-92-join-syntax","text":"Major Maintainability, Portability","title":"G-3130: Try to use ANSI SQL-92 join syntax."},{"location":"4-language-usage/3-dml-and-sql/1-general/g-3130/#reason","text":"ANSI SQL-92 join syntax supports the full outer join. A further advantage of the ANSI SQL-92 join syntax is the separation of the join condition from the query filters.","title":"Reason"},{"location":"4-language-usage/3-dml-and-sql/1-general/g-3130/#example-bad","text":"1 2 3 4 5 6 7 8 select e . employee_id , e . last_name , e . first_name , d . department_name from employees e , departments d where e . department_id = d . department_id and extract ( month from e . hire_date ) = extract ( month from sysdate );","title":"Example (bad)"},{"location":"4-language-usage/3-dml-and-sql/1-general/g-3130/#example-good","text":"1 2 3 4 5 6 7 8 select emp . employee_id , emp . last_name , emp . first_name , dept . department_name from employees emp join departments dept on dept . department_id = emp . department_id where extract ( month from emp . hire_date ) = extract ( month from sysdate );","title":"Example (good)"},{"location":"4-language-usage/3-dml-and-sql/1-general/g-3140/","text":"G-3140: Try to use anchored records as targets for your cursors. Major Maintainability, Reliability Reason Using cursor-anchored records as targets for your cursors results enables the possibility of changing the structure of the cursor without regard to the target structure. Example (bad) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 declare cursor c_employees is select employee_id , first_name , last_name from employees ; l_employee_id employees . employee_id % type ; l_first_name employees . first_name % type ; l_last_name employees . last_name % type ; begin open c_employees ; fetch c_employees into l_employee_id , l_first_name , l_last_name ; << process_employees >> while c_employees % found loop -- do something with the data fetch c_employees into l_employee_id , l_first_name , l_last_name ; end loop process_employees ; close c_employees ; end ; / Example (good) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 declare cursor c_employees is select employee_id , first_name , last_name from employees ; r_employee c_employees % rowtype ; begin open c_employees ; fetch c_employees into r_employee ; << process_employees >> while c_employees % found loop -- do something with the data fetch c_employees into r_employee ; end loop process_employees ; close c_employees ; end ; /","title":"G-3140: Try to use anchored records as targets for your cursors."},{"location":"4-language-usage/3-dml-and-sql/1-general/g-3140/#g-3140-try-to-use-anchored-records-as-targets-for-your-cursors","text":"Major Maintainability, Reliability","title":"G-3140: Try to use anchored records as targets for your cursors."},{"location":"4-language-usage/3-dml-and-sql/1-general/g-3140/#reason","text":"Using cursor-anchored records as targets for your cursors results enables the possibility of changing the structure of the cursor without regard to the target structure.","title":"Reason"},{"location":"4-language-usage/3-dml-and-sql/1-general/g-3140/#example-bad","text":"1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 declare cursor c_employees is select employee_id , first_name , last_name from employees ; l_employee_id employees . employee_id % type ; l_first_name employees . first_name % type ; l_last_name employees . last_name % type ; begin open c_employees ; fetch c_employees into l_employee_id , l_first_name , l_last_name ; << process_employees >> while c_employees % found loop -- do something with the data fetch c_employees into l_employee_id , l_first_name , l_last_name ; end loop process_employees ; close c_employees ; end ; /","title":"Example (bad)"},{"location":"4-language-usage/3-dml-and-sql/1-general/g-3140/#example-good","text":"1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 declare cursor c_employees is select employee_id , first_name , last_name from employees ; r_employee c_employees % rowtype ; begin open c_employees ; fetch c_employees into r_employee ; << process_employees >> while c_employees % found loop -- do something with the data fetch c_employees into r_employee ; end loop process_employees ; close c_employees ; end ; /","title":"Example (good)"},{"location":"4-language-usage/3-dml-and-sql/1-general/g-3145/","text":"G-3145: Avoid using SELECT * directly from a table or view. Blocker Efficiency, Maintainability, Reliability, Testability Reason Use of SELECT * when querying a table or view makes it impossible for the optimizer to take into account which columns will actually be used by the application, potentially leading to sub-optimal execution plans (for example full scanning the table where a full scan of an index might have sufficed.) Also SELECT * possibly can break your code in the future in case of changes to the table structure (for example new or invisible columns.) Exceptions to the rule can be when querying an inline view (where the SELECT * is just to avoid repeating same columns as inside the inline view), or when fetching into records defined as MYTABLE%ROWTYPE for the purpose of processing all columns of the record. Example (bad) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 begin << raise_salary >> for r_employee in ( select * from employees ) loop employee_api . calculate_raise_by_seniority ( id_in => r_employee . id , salary_in => r_employee . salary , hiredate_in => r_employee . hiredate ); end loop raise_salary ; end ; / Example (good) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 begin << raise_salary >> for r_employee in ( select id , salary , hiredate from employees ) loop employee_api . calculate_raise_by_seniority ( id_in => r_employee . id , salary_in => r_employee . salary , hiredate_in => r_employee . hiredate ); end loop raise_salary ; end ; /","title":"G-3145: Avoid using SELECT * directly from a table or view."},{"location":"4-language-usage/3-dml-and-sql/1-general/g-3145/#g-3145-avoid-using-select-directly-from-a-table-or-view","text":"Blocker Efficiency, Maintainability, Reliability, Testability","title":"G-3145: Avoid using SELECT * directly from a table or view."},{"location":"4-language-usage/3-dml-and-sql/1-general/g-3145/#reason","text":"Use of SELECT * when querying a table or view makes it impossible for the optimizer to take into account which columns will actually be used by the application, potentially leading to sub-optimal execution plans (for example full scanning the table where a full scan of an index might have sufficed.) Also SELECT * possibly can break your code in the future in case of changes to the table structure (for example new or invisible columns.) Exceptions to the rule can be when querying an inline view (where the SELECT * is just to avoid repeating same columns as inside the inline view), or when fetching into records defined as MYTABLE%ROWTYPE for the purpose of processing all columns of the record.","title":"Reason"},{"location":"4-language-usage/3-dml-and-sql/1-general/g-3145/#example-bad","text":"1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 begin << raise_salary >> for r_employee in ( select * from employees ) loop employee_api . calculate_raise_by_seniority ( id_in => r_employee . id , salary_in => r_employee . salary , hiredate_in => r_employee . hiredate ); end loop raise_salary ; end ; /","title":"Example (bad)"},{"location":"4-language-usage/3-dml-and-sql/1-general/g-3145/#example-good","text":"1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 begin << raise_salary >> for r_employee in ( select id , salary , hiredate from employees ) loop employee_api . calculate_raise_by_seniority ( id_in => r_employee . id , salary_in => r_employee . salary , hiredate_in => r_employee . hiredate ); end loop raise_salary ; end ; /","title":"Example (good)"},{"location":"4-language-usage/3-dml-and-sql/1-general/g-3150/","text":"G-3150: Try to use identity columns for surrogate keys. Critical Maintainability, Reliability Restriction Oracle Database 12c Reason An identity column is a surrogate key by design \u2013 there is no reason why we should not take advantage of this natural implementation when the keys are generated on database level. Using identity column (and therefore assigning sequences as default values on columns) has a huge performance advantage over a trigger solution. Example (bad) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 create table locations ( location_id number ( 10 ) not null , location_name varchar2 ( 60 char ) not null , city varchar2 ( 30 char ) not null , constraint locations_pk primary key ( location_id ) ) / create sequence location_seq start with 1 cache 20 / create or replace trigger location_br_i before insert on locations for each row begin : new . location_id : = location_seq . nextval ; end ; / Example (good) 1 2 3 4 5 6 create table locations ( location_id number ( 10 ) generated always as identity , location_name varchar2 ( 60 char ) not null , city varchar2 ( 30 char ) not null , constraint locations_pk primary key ( location_id )) / generated always as identity ensures that the location_id is populated by a sequence. It is not possible to override the behavior in the application. However, if you use a framework that produces an insert statement including the surrogate key column, and you cannot change this behavior, then you have to use the generated by default on null as identity option. This has the downside that the application may pass a value, which might lead to an immediate or delayed ORA-00001: unique constraint violated error.","title":"G-3150: Try to use identity columns for surrogate keys."},{"location":"4-language-usage/3-dml-and-sql/1-general/g-3150/#g-3150-try-to-use-identity-columns-for-surrogate-keys","text":"Critical Maintainability, Reliability","title":"G-3150: Try to use identity columns for surrogate keys."},{"location":"4-language-usage/3-dml-and-sql/1-general/g-3150/#restriction","text":"Oracle Database 12c","title":"Restriction"},{"location":"4-language-usage/3-dml-and-sql/1-general/g-3150/#reason","text":"An identity column is a surrogate key by design \u2013 there is no reason why we should not take advantage of this natural implementation when the keys are generated on database level. Using identity column (and therefore assigning sequences as default values on columns) has a huge performance advantage over a trigger solution.","title":"Reason"},{"location":"4-language-usage/3-dml-and-sql/1-general/g-3150/#example-bad","text":"1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 create table locations ( location_id number ( 10 ) not null , location_name varchar2 ( 60 char ) not null , city varchar2 ( 30 char ) not null , constraint locations_pk primary key ( location_id ) ) / create sequence location_seq start with 1 cache 20 / create or replace trigger location_br_i before insert on locations for each row begin : new . location_id : = location_seq . nextval ; end ; /","title":"Example (bad)"},{"location":"4-language-usage/3-dml-and-sql/1-general/g-3150/#example-good","text":"1 2 3 4 5 6 create table locations ( location_id number ( 10 ) generated always as identity , location_name varchar2 ( 60 char ) not null , city varchar2 ( 30 char ) not null , constraint locations_pk primary key ( location_id )) / generated always as identity ensures that the location_id is populated by a sequence. It is not possible to override the behavior in the application. However, if you use a framework that produces an insert statement including the surrogate key column, and you cannot change this behavior, then you have to use the generated by default on null as identity option. This has the downside that the application may pass a value, which might lead to an immediate or delayed ORA-00001: unique constraint violated error.","title":"Example (good)"},{"location":"4-language-usage/3-dml-and-sql/1-general/g-3160/","text":"G-3160: Avoid visible virtual columns. Blocker Maintainability, Reliability Unsupported in db* CODECOP Validators We cannot identify the type of a column. Requires create table and alter table parser support or access to the Oracle Data Dictionary. Restriction Oracle Database 12c Reason In contrast to visible columns, invisible columns are not part of a record defined using %rowtype construct. This is helpful as a virtual column may not be programmatically populated. If your virtual column is visible you have to manually define the record types used in API packages to be able to exclude them from being part of the record definition. Invisible columns may be accessed by explicitly adding them to the column list in a select statement. Example (bad) 1 2 3 4 5 6 7 8 9 10 11 12 declare r_employee employees % rowtype ; co_id constant employees . employee_id % type : = 107 ; begin r_employee : = employee_api . employee_by_id ( l_id ); r_employee . salary : = r_employee . salary * constants_up . small_increase (); update employees set row = r_employee where employee_id = co_id ; end ; / 1 2 3 Error report - ORA-54017: update operation disallowed on virtual columns ORA-06512: at line 9 Example (good) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 alter table employees add total_salary invisible generated always as ( salary + nvl ( commission_pct , 0 ) * salary ) / declare r_employee employees % rowtype ; co_id constant employees . employee_id % type : = 107 ; begin r_employee : = employee_api . employee_by_id ( co_id ); r_employee . salary : = r_employee . salary * constants_up . small_increase (); update employees set row = r_employee where employee_id = co_id ; end ; /","title":"G-3160: Avoid visible virtual columns."},{"location":"4-language-usage/3-dml-and-sql/1-general/g-3160/#g-3160-avoid-visible-virtual-columns","text":"Blocker Maintainability, Reliability Unsupported in db* CODECOP Validators We cannot identify the type of a column. Requires create table and alter table parser support or access to the Oracle Data Dictionary.","title":"G-3160: Avoid visible virtual columns."},{"location":"4-language-usage/3-dml-and-sql/1-general/g-3160/#restriction","text":"Oracle Database 12c","title":"Restriction"},{"location":"4-language-usage/3-dml-and-sql/1-general/g-3160/#reason","text":"In contrast to visible columns, invisible columns are not part of a record defined using %rowtype construct. This is helpful as a virtual column may not be programmatically populated. If your virtual column is visible you have to manually define the record types used in API packages to be able to exclude them from being part of the record definition. Invisible columns may be accessed by explicitly adding them to the column list in a select statement.","title":"Reason"},{"location":"4-language-usage/3-dml-and-sql/1-general/g-3160/#example-bad","text":"1 2 3 4 5 6 7 8 9 10 11 12 declare r_employee employees % rowtype ; co_id constant employees . employee_id % type : = 107 ; begin r_employee : = employee_api . employee_by_id ( l_id ); r_employee . salary : = r_employee . salary * constants_up . small_increase (); update employees set row = r_employee where employee_id = co_id ; end ; / 1 2 3 Error report - ORA-54017: update operation disallowed on virtual columns ORA-06512: at line 9","title":"Example (bad)"},{"location":"4-language-usage/3-dml-and-sql/1-general/g-3160/#example-good","text":"1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 alter table employees add total_salary invisible generated always as ( salary + nvl ( commission_pct , 0 ) * salary ) / declare r_employee employees % rowtype ; co_id constant employees . employee_id % type : = 107 ; begin r_employee : = employee_api . employee_by_id ( co_id ); r_employee . salary : = r_employee . salary * constants_up . small_increase (); update employees set row = r_employee where employee_id = co_id ; end ; /","title":"Example (good)"},{"location":"4-language-usage/3-dml-and-sql/1-general/g-3170/","text":"G-3170: Always use DEFAULT ON NULL declarations to assign default values to table columns if you refuse to store NULL values. Blocker Reliability Unsupported in db* CODECOP Validators We cannot identify column default values. Requires create table and alter table parser support or access to the Oracle Data Dictionary. Restriction Oracle Database 12c Reason Default values have been nullifiable until Oracle Database 12c. Meaning any tool sending null as a value for a column having a default value bypassed the default value. Starting with Oracle Database 12c default definitions may have an on null definition in addition, which will assign the default value in case of a null value too. Example (bad) 1 2 3 4 5 6 7 8 9 create table null_test ( test_case number ( 2 ) not null , column_defaulted varchar2 ( 10 char ) default 'Default' ) / insert into null_test ( test_case , column_defaulted ) values ( 1 , 'Value' ); -- NOSONAR: G-1050 literal is ok for a standalone insert insert into null_test ( test_case , column_defaulted ) values ( 2 , default ); -- NOSONAR: G-1050 literal is ok for a standalone insert insert into null_test ( test_case , column_defaulted ) values ( 3 , null ); -- NOSONAR: G-1050 literal is ok for a standalone insert select test_case , column_defaulted from null_test ; 1 2 3 4 5 TEST_CASE COLUMN_DEF --------- ----------- 1 Value 2 Default 3 Example (good) 1 2 3 4 5 6 7 8 9 create table null_test ( test_case number ( 2 ) not null , column_defaulted varchar2 ( 10 char ) default on null 'Default' ) / insert into null_test ( test_case , column_defaulted ) values ( 1 , 'Value' ); -- NOSONAR: G-1050 literal is ok for a standalone insert insert into null_test ( test_case , column_defaulted ) values ( 2 , default ); -- NOSONAR: G-1050 literal is ok for a standalone insert insert into null_test ( test_case , column_defaulted ) values ( 3 , null ); -- NOSONAR: G-1050 literal is ok for a standalone insert select test_case , column_defaulted from null_test ; 1 2 3 4 5 TEST_CASE COLUMN_DEF ---------- ---------- 1 Value 2 Default 3 Default","title":"G-3170: Always use DEFAULT ON NULL declarations to assign default values to table columns if you refuse to store NULL values."},{"location":"4-language-usage/3-dml-and-sql/1-general/g-3170/#g-3170-always-use-default-on-null-declarations-to-assign-default-values-to-table-columns-if-you-refuse-to-store-null-values","text":"Blocker Reliability Unsupported in db* CODECOP Validators We cannot identify column default values. Requires create table and alter table parser support or access to the Oracle Data Dictionary.","title":"G-3170: Always use DEFAULT ON NULL declarations to assign default values to table columns if you refuse to store NULL values."},{"location":"4-language-usage/3-dml-and-sql/1-general/g-3170/#restriction","text":"Oracle Database 12c","title":"Restriction"},{"location":"4-language-usage/3-dml-and-sql/1-general/g-3170/#reason","text":"Default values have been nullifiable until Oracle Database 12c. Meaning any tool sending null as a value for a column having a default value bypassed the default value. Starting with Oracle Database 12c default definitions may have an on null definition in addition, which will assign the default value in case of a null value too.","title":"Reason"},{"location":"4-language-usage/3-dml-and-sql/1-general/g-3170/#example-bad","text":"1 2 3 4 5 6 7 8 9 create table null_test ( test_case number ( 2 ) not null , column_defaulted varchar2 ( 10 char ) default 'Default' ) / insert into null_test ( test_case , column_defaulted ) values ( 1 , 'Value' ); -- NOSONAR: G-1050 literal is ok for a standalone insert insert into null_test ( test_case , column_defaulted ) values ( 2 , default ); -- NOSONAR: G-1050 literal is ok for a standalone insert insert into null_test ( test_case , column_defaulted ) values ( 3 , null ); -- NOSONAR: G-1050 literal is ok for a standalone insert select test_case , column_defaulted from null_test ; 1 2 3 4 5 TEST_CASE COLUMN_DEF --------- ----------- 1 Value 2 Default 3","title":"Example (bad)"},{"location":"4-language-usage/3-dml-and-sql/1-general/g-3170/#example-good","text":"1 2 3 4 5 6 7 8 9 create table null_test ( test_case number ( 2 ) not null , column_defaulted varchar2 ( 10 char ) default on null 'Default' ) / insert into null_test ( test_case , column_defaulted ) values ( 1 , 'Value' ); -- NOSONAR: G-1050 literal is ok for a standalone insert insert into null_test ( test_case , column_defaulted ) values ( 2 , default ); -- NOSONAR: G-1050 literal is ok for a standalone insert insert into null_test ( test_case , column_defaulted ) values ( 3 , null ); -- NOSONAR: G-1050 literal is ok for a standalone insert select test_case , column_defaulted from null_test ; 1 2 3 4 5 TEST_CASE COLUMN_DEF ---------- ---------- 1 Value 2 Default 3 Default","title":"Example (good)"},{"location":"4-language-usage/3-dml-and-sql/1-general/g-3180/","text":"G-3180: Always specify column names instead of positional references in ORDER BY clauses. Major Changeability, Reliability Reason If you change your select list afterwards the order by will still work but order your rows differently, when not changing the positional number. Furthermore, it is not comfortable to the readers of the code, if they have to count the columns in the select list to know the way the result is ordered. Example (bad) 1 2 3 4 5 6 select upper ( first_name ) , last_name , salary , hire_date from employees order by 4 , 1 , 3 ; Example (good) 1 2 3 4 5 6 7 8 select upper ( first_name ) as first_name , last_name , salary , hire_date from employees order by hire_date , first_name , salary ;","title":"G-3180: Always specify column names instead of positional references in ORDER BY clauses."},{"location":"4-language-usage/3-dml-and-sql/1-general/g-3180/#g-3180-always-specify-column-names-instead-of-positional-references-in-order-by-clauses","text":"Major Changeability, Reliability","title":"G-3180: Always specify column names instead of positional references in ORDER BY clauses."},{"location":"4-language-usage/3-dml-and-sql/1-general/g-3180/#reason","text":"If you change your select list afterwards the order by will still work but order your rows differently, when not changing the positional number. Furthermore, it is not comfortable to the readers of the code, if they have to count the columns in the select list to know the way the result is ordered.","title":"Reason"},{"location":"4-language-usage/3-dml-and-sql/1-general/g-3180/#example-bad","text":"1 2 3 4 5 6 select upper ( first_name ) , last_name , salary , hire_date from employees order by 4 , 1 , 3 ;","title":"Example (bad)"},{"location":"4-language-usage/3-dml-and-sql/1-general/g-3180/#example-good","text":"1 2 3 4 5 6 7 8 select upper ( first_name ) as first_name , last_name , salary , hire_date from employees order by hire_date , first_name , salary ;","title":"Example (good)"},{"location":"4-language-usage/3-dml-and-sql/1-general/g-3182/","text":"G-3182: Always specify column names/aliases instead of positional references in GROUP BY clauses. Blocker Reliability Restriction Oracle Database 23c Reason If you use a numeric literal in the group by clause in an Oracle Database prior to version 23c, then this literal is not required. It is simply a constant. Starting with Oracle Database 23c, it is possible to use a literal in the group by clause to refer to a column name or column alias in the select list. However, this only works if the group_by_position_enabled parameter is set to true . In any case, it is not convenient for the readers of the code to have to count the columns in the select list to know how the result is grouped. Since the meaning of a literal depends on the configuration and database version, the intention is unclear and might lead to an incorrect result. Example (bad) 1 2 3 4 5 select job_id , sum ( salary ) as sum_salary from employees group by job_id , 2 order by job_id ; Example (good) 1 2 3 4 5 select job_id , sum ( salary ) as sum_salary from employees group by job_id order by job_id ;","title":"G-3182: Always specify column names/aliases instead of positional references in GROUP BY clauses."},{"location":"4-language-usage/3-dml-and-sql/1-general/g-3182/#g-3182-always-specify-column-namesaliases-instead-of-positional-references-in-group-by-clauses","text":"Blocker Reliability","title":"G-3182: Always specify column names/aliases instead of positional references in GROUP BY clauses."},{"location":"4-language-usage/3-dml-and-sql/1-general/g-3182/#restriction","text":"Oracle Database 23c","title":"Restriction"},{"location":"4-language-usage/3-dml-and-sql/1-general/g-3182/#reason","text":"If you use a numeric literal in the group by clause in an Oracle Database prior to version 23c, then this literal is not required. It is simply a constant. Starting with Oracle Database 23c, it is possible to use a literal in the group by clause to refer to a column name or column alias in the select list. However, this only works if the group_by_position_enabled parameter is set to true . In any case, it is not convenient for the readers of the code to have to count the columns in the select list to know how the result is grouped. Since the meaning of a literal depends on the configuration and database version, the intention is unclear and might lead to an incorrect result.","title":"Reason"},{"location":"4-language-usage/3-dml-and-sql/1-general/g-3182/#example-bad","text":"1 2 3 4 5 select job_id , sum ( salary ) as sum_salary from employees group by job_id , 2 order by job_id ;","title":"Example (bad)"},{"location":"4-language-usage/3-dml-and-sql/1-general/g-3182/#example-good","text":"1 2 3 4 5 select job_id , sum ( salary ) as sum_salary from employees group by job_id order by job_id ;","title":"Example (good)"},{"location":"4-language-usage/3-dml-and-sql/1-general/g-3183/","text":"G-3183: Always specify column aliases instead of expressions in GROUP BY clauses. Minor Maintainability Restriction Oracle Database 23c Reason Starting with Oracle Database 23c, it is possible to use a column alias in the group by clause instead of repeating the expression used in the select list. Unless you use rollup , cube or grouping sets , it is not necessary to use expressions in the group by clause. Example (bad) 1 2 3 4 5 select lower ( job_id ) as job , sum ( salary ) as sum_salary from employees group by lower ( job_id ) order by job ; Example (good) 1 2 3 4 5 select lower ( job_id ) as job , sum ( salary ) as sum_salary from employees group by job order by job ;","title":"G-3183: Always specify column aliases instead of expressions in GROUP BY clauses."},{"location":"4-language-usage/3-dml-and-sql/1-general/g-3183/#g-3183-always-specify-column-aliases-instead-of-expressions-in-group-by-clauses","text":"Minor Maintainability","title":"G-3183: Always specify column aliases instead of expressions in GROUP BY clauses."},{"location":"4-language-usage/3-dml-and-sql/1-general/g-3183/#restriction","text":"Oracle Database 23c","title":"Restriction"},{"location":"4-language-usage/3-dml-and-sql/1-general/g-3183/#reason","text":"Starting with Oracle Database 23c, it is possible to use a column alias in the group by clause instead of repeating the expression used in the select list. Unless you use rollup , cube or grouping sets , it is not necessary to use expressions in the group by clause.","title":"Reason"},{"location":"4-language-usage/3-dml-and-sql/1-general/g-3183/#example-bad","text":"1 2 3 4 5 select lower ( job_id ) as job , sum ( salary ) as sum_salary from employees group by lower ( job_id ) order by job ;","title":"Example (bad)"},{"location":"4-language-usage/3-dml-and-sql/1-general/g-3183/#example-good","text":"1 2 3 4 5 select lower ( job_id ) as job , sum ( salary ) as sum_salary from employees group by job order by job ;","title":"Example (good)"},{"location":"4-language-usage/3-dml-and-sql/1-general/g-3185/","text":"G-3185: Never use ROWNUM at the same query level as ORDER BY. Blocker Reliability, Testability Reason The rownum pseudo-column is assigned before the order by clause is used, so using rownum on the same query level as order by will not assign numbers in the desired ordering. Instead you should move the order by into an inline view and use rownum in the outer query. Example (bad) 1 2 3 4 5 6 7 8 select first_name , last_name , salary , hire_date , rownum as salary_rank from employees where rownum <= 5 -- violates also G-1050 literal is ok for a standalone query order by salary desc ; Example (good) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 select first_name , last_name , salary , hire_date , rownum as salary_rank from ( select first_name , last_name , salary , hire_date from employees order by salary desc ) where rownum <= 5 ; -- NOSONAR: G-1050 literal is ok for a standalone query Example (best) (Assuming you are using Oracle Database 12c or later.) 1 2 3 4 5 6 7 8 select first_name , last_name , salary , hire_date , rank () over ( order by salary desc ) as salary_rank from employees order by salary desc fetch first 5 rows only ; -- NOSONAR: G-1050 literal is ok for a standalone query","title":"G-3185: Never use ROWNUM at the same query level as ORDER BY."},{"location":"4-language-usage/3-dml-and-sql/1-general/g-3185/#g-3185-never-use-rownum-at-the-same-query-level-as-order-by","text":"Blocker Reliability, Testability","title":"G-3185: Never use ROWNUM at the same query level as ORDER BY."},{"location":"4-language-usage/3-dml-and-sql/1-general/g-3185/#reason","text":"The rownum pseudo-column is assigned before the order by clause is used, so using rownum on the same query level as order by will not assign numbers in the desired ordering. Instead you should move the order by into an inline view and use rownum in the outer query.","title":"Reason"},{"location":"4-language-usage/3-dml-and-sql/1-general/g-3185/#example-bad","text":"1 2 3 4 5 6 7 8 select first_name , last_name , salary , hire_date , rownum as salary_rank from employees where rownum <= 5 -- violates also G-1050 literal is ok for a standalone query order by salary desc ;","title":"Example (bad)"},{"location":"4-language-usage/3-dml-and-sql/1-general/g-3185/#example-good","text":"1 2 3 4 5 6 7 8 9 10 11 12 13 14 select first_name , last_name , salary , hire_date , rownum as salary_rank from ( select first_name , last_name , salary , hire_date from employees order by salary desc ) where rownum <= 5 ; -- NOSONAR: G-1050 literal is ok for a standalone query","title":"Example (good)"},{"location":"4-language-usage/3-dml-and-sql/1-general/g-3185/#example-best","text":"(Assuming you are using Oracle Database 12c or later.) 1 2 3 4 5 6 7 8 select first_name , last_name , salary , hire_date , rank () over ( order by salary desc ) as salary_rank from employees order by salary desc fetch first 5 rows only ; -- NOSONAR: G-1050 literal is ok for a standalone query","title":"Example (best)"},{"location":"4-language-usage/3-dml-and-sql/1-general/g-3190/","text":"G-3190: Avoid using NATURAL JOIN. Blocker Changeability, Reliability Reason A natural join joins tables on equally named columns. This may comfortably fit on first sight, but adding logging columns to a table ( changed_by , changed_date ) will result in inappropriate join conditions. Example (bad) 1 2 3 4 5 6 7 select d . department_name , e . last_name , e . first_name from employees e natural join departments d order by d . department_name , e . last_name ; 1 2 3 4 5 DEPARTMENT_NAME LAST_NAME FIRST_NAME ------------------------------ ------------------------- -------------------- Accounting Gietz William Executive De Haan Lex ... 1 2 3 4 5 6 7 8 9 10 alter table departments add modified_at date default on null sysdate ; alter table employees add modified_at date default on null sysdate ; select d . department_name , e . last_name , e . first_name from employees e natural join departments d order by d . department_name , e . last_name ; 1 No data found Example (good) 1 2 3 4 5 6 7 8 select d . department_name , e . last_name , e . first_name from employees e join departments d on ( e . department_id = d . department_id ) order by d . department_name , e . last_name ; 1 2 3 4 5 DEPARTMENT_NAME LAST_NAME FIRST_NAME ------------------------------ ------------------------- -------------------- Accounting Gietz William Executive De Haan Lex ...","title":"G-3190: Avoid using NATURAL JOIN."},{"location":"4-language-usage/3-dml-and-sql/1-general/g-3190/#g-3190-avoid-using-natural-join","text":"Blocker Changeability, Reliability","title":"G-3190: Avoid using NATURAL JOIN."},{"location":"4-language-usage/3-dml-and-sql/1-general/g-3190/#reason","text":"A natural join joins tables on equally named columns. This may comfortably fit on first sight, but adding logging columns to a table ( changed_by , changed_date ) will result in inappropriate join conditions.","title":"Reason"},{"location":"4-language-usage/3-dml-and-sql/1-general/g-3190/#example-bad","text":"1 2 3 4 5 6 7 select d . department_name , e . last_name , e . first_name from employees e natural join departments d order by d . department_name , e . last_name ; 1 2 3 4 5 DEPARTMENT_NAME LAST_NAME FIRST_NAME ------------------------------ ------------------------- -------------------- Accounting Gietz William Executive De Haan Lex ... 1 2 3 4 5 6 7 8 9 10 alter table departments add modified_at date default on null sysdate ; alter table employees add modified_at date default on null sysdate ; select d . department_name , e . last_name , e . first_name from employees e natural join departments d order by d . department_name , e . last_name ; 1 No data found","title":"Example (bad)"},{"location":"4-language-usage/3-dml-and-sql/1-general/g-3190/#example-good","text":"1 2 3 4 5 6 7 8 select d . department_name , e . last_name , e . first_name from employees e join departments d on ( e . department_id = d . department_id ) order by d . department_name , e . last_name ; 1 2 3 4 5 DEPARTMENT_NAME LAST_NAME FIRST_NAME ------------------------------ ------------------------- -------------------- Accounting Gietz William Executive De Haan Lex ...","title":"Example (good)"},{"location":"4-language-usage/3-dml-and-sql/1-general/g-3195/","text":"G-3195: Always use wildcards in a LIKE clause. Blocker Maintainability Reason Using like without at least one wildcard ( % or _ ) is unclear to a maintainer whether a wildcard is forgotten or it is meant as equality test. A common antipattern is also to forget that an underscore is a wildcard, so using like instead of equal can return unwanted rows. If the char datatype is involved, there is also the danger of like not using blank padded comparison where equal will. Depending on use case, you should either remember at least one wildcard or use normal equality operator. Example (bad) 1 2 3 4 select e . employee_id , e . last_name from employees e where e . last_name like 'Smith' ; -- violates also G-1050 literal is ok for a standalone query Example (good) Using a wildcard: 1 2 3 4 select e . employee_id , e . last_name from employees e where e . last_name like 'Smith%' ; Change to equality operator instead: 1 2 3 4 select e . employee_id , e . last_name from employees e where e . last_name = 'Smith' ; -- NOSONAR: G-1050 literal is ok for a standalone query","title":"G-3195: Always use wildcards in a LIKE clause."},{"location":"4-language-usage/3-dml-and-sql/1-general/g-3195/#g-3195-always-use-wildcards-in-a-like-clause","text":"Blocker Maintainability","title":"G-3195: Always use wildcards in a LIKE clause."},{"location":"4-language-usage/3-dml-and-sql/1-general/g-3195/#reason","text":"Using like without at least one wildcard ( % or _ ) is unclear to a maintainer whether a wildcard is forgotten or it is meant as equality test. A common antipattern is also to forget that an underscore is a wildcard, so using like instead of equal can return unwanted rows. If the char datatype is involved, there is also the danger of like not using blank padded comparison where equal will. Depending on use case, you should either remember at least one wildcard or use normal equality operator.","title":"Reason"},{"location":"4-language-usage/3-dml-and-sql/1-general/g-3195/#example-bad","text":"1 2 3 4 select e . employee_id , e . last_name from employees e where e . last_name like 'Smith' ; -- violates also G-1050 literal is ok for a standalone query","title":"Example (bad)"},{"location":"4-language-usage/3-dml-and-sql/1-general/g-3195/#example-good","text":"Using a wildcard: 1 2 3 4 select e . employee_id , e . last_name from employees e where e . last_name like 'Smith%' ; Change to equality operator instead: 1 2 3 4 select e . employee_id , e . last_name from employees e where e . last_name = 'Smith' ; -- NOSONAR: G-1050 literal is ok for a standalone query","title":"Example (good)"},{"location":"4-language-usage/3-dml-and-sql/2-bulk-operations/g-3210/","text":"G-3210: Always use BULK OPERATIONS (BULK COLLECT, FORALL) whenever you have to execute a DML statement for more than 4 times. Critical Efficiency Reason Context switches between PL/SQL and SQL are extremely costly. BULK Operations reduce the number of switches by passing an array to the SQL engine, which is used to execute the given statements repeatedly. (Depending on the PLSQL_OPTIMIZE_LEVEL parameter a conversion to BULK COLLECT will be done by the PL/SQL compiler automatically.) Example (bad) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 declare t_employee_ids employee_api . t_employee_ids_type ; co_increase constant employees . salary % type : = 0 . 1 ; co_department_id constant departments . department_id % type : = 10 ; begin t_employee_ids : = employee_api . employee_ids_by_department ( id_in => co_department_id ); << process_employees >> for i in 1 .. t_employee_ids . count () loop update employees set salary = salary + ( salary * co_increase ) where employee_id = t_employee_ids ( i ); end loop process_employees ; end ; / Example (good) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 declare t_employee_ids employee_api . t_employee_ids_type ; co_increase constant employees . salary % type : = 0 . 1 ; co_department_id constant departments . department_id % type : = 10 ; begin t_employee_ids : = employee_api . employee_ids_by_department ( id_in => co_department_id ); << process_employees >> forall i in 1 .. t_employee_ids . count () update employees set salary = salary + ( salary * co_increase ) where employee_id = t_employee_ids ( i ); end ; /","title":"G-3210: Always use BULK OPERATIONS (BULK COLLECT, FORALL) whenever you have to execute a DML statement for more than 4 times."},{"location":"4-language-usage/3-dml-and-sql/2-bulk-operations/g-3210/#g-3210-always-use-bulk-operations-bulk-collect-forall-whenever-you-have-to-execute-a-dml-statement-for-more-than-4-times","text":"Critical Efficiency","title":"G-3210: Always use BULK OPERATIONS (BULK COLLECT, FORALL) whenever you have to execute a DML statement for more than 4 times."},{"location":"4-language-usage/3-dml-and-sql/2-bulk-operations/g-3210/#reason","text":"Context switches between PL/SQL and SQL are extremely costly. BULK Operations reduce the number of switches by passing an array to the SQL engine, which is used to execute the given statements repeatedly. (Depending on the PLSQL_OPTIMIZE_LEVEL parameter a conversion to BULK COLLECT will be done by the PL/SQL compiler automatically.)","title":"Reason"},{"location":"4-language-usage/3-dml-and-sql/2-bulk-operations/g-3210/#example-bad","text":"1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 declare t_employee_ids employee_api . t_employee_ids_type ; co_increase constant employees . salary % type : = 0 . 1 ; co_department_id constant departments . department_id % type : = 10 ; begin t_employee_ids : = employee_api . employee_ids_by_department ( id_in => co_department_id ); << process_employees >> for i in 1 .. t_employee_ids . count () loop update employees set salary = salary + ( salary * co_increase ) where employee_id = t_employee_ids ( i ); end loop process_employees ; end ; /","title":"Example (bad)"},{"location":"4-language-usage/3-dml-and-sql/2-bulk-operations/g-3210/#example-good","text":"1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 declare t_employee_ids employee_api . t_employee_ids_type ; co_increase constant employees . salary % type : = 0 . 1 ; co_department_id constant departments . department_id % type : = 10 ; begin t_employee_ids : = employee_api . employee_ids_by_department ( id_in => co_department_id ); << process_employees >> forall i in 1 .. t_employee_ids . count () update employees set salary = salary + ( salary * co_increase ) where employee_id = t_employee_ids ( i ); end ; /","title":"Example (good)"},{"location":"4-language-usage/3-dml-and-sql/2-bulk-operations/g-3220/","text":"G-3220: Always process saved exceptions from a FORALL statement. Critical Reliability, Testability Reason Using save exceptions in a forall statement without actually processing the saved exceptions is just wasted work. If your use of forall is meant to be atomic (all or nothing), don't use save exceptions . If you want to handle errors of individual rows and do use save exceptions , always include an exception handler block with a loop to process the saved exceptions. Example (bad) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 declare t_employee_ids employee_api . t_employee_ids_type ; co_increase constant employees . salary % type : = 0 . 1 ; co_department_id constant departments . department_id % type : = 10 ; e_bulk_errors exception ; pragma exception_init ( e_bulk_errors , - 24381 ); begin t_employee_ids : = employee_api . employee_ids_by_department ( id_in => co_department_id ); << process_employees >> forall i in 1 .. t_employee_ids . count () save exceptions update employees set salary = salary + ( salary * co_increase ) where employee_id = t_employee_ids ( i ); end ; / Example (good) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 declare t_employee_ids employee_api . t_employee_ids_type ; co_increase constant employees . salary % type : = 0 . 1 ; co_department_id constant departments . department_id % type : = 10 ; e_bulk_errors exception ; pragma exception_init ( e_bulk_errors , - 24381 ); begin t_employee_ids : = employee_api . employee_ids_by_department ( id_in => co_department_id ); << process_employees >> forall i in 1 .. t_employee_ids . count () save exceptions update employees set salary = salary + ( salary * co_increase ) where employee_id = t_employee_ids ( i ); exception when e_bulk_errors then << handle_bulk_exceptions >> for i in 1 .. sql % bulk_exceptions . count loop logger . log ( sql % bulk_exceptions ( i ). error_code ); end loop handle_bulk_exceptions ; end ; /","title":"G-3220: Always process saved exceptions from a FORALL statement."},{"location":"4-language-usage/3-dml-and-sql/2-bulk-operations/g-3220/#g-3220-always-process-saved-exceptions-from-a-forall-statement","text":"Critical Reliability, Testability","title":"G-3220: Always process saved exceptions from a FORALL statement."},{"location":"4-language-usage/3-dml-and-sql/2-bulk-operations/g-3220/#reason","text":"Using save exceptions in a forall statement without actually processing the saved exceptions is just wasted work. If your use of forall is meant to be atomic (all or nothing), don't use save exceptions . If you want to handle errors of individual rows and do use save exceptions , always include an exception handler block with a loop to process the saved exceptions.","title":"Reason"},{"location":"4-language-usage/3-dml-and-sql/2-bulk-operations/g-3220/#example-bad","text":"1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 declare t_employee_ids employee_api . t_employee_ids_type ; co_increase constant employees . salary % type : = 0 . 1 ; co_department_id constant departments . department_id % type : = 10 ; e_bulk_errors exception ; pragma exception_init ( e_bulk_errors , - 24381 ); begin t_employee_ids : = employee_api . employee_ids_by_department ( id_in => co_department_id ); << process_employees >> forall i in 1 .. t_employee_ids . count () save exceptions update employees set salary = salary + ( salary * co_increase ) where employee_id = t_employee_ids ( i ); end ; /","title":"Example (bad)"},{"location":"4-language-usage/3-dml-and-sql/2-bulk-operations/g-3220/#example-good","text":"1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 declare t_employee_ids employee_api . t_employee_ids_type ; co_increase constant employees . salary % type : = 0 . 1 ; co_department_id constant departments . department_id % type : = 10 ; e_bulk_errors exception ; pragma exception_init ( e_bulk_errors , - 24381 ); begin t_employee_ids : = employee_api . employee_ids_by_department ( id_in => co_department_id ); << process_employees >> forall i in 1 .. t_employee_ids . count () save exceptions update employees set salary = salary + ( salary * co_increase ) where employee_id = t_employee_ids ( i ); exception when e_bulk_errors then << handle_bulk_exceptions >> for i in 1 .. sql % bulk_exceptions . count loop logger . log ( sql % bulk_exceptions ( i ). error_code ); end loop handle_bulk_exceptions ; end ; /","title":"Example (good)"},{"location":"4-language-usage/3-dml-and-sql/3-transaction-control/g-3310/","text":"G-3310: Never commit within a cursor loop. Blocker Efficiency, Reliability Reason Doing frequent commits within a cursor loop (all types of loops over cursors, whether implicit cursor for loop or loop with explicit fetch from cursor or cursor variable) risks not being able to complete due to ORA-01555, gives bad performance, and risks that the work is left in an unknown half-finished state and cannot be restarted. If the work belongs together (an atomic transaction) the commit should be moved to after the loop. Or even better if the logic can be rewritten to a single DML statement on all relevant rows instead of a loop, committing after the single statement. If each loop iteration is a self-contained atomic transaction, consider instead to populate a collection of transactions to be done (taking restartability into account by collection population), loop over that collection (instead of looping over a cursor) and call a procedure (that contains the transaction logic and the commit ) in the loop (see also G-3320 ). Example (bad) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 declare l_counter integer : = 0 ; l_discount discount . percentage % type ; co_status_new constant orders . order_status % type : = 'New' ; co_commit_interval constant integer : = 100 ; begin << new_orders >> for r_order in ( select o . order_id , o . customer_id from orders o where o . order_status = co_status_new ) loop l_discount : = sales_api . calculate_discount ( p_customer_id => r_order . customer_id ); update order_lines ol -- NOSONAR: violates G-3210 set ol . discount = l_discount where ol . order_id = r_order . order_id ; l_counter : = l_counter + 1 ; if l_counter = co_commit_interval then commit ; l_counter : = 0 ; end if ; end loop new_orders ; if l_counter > 0 then commit ; end if ; end ; / Example (good) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 declare l_discount discount . percentage % type ; co_status_new constant orders . order_status % type : = 'New' ; begin << new_orders >> for r_order in ( select o . order_id , o . customer_id from orders o where o . order_status = co_status_new ) loop l_discount : = sales_api . calculate_discount ( p_customer_id => r_order . customer_id ); update order_lines ol -- NOSONAR: violates G-3210 set ol . discount = l_discount where ol . order_id = r_order . order_id ; end loop new_orders ; commit ; end ; / Example (best) (Assuming suitable foreign key relationship exists to allow updating a join.) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 declare co_status_new constant orders . order_status % type : = 'New' ; begin update ( select o . customer_id , ol . discount from orders o join order_lines ol on ol . order_id = o . order_id where o . order_status = co_status_new ) set discount = sales_api . calculate_discount ( p_customer_id => customer_id ); commit ; end ; /","title":"G-3310: Never commit within a cursor loop."},{"location":"4-language-usage/3-dml-and-sql/3-transaction-control/g-3310/#g-3310-never-commit-within-a-cursor-loop","text":"Blocker Efficiency, Reliability","title":"G-3310: Never commit within a cursor loop."},{"location":"4-language-usage/3-dml-and-sql/3-transaction-control/g-3310/#reason","text":"Doing frequent commits within a cursor loop (all types of loops over cursors, whether implicit cursor for loop or loop with explicit fetch from cursor or cursor variable) risks not being able to complete due to ORA-01555, gives bad performance, and risks that the work is left in an unknown half-finished state and cannot be restarted. If the work belongs together (an atomic transaction) the commit should be moved to after the loop. Or even better if the logic can be rewritten to a single DML statement on all relevant rows instead of a loop, committing after the single statement. If each loop iteration is a self-contained atomic transaction, consider instead to populate a collection of transactions to be done (taking restartability into account by collection population), loop over that collection (instead of looping over a cursor) and call a procedure (that contains the transaction logic and the commit ) in the loop (see also G-3320 ).","title":"Reason"},{"location":"4-language-usage/3-dml-and-sql/3-transaction-control/g-3310/#example-bad","text":"1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 declare l_counter integer : = 0 ; l_discount discount . percentage % type ; co_status_new constant orders . order_status % type : = 'New' ; co_commit_interval constant integer : = 100 ; begin << new_orders >> for r_order in ( select o . order_id , o . customer_id from orders o where o . order_status = co_status_new ) loop l_discount : = sales_api . calculate_discount ( p_customer_id => r_order . customer_id ); update order_lines ol -- NOSONAR: violates G-3210 set ol . discount = l_discount where ol . order_id = r_order . order_id ; l_counter : = l_counter + 1 ; if l_counter = co_commit_interval then commit ; l_counter : = 0 ; end if ; end loop new_orders ; if l_counter > 0 then commit ; end if ; end ; /","title":"Example (bad)"},{"location":"4-language-usage/3-dml-and-sql/3-transaction-control/g-3310/#example-good","text":"1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 declare l_discount discount . percentage % type ; co_status_new constant orders . order_status % type : = 'New' ; begin << new_orders >> for r_order in ( select o . order_id , o . customer_id from orders o where o . order_status = co_status_new ) loop l_discount : = sales_api . calculate_discount ( p_customer_id => r_order . customer_id ); update order_lines ol -- NOSONAR: violates G-3210 set ol . discount = l_discount where ol . order_id = r_order . order_id ; end loop new_orders ; commit ; end ; /","title":"Example (good)"},{"location":"4-language-usage/3-dml-and-sql/3-transaction-control/g-3310/#example-best","text":"(Assuming suitable foreign key relationship exists to allow updating a join.) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 declare co_status_new constant orders . order_status % type : = 'New' ; begin update ( select o . customer_id , ol . discount from orders o join order_lines ol on ol . order_id = o . order_id where o . order_status = co_status_new ) set discount = sales_api . calculate_discount ( p_customer_id => customer_id ); commit ; end ; /","title":"Example (best)"},{"location":"4-language-usage/3-dml-and-sql/3-transaction-control/g-3320/","text":"G-3320: Try to move transactions within a non-cursor loop into procedures. Major Maintainability, Reusability, Testability Reason Commit inside a non-cursor loop (other loop types than loops over cursors - see also G-3310 ) is either a self-contained atomic transaction, or it is a chunk (with suitable restartability handling) of very large data manipulations. In either case encapsulating the transaction in a procedure is good modularity, enabling reuse and testing of a single call. Example (bad) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 declare co_upper_bound constant integer : = 5 ; co_max_level constant integer : = 3 ; co_number constant types_up . short_string : = 'Number' ; co_line constant types_up . short_string : = 'Line' ; co_space constant types_up . short_string : = ' ' ; l_counter integer : = 0 ; begin << create_headers >> loop insert into headers ( id , text ) values ( l_counter , co_number || co_space || l_counter ); insert into lines ( header_id , line_no , text ) select l_counter , rownum , co_line || co_space || rownum from dual connect by level <= co_max_level ; commit ; l_counter : = l_counter + 1 ; exit create_headers when l_counter > co_upper_bound ; end loop create_headers ; end ; / Example (good) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 declare co_upper_bound constant integer : = 5 ; co_max_level constant integer : = 3 ; co_number constant types_up . short_string : = 'Number' ; co_line constant types_up . short_string : = 'Line' ; co_space constant types_up . short_string : = ' ' ; procedure create_rows ( in_header_id in headers . id % type ) is co_header_id constant headers . id % type : = in_header_id ; begin insert into headers ( id , text ) values ( in_header_id , co_number || co_space || co_header_id ); insert into lines ( header_id , line_no , text ) select co_header_id , rownum , co_line || co_space || rownum from dual connect by level <= co_max_level ; commit ; end create_rows ; begin << create_headers >> for l_counter in 1 .. co_upper_bound loop create_rows ( l_counter ); end loop create_headers ; end ; /","title":"G-3320: Try to move transactions within a non-cursor loop into procedures."},{"location":"4-language-usage/3-dml-and-sql/3-transaction-control/g-3320/#g-3320-try-to-move-transactions-within-a-non-cursor-loop-into-procedures","text":"Major Maintainability, Reusability, Testability","title":"G-3320: Try to move transactions within a non-cursor loop into procedures."},{"location":"4-language-usage/3-dml-and-sql/3-transaction-control/g-3320/#reason","text":"Commit inside a non-cursor loop (other loop types than loops over cursors - see also G-3310 ) is either a self-contained atomic transaction, or it is a chunk (with suitable restartability handling) of very large data manipulations. In either case encapsulating the transaction in a procedure is good modularity, enabling reuse and testing of a single call.","title":"Reason"},{"location":"4-language-usage/3-dml-and-sql/3-transaction-control/g-3320/#example-bad","text":"1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 declare co_upper_bound constant integer : = 5 ; co_max_level constant integer : = 3 ; co_number constant types_up . short_string : = 'Number' ; co_line constant types_up . short_string : = 'Line' ; co_space constant types_up . short_string : = ' ' ; l_counter integer : = 0 ; begin << create_headers >> loop insert into headers ( id , text ) values ( l_counter , co_number || co_space || l_counter ); insert into lines ( header_id , line_no , text ) select l_counter , rownum , co_line || co_space || rownum from dual connect by level <= co_max_level ; commit ; l_counter : = l_counter + 1 ; exit create_headers when l_counter > co_upper_bound ; end loop create_headers ; end ; /","title":"Example (bad)"},{"location":"4-language-usage/3-dml-and-sql/3-transaction-control/g-3320/#example-good","text":"1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 declare co_upper_bound constant integer : = 5 ; co_max_level constant integer : = 3 ; co_number constant types_up . short_string : = 'Number' ; co_line constant types_up . short_string : = 'Line' ; co_space constant types_up . short_string : = ' ' ; procedure create_rows ( in_header_id in headers . id % type ) is co_header_id constant headers . id % type : = in_header_id ; begin insert into headers ( id , text ) values ( in_header_id , co_number || co_space || co_header_id ); insert into lines ( header_id , line_no , text ) select co_header_id , rownum , co_line || co_space || rownum from dual connect by level <= co_max_level ; commit ; end create_rows ; begin << create_headers >> for l_counter in 1 .. co_upper_bound loop create_rows ( l_counter ); end loop create_headers ; end ; /","title":"Example (good)"},{"location":"4-language-usage/3-dml-and-sql/3-transaction-control/g-3330/","text":"G-3330: Avoid autonomous transactions. Blocker Reliability, Testability Reason Before we take a look at how autonomous transactions work, I\u2019d like to emphasize that this type of transaction is a powerful and therefore dangerous tool when used improperly. The true need for an autonomous transaction is very rare indeed. I would be very suspicious of any code that makes use of them\u2014that code would get extra examination. It is far too easy to accidentally introduce logical data integrity issues into a system using them. (page 300) In my experience, that is the only truly valid use of an autonomous transaction\u2014to log errors or informational messages in a manner that can be committed independently of the parent transaction. (page 305) -- Kyte, Thomas (2013). Expert Oracle Database Architecture. Third Edition . Apress. It is most likely not possible to distinguish legitimate uses of autonomous transactions from illegitimate ones via static code analysis. However, since we expect exactly one autonomous transaction per application, the number of false positives is manageable. Example (bad) 1 2 3 4 5 6 7 8 9 10 create or replace package body dept_api is procedure ins_dept ( in_dept_row in dept % rowtype ) is pragma autonomous_transaction ; begin insert into dept values in_dept_row ; commit ; -- required by autonomous transaction end ins_dept ; end dept_api ; / Example (good) 1 2 3 4 5 6 7 8 9 10 create or replace package body dept_api is procedure ins_dept ( in_dept_row in dept % rowtype ) is begin insert into dept values in_dept_row ; -- transaction is commited in calling module -- after the completion of the unit of work end ins_dept ; end dept_api ; /","title":"G-3330: Avoid autonomous transactions."},{"location":"4-language-usage/3-dml-and-sql/3-transaction-control/g-3330/#g-3330-avoid-autonomous-transactions","text":"Blocker Reliability, Testability","title":"G-3330: Avoid autonomous transactions."},{"location":"4-language-usage/3-dml-and-sql/3-transaction-control/g-3330/#reason","text":"Before we take a look at how autonomous transactions work, I\u2019d like to emphasize that this type of transaction is a powerful and therefore dangerous tool when used improperly. The true need for an autonomous transaction is very rare indeed. I would be very suspicious of any code that makes use of them\u2014that code would get extra examination. It is far too easy to accidentally introduce logical data integrity issues into a system using them. (page 300) In my experience, that is the only truly valid use of an autonomous transaction\u2014to log errors or informational messages in a manner that can be committed independently of the parent transaction. (page 305) -- Kyte, Thomas (2013). Expert Oracle Database Architecture. Third Edition . Apress. It is most likely not possible to distinguish legitimate uses of autonomous transactions from illegitimate ones via static code analysis. However, since we expect exactly one autonomous transaction per application, the number of false positives is manageable.","title":"Reason"},{"location":"4-language-usage/3-dml-and-sql/3-transaction-control/g-3330/#example-bad","text":"1 2 3 4 5 6 7 8 9 10 create or replace package body dept_api is procedure ins_dept ( in_dept_row in dept % rowtype ) is pragma autonomous_transaction ; begin insert into dept values in_dept_row ; commit ; -- required by autonomous transaction end ins_dept ; end dept_api ; /","title":"Example (bad)"},{"location":"4-language-usage/3-dml-and-sql/3-transaction-control/g-3330/#example-good","text":"1 2 3 4 5 6 7 8 9 10 create or replace package body dept_api is procedure ins_dept ( in_dept_row in dept % rowtype ) is begin insert into dept values in_dept_row ; -- transaction is commited in calling module -- after the completion of the unit of work end ins_dept ; end dept_api ; /","title":"Example (good)"},{"location":"4-language-usage/4-control-structures/1-cursor/g-4110/","text":"G-4110: Always use %NOTFOUND instead of NOT %FOUND to check whether a cursor returned data. Minor Maintainability Reason The readability of your code will be higher when you avoid negative sentences. Example (bad) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 declare cursor c_employees is select * from employees order by employee_id ; type t_employees_type is table of c_employees % rowtype ; t_employees t_employees_type ; co_bulk_size constant simple_integer : = 10 ; begin open c_employees ; << process_employees >> loop fetch c_employees bulk collect into t_employees limit co_bulk_size ; << display_employees >> for i in 1 .. t_employees . count () loop sys . dbms_output . put_line ( t_employees ( i ). last_name ); end loop display_employees ; exit process_employees when not c_employees % found ; end loop process_employees ; close c_employees ; end ; / Example (good) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 declare cursor c_employees is select * from employees order by employee_id ; type t_employees_type is table of c_employees % rowtype ; t_employees t_employees_type ; co_bulk_size constant simple_integer : = 10 ; begin open c_employees ; << process_employees >> loop fetch c_employees bulk collect into t_employees limit co_bulk_size ; << display_employees >> for i in 1 .. t_employees . count () loop sys . dbms_output . put_line ( t_employees ( i ). last_name ); end loop display_employees ; exit process_employees when c_employees % notfound ; end loop process_employees ; close c_employees ; end ; /","title":"G-4110: Always use %NOTFOUND instead of NOT %FOUND to check whether a cursor returned data."},{"location":"4-language-usage/4-control-structures/1-cursor/g-4110/#g-4110-always-use-notfound-instead-of-not-found-to-check-whether-a-cursor-returned-data","text":"Minor Maintainability","title":"G-4110: Always use %NOTFOUND instead of NOT %FOUND to check whether a cursor returned data."},{"location":"4-language-usage/4-control-structures/1-cursor/g-4110/#reason","text":"The readability of your code will be higher when you avoid negative sentences.","title":"Reason"},{"location":"4-language-usage/4-control-structures/1-cursor/g-4110/#example-bad","text":"1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 declare cursor c_employees is select * from employees order by employee_id ; type t_employees_type is table of c_employees % rowtype ; t_employees t_employees_type ; co_bulk_size constant simple_integer : = 10 ; begin open c_employees ; << process_employees >> loop fetch c_employees bulk collect into t_employees limit co_bulk_size ; << display_employees >> for i in 1 .. t_employees . count () loop sys . dbms_output . put_line ( t_employees ( i ). last_name ); end loop display_employees ; exit process_employees when not c_employees % found ; end loop process_employees ; close c_employees ; end ; /","title":"Example (bad)"},{"location":"4-language-usage/4-control-structures/1-cursor/g-4110/#example-good","text":"1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 declare cursor c_employees is select * from employees order by employee_id ; type t_employees_type is table of c_employees % rowtype ; t_employees t_employees_type ; co_bulk_size constant simple_integer : = 10 ; begin open c_employees ; << process_employees >> loop fetch c_employees bulk collect into t_employees limit co_bulk_size ; << display_employees >> for i in 1 .. t_employees . count () loop sys . dbms_output . put_line ( t_employees ( i ). last_name ); end loop display_employees ; exit process_employees when c_employees % notfound ; end loop process_employees ; close c_employees ; end ; /","title":"Example (good)"},{"location":"4-language-usage/4-control-structures/1-cursor/g-4120/","text":"G-4120: Avoid using %NOTFOUND directly after the FETCH when working with BULK OPERATIONS and LIMIT clause. Blocker Reliability Reason %notfound is set to true as soon as less than the number of rows defined by the limit clause has been read. Example (bad) The employees table holds 107 rows. The example below will only show 100 rows as the cursor attribute notfound is set to true as soon as the number of rows to be fetched defined by the limit clause is not fulfilled anymore. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 declare cursor c_employees is select * from employees order by employee_id ; type t_employees_type is table of c_employees % rowtype ; t_employees t_employees_type ; co_bulk_size constant simple_integer : = 10 ; begin open c_employees ; << process_employees >> loop fetch c_employees bulk collect into t_employees limit co_bulk_size ; exit process_employees when c_employees % notfound ; << display_employees >> for i in 1 .. t_employees . count () loop sys . dbms_output . put_line ( t_employees ( i ). last_name ); end loop display_employees ; end loop process_employees ; close c_employees ; end ; / Example (better) This example will show all 107 rows but execute one fetch too much (12 instead of 11). 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 declare cursor c_employees is select * from employees order by employee_id ; type t_employees_type is table of c_employees % rowtype ; t_employees t_employees_type ; co_bulk_size constant simple_integer : = 10 ; begin open c_employees ; << process_employees >> loop fetch c_employees bulk collect into t_employees limit co_bulk_size ; exit process_employees when t_employees . count () = 0 ; << display_employees >> for i in 1 .. t_employees . count () loop sys . dbms_output . put_line ( t_employees ( i ). last_name ); end loop display_employees ; end loop process_employees ; close c_employees ; end ; / Example (good) This example does the trick (11 fetches only to process all rows) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 declare cursor c_employees is select * from employees order by employee_id ; type t_employees_type is table of c_employees % rowtype ; t_employees t_employees_type ; co_bulk_size constant simple_integer : = 10 ; begin open c_employees ; << process_employees >> loop fetch c_employees bulk collect into t_employees limit co_bulk_size ; << display_employees >> for i in 1 .. t_employees . count () loop sys . dbms_output . put_line ( t_employees ( i ). last_name ); end loop display_employees ; exit process_employees when t_employees . count () <> co_bulk_size ; end loop process_employees ; close c_employees ; end ; /","title":"G-4120: Avoid using %NOTFOUND directly after the FETCH when working with BULK OPERATIONS and LIMIT clause."},{"location":"4-language-usage/4-control-structures/1-cursor/g-4120/#g-4120-avoid-using-notfound-directly-after-the-fetch-when-working-with-bulk-operations-and-limit-clause","text":"Blocker Reliability","title":"G-4120: Avoid using %NOTFOUND directly after the FETCH when working with BULK OPERATIONS and LIMIT clause."},{"location":"4-language-usage/4-control-structures/1-cursor/g-4120/#reason","text":"%notfound is set to true as soon as less than the number of rows defined by the limit clause has been read.","title":"Reason"},{"location":"4-language-usage/4-control-structures/1-cursor/g-4120/#example-bad","text":"The employees table holds 107 rows. The example below will only show 100 rows as the cursor attribute notfound is set to true as soon as the number of rows to be fetched defined by the limit clause is not fulfilled anymore. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 declare cursor c_employees is select * from employees order by employee_id ; type t_employees_type is table of c_employees % rowtype ; t_employees t_employees_type ; co_bulk_size constant simple_integer : = 10 ; begin open c_employees ; << process_employees >> loop fetch c_employees bulk collect into t_employees limit co_bulk_size ; exit process_employees when c_employees % notfound ; << display_employees >> for i in 1 .. t_employees . count () loop sys . dbms_output . put_line ( t_employees ( i ). last_name ); end loop display_employees ; end loop process_employees ; close c_employees ; end ; /","title":"Example (bad)"},{"location":"4-language-usage/4-control-structures/1-cursor/g-4120/#example-better","text":"This example will show all 107 rows but execute one fetch too much (12 instead of 11). 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 declare cursor c_employees is select * from employees order by employee_id ; type t_employees_type is table of c_employees % rowtype ; t_employees t_employees_type ; co_bulk_size constant simple_integer : = 10 ; begin open c_employees ; << process_employees >> loop fetch c_employees bulk collect into t_employees limit co_bulk_size ; exit process_employees when t_employees . count () = 0 ; << display_employees >> for i in 1 .. t_employees . count () loop sys . dbms_output . put_line ( t_employees ( i ). last_name ); end loop display_employees ; end loop process_employees ; close c_employees ; end ; /","title":"Example (better)"},{"location":"4-language-usage/4-control-structures/1-cursor/g-4120/#example-good","text":"This example does the trick (11 fetches only to process all rows) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 declare cursor c_employees is select * from employees order by employee_id ; type t_employees_type is table of c_employees % rowtype ; t_employees t_employees_type ; co_bulk_size constant simple_integer : = 10 ; begin open c_employees ; << process_employees >> loop fetch c_employees bulk collect into t_employees limit co_bulk_size ; << display_employees >> for i in 1 .. t_employees . count () loop sys . dbms_output . put_line ( t_employees ( i ). last_name ); end loop display_employees ; exit process_employees when t_employees . count () <> co_bulk_size ; end loop process_employees ; close c_employees ; end ; /","title":"Example (good)"},{"location":"4-language-usage/4-control-structures/1-cursor/g-4130/","text":"G-4130: Always close locally opened cursors. Blocker Efficiency, Reliability Reason Any cursors left open can consume additional memory space (i.e. SGA) within the database instance, potentially in both the shared and private SQL pools. Furthermore, failure to explicitly close cursors may also cause the owning session to exceed its maximum limit of open cursors (as specified by the open_cursors database initialization parameter), potentially resulting in the Oracle Database error of \u201cORA-01000: maximum open cursors exceeded\u201d. Example (bad) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 create or replace package body employee_api as function department_salary ( in_dept_id in integer ) -- NOSONAR: non-deterministic return number is cursor c_department_salary ( p_dept_id in departments . department_id % type ) is select sum ( salary ) as sum_salary from employees where department_id = p_dept_id ; r_department_salary c_department_salary % rowtype ; co_dept_id constant departments . department_id % type : = in_dept_id ; begin open c_department_salary ( p_dept_id => co_dept_id ); fetch c_department_salary into r_department_salary ; return r_department_salary . sum_salary ; end department_salary ; end employee_api ; / Example (good) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 create or replace package body employee_api as function department_salary ( in_dept_id in integer ) -- NOSONAR: non-deterministic return number is cursor c_department_salary ( p_dept_id in departments . department_id % type ) is select sum ( salary ) as sum_salary from employees where department_id = p_dept_id ; r_department_salary c_department_salary % rowtype ; co_dept_id constant departments . department_id % type : = in_dept_id ; begin open c_department_salary ( p_dept_id => co_dept_id ); fetch c_department_salary into r_department_salary ; close c_department_salary ; return r_department_salary . sum_salary ; end department_salary ; end employee_api ; /","title":"G-4130: Always close locally opened cursors."},{"location":"4-language-usage/4-control-structures/1-cursor/g-4130/#g-4130-always-close-locally-opened-cursors","text":"Blocker Efficiency, Reliability","title":"G-4130: Always close locally opened cursors."},{"location":"4-language-usage/4-control-structures/1-cursor/g-4130/#reason","text":"Any cursors left open can consume additional memory space (i.e. SGA) within the database instance, potentially in both the shared and private SQL pools. Furthermore, failure to explicitly close cursors may also cause the owning session to exceed its maximum limit of open cursors (as specified by the open_cursors database initialization parameter), potentially resulting in the Oracle Database error of \u201cORA-01000: maximum open cursors exceeded\u201d.","title":"Reason"},{"location":"4-language-usage/4-control-structures/1-cursor/g-4130/#example-bad","text":"1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 create or replace package body employee_api as function department_salary ( in_dept_id in integer ) -- NOSONAR: non-deterministic return number is cursor c_department_salary ( p_dept_id in departments . department_id % type ) is select sum ( salary ) as sum_salary from employees where department_id = p_dept_id ; r_department_salary c_department_salary % rowtype ; co_dept_id constant departments . department_id % type : = in_dept_id ; begin open c_department_salary ( p_dept_id => co_dept_id ); fetch c_department_salary into r_department_salary ; return r_department_salary . sum_salary ; end department_salary ; end employee_api ; /","title":"Example (bad)"},{"location":"4-language-usage/4-control-structures/1-cursor/g-4130/#example-good","text":"1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 create or replace package body employee_api as function department_salary ( in_dept_id in integer ) -- NOSONAR: non-deterministic return number is cursor c_department_salary ( p_dept_id in departments . department_id % type ) is select sum ( salary ) as sum_salary from employees where department_id = p_dept_id ; r_department_salary c_department_salary % rowtype ; co_dept_id constant departments . department_id % type : = in_dept_id ; begin open c_department_salary ( p_dept_id => co_dept_id ); fetch c_department_salary into r_department_salary ; close c_department_salary ; return r_department_salary . sum_salary ; end department_salary ; end employee_api ; /","title":"Example (good)"},{"location":"4-language-usage/4-control-structures/1-cursor/g-4140/","text":"G-4140: Avoid executing any statements between a SQL operation and the usage of an implicit cursor attribute. Blocker Reliability Reason The Oracle Database provides a variety of cursor attributes (like %found and %rowcount ) that can be used to obtain information about the status of a cursor, either implicit or explicit. You should avoid inserting any statements between the cursor operation and the use of an attribute against that cursor. Interposing such a statement can affect the value returned by the attribute, thereby potentially corrupting the logic of your program. In the following example, a procedure call is inserted between the delete statement and a check for the value of sql%rowcount , which returns the number of rows modified by that last SQL statement executed in the session. If this procedure includes a commit / rollback or another implicit cursor the value of sql%rowcount is affected. Example (bad) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 create or replace package body employee_api as co_one constant simple_integer : = 1 ; co_msg constant types_up . text : = 'Do something based on ' ; procedure process_dept ( in_dept_id in departments . department_id % type ) is co_dept_id constant departments . department_id % type : = in_dept_id ; begin sys . dbms_output . put_line ( co_msg || co_dept_id ); end process_dept ; procedure remove_employee ( in_employee_id in employees . employee_id % type ) is co_employee_id constant departments . department_id % type : = in_employee_id ; l_dept_id employees . department_id % type ; begin delete from employees where employee_id = co_employee_id returning department_id into l_dept_id ; process_dept ( in_dept_id => l_dept_id ); if sql % rowcount > co_one then -- too many rows deleted. rollback ; end if ; end remove_employee ; end employee_api ; / Example (good) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 create or replace package body employee_api as co_one constant simple_integer : = 1 ; co_msg constant types_up . text : = 'Do something based on ' ; procedure process_dept ( in_dept_id in departments . department_id % type ) is co_dept_id constant departments . department_id % type : = in_dept_id ; begin sys . dbms_output . put_line ( co_msg || co_dept_id ); end process_dept ; procedure remove_employee ( in_employee_id in employees . employee_id % type ) is co_employee_id constant departments . department_id % type : = in_employee_id ; l_dept_id employees . department_id % type ; l_deleted_emps simple_integer ; begin delete from employees where employee_id = co_employee_id returning department_id into l_dept_id ; l_deleted_emps : = sql % rowcount ; process_dept ( in_dept_id => l_dept_id ); if l_deleted_emps > co_one then -- too many rows deleted. rollback ; end if ; end remove_employee ; end employee_api ; /","title":"G-4140: Avoid executing any statements between a SQL operation and the usage of an implicit cursor attribute."},{"location":"4-language-usage/4-control-structures/1-cursor/g-4140/#g-4140-avoid-executing-any-statements-between-a-sql-operation-and-the-usage-of-an-implicit-cursor-attribute","text":"Blocker Reliability","title":"G-4140: Avoid executing any statements between a SQL operation and the usage of an implicit cursor attribute."},{"location":"4-language-usage/4-control-structures/1-cursor/g-4140/#reason","text":"The Oracle Database provides a variety of cursor attributes (like %found and %rowcount ) that can be used to obtain information about the status of a cursor, either implicit or explicit. You should avoid inserting any statements between the cursor operation and the use of an attribute against that cursor. Interposing such a statement can affect the value returned by the attribute, thereby potentially corrupting the logic of your program. In the following example, a procedure call is inserted between the delete statement and a check for the value of sql%rowcount , which returns the number of rows modified by that last SQL statement executed in the session. If this procedure includes a commit / rollback or another implicit cursor the value of sql%rowcount is affected.","title":"Reason"},{"location":"4-language-usage/4-control-structures/1-cursor/g-4140/#example-bad","text":"1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 create or replace package body employee_api as co_one constant simple_integer : = 1 ; co_msg constant types_up . text : = 'Do something based on ' ; procedure process_dept ( in_dept_id in departments . department_id % type ) is co_dept_id constant departments . department_id % type : = in_dept_id ; begin sys . dbms_output . put_line ( co_msg || co_dept_id ); end process_dept ; procedure remove_employee ( in_employee_id in employees . employee_id % type ) is co_employee_id constant departments . department_id % type : = in_employee_id ; l_dept_id employees . department_id % type ; begin delete from employees where employee_id = co_employee_id returning department_id into l_dept_id ; process_dept ( in_dept_id => l_dept_id ); if sql % rowcount > co_one then -- too many rows deleted. rollback ; end if ; end remove_employee ; end employee_api ; /","title":"Example (bad)"},{"location":"4-language-usage/4-control-structures/1-cursor/g-4140/#example-good","text":"1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 create or replace package body employee_api as co_one constant simple_integer : = 1 ; co_msg constant types_up . text : = 'Do something based on ' ; procedure process_dept ( in_dept_id in departments . department_id % type ) is co_dept_id constant departments . department_id % type : = in_dept_id ; begin sys . dbms_output . put_line ( co_msg || co_dept_id ); end process_dept ; procedure remove_employee ( in_employee_id in employees . employee_id % type ) is co_employee_id constant departments . department_id % type : = in_employee_id ; l_dept_id employees . department_id % type ; l_deleted_emps simple_integer ; begin delete from employees where employee_id = co_employee_id returning department_id into l_dept_id ; l_deleted_emps : = sql % rowcount ; process_dept ( in_dept_id => l_dept_id ); if l_deleted_emps > co_one then -- too many rows deleted. rollback ; end if ; end remove_employee ; end employee_api ; /","title":"Example (good)"},{"location":"4-language-usage/4-control-structures/2-case-if-decode-nvl-nvl2-coalesce/g-4210/","text":"G-4210: Try to use CASE rather than an IF statement with multiple ELSIF paths. Minor Maintainability, Testability Reason if statements containing multiple elsif tend to become complex quickly. Example (bad) 1 2 3 4 5 6 7 8 9 10 11 12 declare l_color types_up . color_code_type ; begin if l_color = constants_up . co_red then my_package . do_red (); elsif l_color = constants_up . co_blue then my_package . do_blue (); elsif l_color = constants_up . co_black then my_package . do_black (); end if ; end ; / Example (good) 1 2 3 4 5 6 7 8 9 10 11 12 13 declare l_color types_up . color_code_type ; begin case l_color when constants_up . co_red then my_package . do_red (); when constants_up . co_blue then my_package . do_blue (); when constants_up . co_black then my_package . do_black (); end case ; end ; /","title":"G-4210: Try to use CASE rather than an IF statement with multiple ELSIF paths."},{"location":"4-language-usage/4-control-structures/2-case-if-decode-nvl-nvl2-coalesce/g-4210/#g-4210-try-to-use-case-rather-than-an-if-statement-with-multiple-elsif-paths","text":"Minor Maintainability, Testability","title":"G-4210: Try to use CASE rather than an IF statement with multiple ELSIF paths."},{"location":"4-language-usage/4-control-structures/2-case-if-decode-nvl-nvl2-coalesce/g-4210/#reason","text":"if statements containing multiple elsif tend to become complex quickly.","title":"Reason"},{"location":"4-language-usage/4-control-structures/2-case-if-decode-nvl-nvl2-coalesce/g-4210/#example-bad","text":"1 2 3 4 5 6 7 8 9 10 11 12 declare l_color types_up . color_code_type ; begin if l_color = constants_up . co_red then my_package . do_red (); elsif l_color = constants_up . co_blue then my_package . do_blue (); elsif l_color = constants_up . co_black then my_package . do_black (); end if ; end ; /","title":"Example (bad)"},{"location":"4-language-usage/4-control-structures/2-case-if-decode-nvl-nvl2-coalesce/g-4210/#example-good","text":"1 2 3 4 5 6 7 8 9 10 11 12 13 declare l_color types_up . color_code_type ; begin case l_color when constants_up . co_red then my_package . do_red (); when constants_up . co_blue then my_package . do_blue (); when constants_up . co_black then my_package . do_black (); end case ; end ; /","title":"Example (good)"},{"location":"4-language-usage/4-control-structures/2-case-if-decode-nvl-nvl2-coalesce/g-4220/","text":"G-4220: Try to use CASE rather than DECODE. Major Maintainability, Portability Reason decode is an Oracle Database specific function hard to understand and restricted to SQL only. The \u201cnewer\u201d case function is much more common, has a better readability and may be used within PL/SQL too. Be careful that decode can handle null values, which the simple case cannot - for such cases you must use the searched case and is null instead. Example (bad) 1 2 3 4 5 6 -- @formatter:off select decode ( ctry . country_code , constants_up . co_ctry_uk , constants_up . co_lang_english , constants_up . co_ctry_fr , constants_up . co_lang_french , constants_up . co_ctry_de , constants_up . co_lang_german , constants_up . co_lang_not_supported ) from countries ctry ; null values can be compared in decode : 1 2 3 4 5 6 -- @formatter:off select decode ( ctry . country_code , constants_up . co_ctry_uk , constants_up . co_lang_english , constants_up . co_ctry_fr , constants_up . co_lang_french , null , constants_up . co_lang_unknown , constants_up . co_lang_not_supported ) from countries ctry ; Example (good) 1 2 3 4 5 6 7 8 9 10 11 select case ctry . country_code when constants_up . co_ctry_uk then constants_up . co_lang_english when constants_up . co_ctry_fr then constants_up . co_lang_french when constants_up . co_ctry_de then constants_up . co_lang_german else constants_up . co_lang_not_supported end from countries ctry ; Simple case can not compare null values, instead the searched case expression must be used: 1 2 3 4 5 6 7 8 9 10 11 select case when ctry . country_code = constants_up . co_ctry_uk then constants_up . co_lang_english when ctry . country_code = constants_up . co_ctry_fr then constants_up . co_lang_french when ctry . country_code is null then constants_up . co_lang_unknown else constants_up . co_lang_not_supported end from countries ctry ;","title":"G-4220: Try to use CASE rather than DECODE."},{"location":"4-language-usage/4-control-structures/2-case-if-decode-nvl-nvl2-coalesce/g-4220/#g-4220-try-to-use-case-rather-than-decode","text":"Major Maintainability, Portability","title":"G-4220: Try to use CASE rather than DECODE."},{"location":"4-language-usage/4-control-structures/2-case-if-decode-nvl-nvl2-coalesce/g-4220/#reason","text":"decode is an Oracle Database specific function hard to understand and restricted to SQL only. The \u201cnewer\u201d case function is much more common, has a better readability and may be used within PL/SQL too. Be careful that decode can handle null values, which the simple case cannot - for such cases you must use the searched case and is null instead.","title":"Reason"},{"location":"4-language-usage/4-control-structures/2-case-if-decode-nvl-nvl2-coalesce/g-4220/#example-bad","text":"1 2 3 4 5 6 -- @formatter:off select decode ( ctry . country_code , constants_up . co_ctry_uk , constants_up . co_lang_english , constants_up . co_ctry_fr , constants_up . co_lang_french , constants_up . co_ctry_de , constants_up . co_lang_german , constants_up . co_lang_not_supported ) from countries ctry ; null values can be compared in decode : 1 2 3 4 5 6 -- @formatter:off select decode ( ctry . country_code , constants_up . co_ctry_uk , constants_up . co_lang_english , constants_up . co_ctry_fr , constants_up . co_lang_french , null , constants_up . co_lang_unknown , constants_up . co_lang_not_supported ) from countries ctry ;","title":"Example (bad)"},{"location":"4-language-usage/4-control-structures/2-case-if-decode-nvl-nvl2-coalesce/g-4220/#example-good","text":"1 2 3 4 5 6 7 8 9 10 11 select case ctry . country_code when constants_up . co_ctry_uk then constants_up . co_lang_english when constants_up . co_ctry_fr then constants_up . co_lang_french when constants_up . co_ctry_de then constants_up . co_lang_german else constants_up . co_lang_not_supported end from countries ctry ; Simple case can not compare null values, instead the searched case expression must be used: 1 2 3 4 5 6 7 8 9 10 11 select case when ctry . country_code = constants_up . co_ctry_uk then constants_up . co_lang_english when ctry . country_code = constants_up . co_ctry_fr then constants_up . co_lang_french when ctry . country_code is null then constants_up . co_lang_unknown else constants_up . co_lang_not_supported end from countries ctry ;","title":"Example (good)"},{"location":"4-language-usage/4-control-structures/2-case-if-decode-nvl-nvl2-coalesce/g-4230/","text":"G-4230: Always use a COALESCE instead of a NVL command, if parameter 2 of the NVL function is a function call or a SELECT statement. Critical Efficiency, Reliability Reason The nvl function always evaluates both parameters before deciding which one to use. This can be harmful if parameter 2 is either a function call or a select statement, as it will be executed regardless of whether parameter 1 contains a null value or not. The coalesce function does not have this drawback. Example (bad) 1 2 select nvl ( dummy , my_package . expensive_null ( value_in => dummy )) from dual ; Example (good) 1 2 select coalesce ( dummy , my_package . expensive_null ( value_in => dummy )) from dual ;","title":"G-4230: Always use a COALESCE instead of a NVL command, if parameter 2 of the NVL function is a function call or a SELECT statement."},{"location":"4-language-usage/4-control-structures/2-case-if-decode-nvl-nvl2-coalesce/g-4230/#g-4230-always-use-a-coalesce-instead-of-a-nvl-command-if-parameter-2-of-the-nvl-function-is-a-function-call-or-a-select-statement","text":"Critical Efficiency, Reliability","title":"G-4230: Always use a COALESCE instead of a NVL command, if parameter 2 of the NVL function is a function call or a SELECT statement."},{"location":"4-language-usage/4-control-structures/2-case-if-decode-nvl-nvl2-coalesce/g-4230/#reason","text":"The nvl function always evaluates both parameters before deciding which one to use. This can be harmful if parameter 2 is either a function call or a select statement, as it will be executed regardless of whether parameter 1 contains a null value or not. The coalesce function does not have this drawback.","title":"Reason"},{"location":"4-language-usage/4-control-structures/2-case-if-decode-nvl-nvl2-coalesce/g-4230/#example-bad","text":"1 2 select nvl ( dummy , my_package . expensive_null ( value_in => dummy )) from dual ;","title":"Example (bad)"},{"location":"4-language-usage/4-control-structures/2-case-if-decode-nvl-nvl2-coalesce/g-4230/#example-good","text":"1 2 select coalesce ( dummy , my_package . expensive_null ( value_in => dummy )) from dual ;","title":"Example (good)"},{"location":"4-language-usage/4-control-structures/2-case-if-decode-nvl-nvl2-coalesce/g-4240/","text":"G-4240: Always use a CASE instead of a NVL2 command if parameter 2 or 3 of NVL2 is either a function call or a SELECT statement. Critical Efficiency, Reliability Reason The nvl2 function always evaluates all parameters before deciding which one to use. This can be harmful, if parameter 2 or 3 is either a function call or a select statement, as they will be executed regardless of whether parameter 1 contains a null value or not. Example (bad) 1 2 3 select nvl2 ( dummy , my_package . expensive_nn ( value_in => dummy ) , my_package . expensive_null ( value_in => dummy )) from dual ; Example (good) 1 2 3 4 5 6 7 select case when dummy is null then my_package . expensive_null ( value_in => dummy ) else my_package . expensive_nn ( value_in => dummy ) end from dual ;","title":"G-4240: Always use a CASE instead of a NVL2 command if parameter 2 or 3 of NVL2 is either a function call or a SELECT statement."},{"location":"4-language-usage/4-control-structures/2-case-if-decode-nvl-nvl2-coalesce/g-4240/#g-4240-always-use-a-case-instead-of-a-nvl2-command-if-parameter-2-or-3-of-nvl2-is-either-a-function-call-or-a-select-statement","text":"Critical Efficiency, Reliability","title":"G-4240: Always use a CASE instead of a NVL2 command if parameter 2 or 3 of NVL2 is either a function call or a SELECT statement."},{"location":"4-language-usage/4-control-structures/2-case-if-decode-nvl-nvl2-coalesce/g-4240/#reason","text":"The nvl2 function always evaluates all parameters before deciding which one to use. This can be harmful, if parameter 2 or 3 is either a function call or a select statement, as they will be executed regardless of whether parameter 1 contains a null value or not.","title":"Reason"},{"location":"4-language-usage/4-control-structures/2-case-if-decode-nvl-nvl2-coalesce/g-4240/#example-bad","text":"1 2 3 select nvl2 ( dummy , my_package . expensive_nn ( value_in => dummy ) , my_package . expensive_null ( value_in => dummy )) from dual ;","title":"Example (bad)"},{"location":"4-language-usage/4-control-structures/2-case-if-decode-nvl-nvl2-coalesce/g-4240/#example-good","text":"1 2 3 4 5 6 7 select case when dummy is null then my_package . expensive_null ( value_in => dummy ) else my_package . expensive_nn ( value_in => dummy ) end from dual ;","title":"Example (good)"},{"location":"4-language-usage/4-control-structures/2-case-if-decode-nvl-nvl2-coalesce/g-4250/","text":"G-4250: Avoid using identical conditions in different branches of the same IF or CASE statement. Blocker Maintainability, Reliability, Testability Reason Conditions are evaluated top to bottom in branches of a case statement or chain of if / elsif statements. The first condition to evaluate as true leads to that branch being executed, the rest will never execute. Having an identical duplicated condition in another branch will never be reached and will be dead code. Example (bad) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 declare l_color types_up . color_code_type ; begin case l_color when constants_up . co_red then my_package . do_red (); when constants_up . co_blue then my_package . do_blue (); when constants_up . co_red then -- never reached my_package . do_black (); -- dead code else null ; end case ; end ; / Example (good) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 declare l_color types_up . color_code_type ; begin case l_color when constants_up . co_red then my_package . do_red (); when constants_up . co_blue then my_package . do_blue (); when constants_up . co_black then my_package . do_black (); else null ; end case ; end ; /","title":"G-4250: Avoid using identical conditions in different branches of the same IF or CASE statement."},{"location":"4-language-usage/4-control-structures/2-case-if-decode-nvl-nvl2-coalesce/g-4250/#g-4250-avoid-using-identical-conditions-in-different-branches-of-the-same-if-or-case-statement","text":"Blocker Maintainability, Reliability, Testability","title":"G-4250: Avoid using identical conditions in different branches of the same IF or CASE statement."},{"location":"4-language-usage/4-control-structures/2-case-if-decode-nvl-nvl2-coalesce/g-4250/#reason","text":"Conditions are evaluated top to bottom in branches of a case statement or chain of if / elsif statements. The first condition to evaluate as true leads to that branch being executed, the rest will never execute. Having an identical duplicated condition in another branch will never be reached and will be dead code.","title":"Reason"},{"location":"4-language-usage/4-control-structures/2-case-if-decode-nvl-nvl2-coalesce/g-4250/#example-bad","text":"1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 declare l_color types_up . color_code_type ; begin case l_color when constants_up . co_red then my_package . do_red (); when constants_up . co_blue then my_package . do_blue (); when constants_up . co_red then -- never reached my_package . do_black (); -- dead code else null ; end case ; end ; /","title":"Example (bad)"},{"location":"4-language-usage/4-control-structures/2-case-if-decode-nvl-nvl2-coalesce/g-4250/#example-good","text":"1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 declare l_color types_up . color_code_type ; begin case l_color when constants_up . co_red then my_package . do_red (); when constants_up . co_blue then my_package . do_blue (); when constants_up . co_black then my_package . do_black (); else null ; end case ; end ; /","title":"Example (good)"},{"location":"4-language-usage/4-control-structures/2-case-if-decode-nvl-nvl2-coalesce/g-4260/","text":"G-4260: Avoid inverting boolean conditions with NOT. Minor Maintainability, Testability Reason It is more readable to use the opposite comparison operator instead of inverting the comparison with not . Example (bad) 1 2 3 4 5 6 7 8 declare l_color types_up . color_code_type ; begin if not l_color != constants_up . co_red then my_package . do_red (); end if ; end ; / Example (good) 1 2 3 4 5 6 7 8 declare l_color types_up . color_code_type ; begin if l_color = constants_up . co_red then my_package . do_red (); end if ; end ; /","title":"G-4260: Avoid inverting boolean conditions with NOT."},{"location":"4-language-usage/4-control-structures/2-case-if-decode-nvl-nvl2-coalesce/g-4260/#g-4260-avoid-inverting-boolean-conditions-with-not","text":"Minor Maintainability, Testability","title":"G-4260: Avoid inverting boolean conditions with NOT."},{"location":"4-language-usage/4-control-structures/2-case-if-decode-nvl-nvl2-coalesce/g-4260/#reason","text":"It is more readable to use the opposite comparison operator instead of inverting the comparison with not .","title":"Reason"},{"location":"4-language-usage/4-control-structures/2-case-if-decode-nvl-nvl2-coalesce/g-4260/#example-bad","text":"1 2 3 4 5 6 7 8 declare l_color types_up . color_code_type ; begin if not l_color != constants_up . co_red then my_package . do_red (); end if ; end ; /","title":"Example (bad)"},{"location":"4-language-usage/4-control-structures/2-case-if-decode-nvl-nvl2-coalesce/g-4260/#example-good","text":"1 2 3 4 5 6 7 8 declare l_color types_up . color_code_type ; begin if l_color = constants_up . co_red then my_package . do_red (); end if ; end ; /","title":"Example (good)"},{"location":"4-language-usage/4-control-structures/2-case-if-decode-nvl-nvl2-coalesce/g-4270/","text":"G-4270: Avoid comparing boolean values to boolean literals. Minor Maintainability, Testability Reason It is more readable to simply use the boolean value as a condition itself, rather than use a comparison condition comparing the boolean value to the literals true or false . Example (bad) 1 2 3 4 5 6 7 8 9 10 declare co_string constant types_up . text : = '42' ; l_is_valid boolean ; begin l_is_valid : = my_package . is_valid_number ( co_string ); if l_is_valid = true then my_package . convert_number ( l_string ); end if ; end ; / Example (good) 1 2 3 4 5 6 7 8 9 10 declare co_string constant types_up . text : = '42' ; l_is_valid boolean ; begin l_is_valid : = my_package . is_valid_number ( co_string ); if l_is_valid then my_package . convert_number ( l_string ); end if ; end ; /","title":"G-4270: Avoid comparing boolean values to boolean literals."},{"location":"4-language-usage/4-control-structures/2-case-if-decode-nvl-nvl2-coalesce/g-4270/#g-4270-avoid-comparing-boolean-values-to-boolean-literals","text":"Minor Maintainability, Testability","title":"G-4270: Avoid comparing boolean values to boolean literals."},{"location":"4-language-usage/4-control-structures/2-case-if-decode-nvl-nvl2-coalesce/g-4270/#reason","text":"It is more readable to simply use the boolean value as a condition itself, rather than use a comparison condition comparing the boolean value to the literals true or false .","title":"Reason"},{"location":"4-language-usage/4-control-structures/2-case-if-decode-nvl-nvl2-coalesce/g-4270/#example-bad","text":"1 2 3 4 5 6 7 8 9 10 declare co_string constant types_up . text : = '42' ; l_is_valid boolean ; begin l_is_valid : = my_package . is_valid_number ( co_string ); if l_is_valid = true then my_package . convert_number ( l_string ); end if ; end ; /","title":"Example (bad)"},{"location":"4-language-usage/4-control-structures/2-case-if-decode-nvl-nvl2-coalesce/g-4270/#example-good","text":"1 2 3 4 5 6 7 8 9 10 declare co_string constant types_up . text : = '42' ; l_is_valid boolean ; begin l_is_valid : = my_package . is_valid_number ( co_string ); if l_is_valid then my_package . convert_number ( l_string ); end if ; end ; /","title":"Example (good)"},{"location":"4-language-usage/4-control-structures/3-flow-control/g-4310/","text":"G-4310: Never use GOTO statements in your code. Major Maintainability, Testability Reason Code containing gotos is hard to format. Indentation should be used to show logical structure, and gotos have an effect on logical structure. Using indentation to show the logical structure of a goto and its target, however, is difficult or impossible. (...) Use of gotos is a matter of religion. My dogma is that in modern languages, you can easily replace nine out of ten gotos with equivalent sequential constructs. In these simple cases, you should replace gotos out of habit. In the hard cases, you can still exorcise the goto in nine out of ten cases: You can break the code into smaller routines, use try-finally, use nested ifs, test and retest a status variable, or restructure a conditional. Eliminating the goto is harder in these cases, but it\u2019s good mental exercise (...). -- McConnell, Steve C. (2004). Code Complete. Second Edition . Microsoft Press. Example (bad) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 create or replace package body my_package is procedure password_check ( in_password in varchar2 ) is co_password constant dba_users . password % type : = in_password ; co_digitarray constant string ( 10 char ) : = '0123456789' ; co_lower_bound constant simple_integer : = 1 ; co_errno constant simple_integer : = - 20501 ; co_errmsg constant string ( 100 char ) : = 'Password must contain a digit.' ; l_isdigit boolean : = false ; l_len_pw pls_integer ; l_len_array pls_integer ; begin l_len_pw : = length ( co_password ); l_len_array : = length ( co_digitarray ); << check_digit >> for i in co_lower_bound .. l_len_array loop << check_pw_char >> for j in co_lower_bound .. l_len_pw loop if substr ( co_password , j , 1 ) = substr ( co_digitarray , i , 1 ) then l_isdigit : = true ; goto check_other_things ; end if ; end loop check_pw_char ; end loop check_digit ; << check_other_things >> null ; if not l_isdigit then raise_application_error ( co_errno , co_errmsg ); end if ; end password_check ; end my_package ; / Example (better) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 create or replace package body my_package is procedure password_check ( in_password in varchar2 ) is co_password constant dba_users . password % type : = in_password ; co_digitarray constant string ( 10 char ) : = '0123456789' ; co_lower_bound constant simple_integer : = 1 ; co_errno constant simple_integer : = - 20501 ; co_errmsg constant string ( 100 char ) : = 'Password must contain a digit.' ; l_isdigit boolean : = false ; l_len_pw pls_integer ; l_len_array pls_integer ; begin l_len_pw : = length ( co_password ); l_len_array : = length ( co_digitarray ); << check_digit >> for i in co_lower_bound .. l_len_array loop << check_pw_char >> for j in co_lower_bound .. l_len_pw loop if substr ( co_password , j , 1 ) = substr ( co_digitarray , i , 1 ) then l_isdigit : = true ; end if ; end loop check_pw_char ; end loop check_digit ; << check_other_things >> null ; if not l_isdigit then raise_application_error ( co_errno , co_errmsg ); end if ; end password_check ; end my_package ; / Example (good) 1 2 3 4 5 6 7 8 9 10 11 12 13 create or replace package body my_package is procedure password_check ( in_password in varchar2 ) is co_password constant dba_users . password % type : = in_password ; co_digitpattern constant string ( 10 char ) : = '\\d' ; co_errno constant simple_integer : = - 20501 ; co_errmsg constant string ( 100 char ) : = 'Password must contain a digit.' ; begin if not regexp_like ( co_password , co_digitpattern ) then raise_application_error ( co_errno , co_errmsg ); end if ; end password_check ; end my_package ; /","title":"G-4310: Never use GOTO statements in your code."},{"location":"4-language-usage/4-control-structures/3-flow-control/g-4310/#g-4310-never-use-goto-statements-in-your-code","text":"Major Maintainability, Testability","title":"G-4310: Never use GOTO statements in your code."},{"location":"4-language-usage/4-control-structures/3-flow-control/g-4310/#reason","text":"Code containing gotos is hard to format. Indentation should be used to show logical structure, and gotos have an effect on logical structure. Using indentation to show the logical structure of a goto and its target, however, is difficult or impossible. (...) Use of gotos is a matter of religion. My dogma is that in modern languages, you can easily replace nine out of ten gotos with equivalent sequential constructs. In these simple cases, you should replace gotos out of habit. In the hard cases, you can still exorcise the goto in nine out of ten cases: You can break the code into smaller routines, use try-finally, use nested ifs, test and retest a status variable, or restructure a conditional. Eliminating the goto is harder in these cases, but it\u2019s good mental exercise (...). -- McConnell, Steve C. (2004). Code Complete. Second Edition . Microsoft Press.","title":"Reason"},{"location":"4-language-usage/4-control-structures/3-flow-control/g-4310/#example-bad","text":"1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 create or replace package body my_package is procedure password_check ( in_password in varchar2 ) is co_password constant dba_users . password % type : = in_password ; co_digitarray constant string ( 10 char ) : = '0123456789' ; co_lower_bound constant simple_integer : = 1 ; co_errno constant simple_integer : = - 20501 ; co_errmsg constant string ( 100 char ) : = 'Password must contain a digit.' ; l_isdigit boolean : = false ; l_len_pw pls_integer ; l_len_array pls_integer ; begin l_len_pw : = length ( co_password ); l_len_array : = length ( co_digitarray ); << check_digit >> for i in co_lower_bound .. l_len_array loop << check_pw_char >> for j in co_lower_bound .. l_len_pw loop if substr ( co_password , j , 1 ) = substr ( co_digitarray , i , 1 ) then l_isdigit : = true ; goto check_other_things ; end if ; end loop check_pw_char ; end loop check_digit ; << check_other_things >> null ; if not l_isdigit then raise_application_error ( co_errno , co_errmsg ); end if ; end password_check ; end my_package ; /","title":"Example (bad)"},{"location":"4-language-usage/4-control-structures/3-flow-control/g-4310/#example-better","text":"1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 create or replace package body my_package is procedure password_check ( in_password in varchar2 ) is co_password constant dba_users . password % type : = in_password ; co_digitarray constant string ( 10 char ) : = '0123456789' ; co_lower_bound constant simple_integer : = 1 ; co_errno constant simple_integer : = - 20501 ; co_errmsg constant string ( 100 char ) : = 'Password must contain a digit.' ; l_isdigit boolean : = false ; l_len_pw pls_integer ; l_len_array pls_integer ; begin l_len_pw : = length ( co_password ); l_len_array : = length ( co_digitarray ); << check_digit >> for i in co_lower_bound .. l_len_array loop << check_pw_char >> for j in co_lower_bound .. l_len_pw loop if substr ( co_password , j , 1 ) = substr ( co_digitarray , i , 1 ) then l_isdigit : = true ; end if ; end loop check_pw_char ; end loop check_digit ; << check_other_things >> null ; if not l_isdigit then raise_application_error ( co_errno , co_errmsg ); end if ; end password_check ; end my_package ; /","title":"Example (better)"},{"location":"4-language-usage/4-control-structures/3-flow-control/g-4310/#example-good","text":"1 2 3 4 5 6 7 8 9 10 11 12 13 create or replace package body my_package is procedure password_check ( in_password in varchar2 ) is co_password constant dba_users . password % type : = in_password ; co_digitpattern constant string ( 10 char ) : = '\\d' ; co_errno constant simple_integer : = - 20501 ; co_errmsg constant string ( 100 char ) : = 'Password must contain a digit.' ; begin if not regexp_like ( co_password , co_digitpattern ) then raise_application_error ( co_errno , co_errmsg ); end if ; end password_check ; end my_package ; /","title":"Example (good)"},{"location":"4-language-usage/4-control-structures/3-flow-control/g-4320/","text":"G-4320: Always label your loops. Minor Maintainability Reason It's a good alternative for comments to indicate the start and end of a named loop processing. Example (bad) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 declare i integer ; co_min_value constant simple_integer : = 1 ; co_max_value constant simple_integer : = 10 ; co_increment constant simple_integer : = 1 ; begin i : = co_min_value ; while ( i <= co_max_value ) loop i : = i + co_increment ; end loop ; loop exit when true ; -- NOSONAR: G-4380 cannot use labelled exit here end loop ; for i in co_min_value .. co_max_value loop sys . dbms_output . put_line ( i ); end loop ; for r_employee in ( select last_name from employees ) loop sys . dbms_output . put_line ( r_employee . last_name ); end loop ; end ; / Example (good) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 declare i integer ; co_min_value constant simple_integer : = 1 ; co_max_value constant simple_integer : = 10 ; co_increment constant simple_integer : = 1 ; begin i : = co_min_value ; << while_loop >> while ( i <= co_max_value ) loop i : = i + co_increment ; end loop while_loop ; << basic_loop >> loop exit basic_loop when true ; end loop basic_loop ; << for_loop >> for i in co_min_value .. co_max_value loop sys . dbms_output . put_line ( i ); end loop for_loop ; << process_employees >> for r_employee in ( select last_name from employees ) loop sys . dbms_output . put_line ( r_employee . last_name ); end loop process_employees ; end ; /","title":"G-4320: Always label your loops."},{"location":"4-language-usage/4-control-structures/3-flow-control/g-4320/#g-4320-always-label-your-loops","text":"Minor Maintainability","title":"G-4320: Always label your loops."},{"location":"4-language-usage/4-control-structures/3-flow-control/g-4320/#reason","text":"It's a good alternative for comments to indicate the start and end of a named loop processing.","title":"Reason"},{"location":"4-language-usage/4-control-structures/3-flow-control/g-4320/#example-bad","text":"1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 declare i integer ; co_min_value constant simple_integer : = 1 ; co_max_value constant simple_integer : = 10 ; co_increment constant simple_integer : = 1 ; begin i : = co_min_value ; while ( i <= co_max_value ) loop i : = i + co_increment ; end loop ; loop exit when true ; -- NOSONAR: G-4380 cannot use labelled exit here end loop ; for i in co_min_value .. co_max_value loop sys . dbms_output . put_line ( i ); end loop ; for r_employee in ( select last_name from employees ) loop sys . dbms_output . put_line ( r_employee . last_name ); end loop ; end ; /","title":"Example (bad)"},{"location":"4-language-usage/4-control-structures/3-flow-control/g-4320/#example-good","text":"1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 declare i integer ; co_min_value constant simple_integer : = 1 ; co_max_value constant simple_integer : = 10 ; co_increment constant simple_integer : = 1 ; begin i : = co_min_value ; << while_loop >> while ( i <= co_max_value ) loop i : = i + co_increment ; end loop while_loop ; << basic_loop >> loop exit basic_loop when true ; end loop basic_loop ; << for_loop >> for i in co_min_value .. co_max_value loop sys . dbms_output . put_line ( i ); end loop for_loop ; << process_employees >> for r_employee in ( select last_name from employees ) loop sys . dbms_output . put_line ( r_employee . last_name ); end loop process_employees ; end ; /","title":"Example (good)"},{"location":"4-language-usage/4-control-structures/3-flow-control/g-4325/","text":"G-4325: Never reuse labels in inner scopes. Major Maintainability, Reliability, Testability Reason Reusing labels inside the scope of another label with the same name leads to confusion, less chance of understanding the code, and could lead to bugs (for example if using exit my_label exits at a different nesting level than expected.) Example (bad) 1 2 3 4 5 6 7 8 9 10 11 12 << my_label >> declare co_min_value constant simple_integer : = 1 ; co_max_value constant simple_integer : = 8 ; begin << my_label >> for i in co_min_value .. co_max_value loop sys . dbms_output . put_line ( i ); end loop my_label ; end my_label ; / Example (good) 1 2 3 4 5 6 7 8 9 10 11 12 << output_values >> declare co_min_value constant simple_integer : = 1 ; co_max_value constant simple_integer : = 8 ; begin << process_values >> for i in co_min_value .. co_max_value loop sys . dbms_output . put_line ( i ); end loop process_values ; end output_values ; /","title":"G-4325: Never reuse labels in inner scopes."},{"location":"4-language-usage/4-control-structures/3-flow-control/g-4325/#g-4325-never-reuse-labels-in-inner-scopes","text":"Major Maintainability, Reliability, Testability","title":"G-4325: Never reuse labels in inner scopes."},{"location":"4-language-usage/4-control-structures/3-flow-control/g-4325/#reason","text":"Reusing labels inside the scope of another label with the same name leads to confusion, less chance of understanding the code, and could lead to bugs (for example if using exit my_label exits at a different nesting level than expected.)","title":"Reason"},{"location":"4-language-usage/4-control-structures/3-flow-control/g-4325/#example-bad","text":"1 2 3 4 5 6 7 8 9 10 11 12 << my_label >> declare co_min_value constant simple_integer : = 1 ; co_max_value constant simple_integer : = 8 ; begin << my_label >> for i in co_min_value .. co_max_value loop sys . dbms_output . put_line ( i ); end loop my_label ; end my_label ; /","title":"Example (bad)"},{"location":"4-language-usage/4-control-structures/3-flow-control/g-4325/#example-good","text":"1 2 3 4 5 6 7 8 9 10 11 12 << output_values >> declare co_min_value constant simple_integer : = 1 ; co_max_value constant simple_integer : = 8 ; begin << process_values >> for i in co_min_value .. co_max_value loop sys . dbms_output . put_line ( i ); end loop process_values ; end output_values ; /","title":"Example (good)"},{"location":"4-language-usage/4-control-structures/3-flow-control/g-4330/","text":"G-4330: Always use a CURSOR FOR loop to process the complete cursor results unless you are using bulk operations. Major Maintainability Reason It is easier for the reader to see, that the complete data set is processed. Using SQL to define the data to be processed is easier to maintain and typically faster than using conditional processing within the loop. Since an exit statement is similar to a goto statement, it should be avoided, whenever possible. Example (bad) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 declare cursor c_employees is select employee_id , last_name from employees ; r_employee c_employees % rowtype ; begin open c_employees ; << read_employees >> loop fetch c_employees into r_employee ; exit read_employees when c_employees % notfound ; sys . dbms_output . put_line ( r_employee . last_name ); end loop read_employees ; close c_employees ; end ; / Example (good) 1 2 3 4 5 6 7 8 9 10 11 12 declare cursor c_employees is select employee_id , last_name from employees ; begin << read_employees >> for r_employee in c_employees loop sys . dbms_output . put_line ( r_employee . last_name ); end loop read_employees ; end ; /","title":"G-4330: Always use a CURSOR FOR loop to process the complete cursor results unless you are using bulk operations."},{"location":"4-language-usage/4-control-structures/3-flow-control/g-4330/#g-4330-always-use-a-cursor-for-loop-to-process-the-complete-cursor-results-unless-you-are-using-bulk-operations","text":"Major Maintainability","title":"G-4330: Always use a CURSOR FOR loop to process the complete cursor results unless you are using bulk operations."},{"location":"4-language-usage/4-control-structures/3-flow-control/g-4330/#reason","text":"It is easier for the reader to see, that the complete data set is processed. Using SQL to define the data to be processed is easier to maintain and typically faster than using conditional processing within the loop. Since an exit statement is similar to a goto statement, it should be avoided, whenever possible.","title":"Reason"},{"location":"4-language-usage/4-control-structures/3-flow-control/g-4330/#example-bad","text":"1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 declare cursor c_employees is select employee_id , last_name from employees ; r_employee c_employees % rowtype ; begin open c_employees ; << read_employees >> loop fetch c_employees into r_employee ; exit read_employees when c_employees % notfound ; sys . dbms_output . put_line ( r_employee . last_name ); end loop read_employees ; close c_employees ; end ; /","title":"Example (bad)"},{"location":"4-language-usage/4-control-structures/3-flow-control/g-4330/#example-good","text":"1 2 3 4 5 6 7 8 9 10 11 12 declare cursor c_employees is select employee_id , last_name from employees ; begin << read_employees >> for r_employee in c_employees loop sys . dbms_output . put_line ( r_employee . last_name ); end loop read_employees ; end ; /","title":"Example (good)"},{"location":"4-language-usage/4-control-structures/3-flow-control/g-4340/","text":"G-4340: Always use a NUMERIC FOR loop to process a dense array. Major Maintainability Reason It is easier for the reader to see, that the complete array is processed. Since an exit statement is similar to a goto statement, it should be avoided, whenever possible. Please note that: Varrays are always dense Associative arrays (or index-by tables) are either dense or sparse Nested tables start dense and may become sparse Example (bad) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 declare type t_employee_type is varray ( 10 ) of employees . employee_id % type ; t_employees t_employee_type ; co_himuro constant integer : = 118 ; co_livingston constant integer : = 177 ; co_min_value constant simple_integer : = 1 ; co_increment constant simple_integer : = 1 ; i pls_integer ; begin t_employees : = t_employee_type ( co_himuro , co_livingston ); i : = co_min_value ; << process_employees >> loop exit process_employees when i > t_employees . count (); sys . dbms_output . put_line ( t_employees ( i )); i : = i + co_increment ; end loop process_employees ; end ; / Example (good) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 declare type t_employee_type is varray ( 10 ) of employees . employee_id % type ; t_employees t_employee_type ; co_himuro constant integer : = 118 ; co_livingston constant integer : = 177 ; begin t_employees : = t_employee_type ( co_himuro , co_livingston ); << process_employees >> for i in 1 .. t_employees . count () loop sys . dbms_output . put_line ( t_employees ( i )); end loop process_employees ; end ; /","title":"G-4340: Always use a NUMERIC FOR loop to process a dense array."},{"location":"4-language-usage/4-control-structures/3-flow-control/g-4340/#g-4340-always-use-a-numeric-for-loop-to-process-a-dense-array","text":"Major Maintainability","title":"G-4340: Always use a NUMERIC FOR loop to process a dense array."},{"location":"4-language-usage/4-control-structures/3-flow-control/g-4340/#reason","text":"It is easier for the reader to see, that the complete array is processed. Since an exit statement is similar to a goto statement, it should be avoided, whenever possible. Please note that: Varrays are always dense Associative arrays (or index-by tables) are either dense or sparse Nested tables start dense and may become sparse","title":"Reason"},{"location":"4-language-usage/4-control-structures/3-flow-control/g-4340/#example-bad","text":"1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 declare type t_employee_type is varray ( 10 ) of employees . employee_id % type ; t_employees t_employee_type ; co_himuro constant integer : = 118 ; co_livingston constant integer : = 177 ; co_min_value constant simple_integer : = 1 ; co_increment constant simple_integer : = 1 ; i pls_integer ; begin t_employees : = t_employee_type ( co_himuro , co_livingston ); i : = co_min_value ; << process_employees >> loop exit process_employees when i > t_employees . count (); sys . dbms_output . put_line ( t_employees ( i )); i : = i + co_increment ; end loop process_employees ; end ; /","title":"Example (bad)"},{"location":"4-language-usage/4-control-structures/3-flow-control/g-4340/#example-good","text":"1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 declare type t_employee_type is varray ( 10 ) of employees . employee_id % type ; t_employees t_employee_type ; co_himuro constant integer : = 118 ; co_livingston constant integer : = 177 ; begin t_employees : = t_employee_type ( co_himuro , co_livingston ); << process_employees >> for i in 1 .. t_employees . count () loop sys . dbms_output . put_line ( t_employees ( i )); end loop process_employees ; end ; /","title":"Example (good)"},{"location":"4-language-usage/4-control-structures/3-flow-control/g-4350/","text":"G-4350: Always use 1 as lower and COUNT() as upper bound when looping through a dense array. Blocker Reliability Reason Doing so will not raise a value_error if the array you are looping through is empty. If you want to use first()..last() you need to check the array for emptiness beforehand to avoid the raise of value_error . Please note that: Varrays are always dense Associative arrays (or index-by tables) are either dense or sparse Nested tables start dense and may become sparse Example (bad) 1 2 3 4 5 6 7 8 9 10 11 declare type t_employee_type is table of employees . employee_id % type ; t_employees t_employee_type : = t_employee_type (); begin << process_employees >> for i in t_employees . first ().. t_employees . last () loop sys . dbms_output . put_line ( t_employees ( i )); -- some processing end loop process_employees ; end ; / Example (better) Raise an unitialized collection error if t_employees is not initialized. 1 2 3 4 5 6 7 8 9 10 11 declare type t_employee_type is table of employees . employee_id % type ; t_employees t_employee_type : = t_employee_type (); begin << process_employees >> for i in 1 .. t_employees . count () loop sys . dbms_output . put_line ( t_employees ( i )); -- some processing end loop process_employees ; end ; / Example (good) Raises neither an error nor checking whether the array is empty. t_employees.count() always returns a number (unless the array is not initialized). If the array is empty count() returns 0 and therefore the loop will not be entered. 1 2 3 4 5 6 7 8 9 10 11 12 13 declare type t_employee_type is table of employees . employee_id % type ; t_employees t_employee_type : = t_employee_type (); begin if t_employees is not null then << process_employees >> for i in 1 .. t_employees . count () loop sys . dbms_output . put_line ( t_employees ( i )); -- some processing end loop process_employees ; end if ; end ; /","title":"G-4350: Always use 1 as lower and COUNT() as upper bound when looping through a dense array."},{"location":"4-language-usage/4-control-structures/3-flow-control/g-4350/#g-4350-always-use-1-as-lower-and-count-as-upper-bound-when-looping-through-a-dense-array","text":"Blocker Reliability","title":"G-4350: Always use 1 as lower and COUNT() as upper bound when looping through a dense array."},{"location":"4-language-usage/4-control-structures/3-flow-control/g-4350/#reason","text":"Doing so will not raise a value_error if the array you are looping through is empty. If you want to use first()..last() you need to check the array for emptiness beforehand to avoid the raise of value_error . Please note that: Varrays are always dense Associative arrays (or index-by tables) are either dense or sparse Nested tables start dense and may become sparse","title":"Reason"},{"location":"4-language-usage/4-control-structures/3-flow-control/g-4350/#example-bad","text":"1 2 3 4 5 6 7 8 9 10 11 declare type t_employee_type is table of employees . employee_id % type ; t_employees t_employee_type : = t_employee_type (); begin << process_employees >> for i in t_employees . first ().. t_employees . last () loop sys . dbms_output . put_line ( t_employees ( i )); -- some processing end loop process_employees ; end ; /","title":"Example (bad)"},{"location":"4-language-usage/4-control-structures/3-flow-control/g-4350/#example-better","text":"Raise an unitialized collection error if t_employees is not initialized. 1 2 3 4 5 6 7 8 9 10 11 declare type t_employee_type is table of employees . employee_id % type ; t_employees t_employee_type : = t_employee_type (); begin << process_employees >> for i in 1 .. t_employees . count () loop sys . dbms_output . put_line ( t_employees ( i )); -- some processing end loop process_employees ; end ; /","title":"Example (better)"},{"location":"4-language-usage/4-control-structures/3-flow-control/g-4350/#example-good","text":"Raises neither an error nor checking whether the array is empty. t_employees.count() always returns a number (unless the array is not initialized). If the array is empty count() returns 0 and therefore the loop will not be entered. 1 2 3 4 5 6 7 8 9 10 11 12 13 declare type t_employee_type is table of employees . employee_id % type ; t_employees t_employee_type : = t_employee_type (); begin if t_employees is not null then << process_employees >> for i in 1 .. t_employees . count () loop sys . dbms_output . put_line ( t_employees ( i )); -- some processing end loop process_employees ; end if ; end ; /","title":"Example (good)"},{"location":"4-language-usage/4-control-structures/3-flow-control/g-4360/","text":"G-4360: Always use a WHILE loop to process a loose array. Critical Efficiency Reason When a loose (also called sparse) array is processed using a numeric for loop we have to check with all iterations whether the element exist to avoid a no_data_found exception. In addition, the number of iterations is not driven by the number of elements in the array but by the number of the lowest/highest element. The more gaps we have, the more superfluous iterations will be done. Please note that: Varrays are always dense Associative arrays (or index-by tables) are either dense or sparse Nested tables start dense and may become sparse Example (bad) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 declare -- raises no_data_found when processing 2nd record type t_employee_type is table of employees . employee_id % type ; t_employees t_employee_type ; co_rogers constant integer : = 134 ; co_matos constant integer : = 143 ; co_mcewen constant integer : = 158 ; co_index_matos constant integer : = 2 ; begin t_employees : = t_employee_type ( co_rogers , co_matos , co_mcewen ); t_employees . delete ( co_index_matos ); if t_employees is not null then << process_employees >> for i in 1 .. t_employees . count () loop sys . dbms_output . put_line ( t_employees ( i )); end loop process_employees ; end if ; end ; / Example (good) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 declare type t_employee_type is table of employees . employee_id % type ; t_employees t_employee_type ; co_rogers constant integer : = 134 ; co_matos constant integer : = 143 ; co_mcewen constant integer : = 158 ; co_index_matos constant integer : = 2 ; l_index pls_integer ; begin t_employees : = t_employee_type ( co_rogers , co_matos , co_mcewen ); t_employees . delete ( co_index_matos ); l_index : = t_employees . first (); << process_employees >> while l_index is not null loop sys . dbms_output . put_line ( t_employees ( l_index )); l_index : = t_employees . next ( l_index ); end loop process_employees ; end ; /","title":"G-4360: Always use a WHILE loop to process a loose array."},{"location":"4-language-usage/4-control-structures/3-flow-control/g-4360/#g-4360-always-use-a-while-loop-to-process-a-loose-array","text":"Critical Efficiency","title":"G-4360: Always use a WHILE loop to process a loose array."},{"location":"4-language-usage/4-control-structures/3-flow-control/g-4360/#reason","text":"When a loose (also called sparse) array is processed using a numeric for loop we have to check with all iterations whether the element exist to avoid a no_data_found exception. In addition, the number of iterations is not driven by the number of elements in the array but by the number of the lowest/highest element. The more gaps we have, the more superfluous iterations will be done. Please note that: Varrays are always dense Associative arrays (or index-by tables) are either dense or sparse Nested tables start dense and may become sparse","title":"Reason"},{"location":"4-language-usage/4-control-structures/3-flow-control/g-4360/#example-bad","text":"1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 declare -- raises no_data_found when processing 2nd record type t_employee_type is table of employees . employee_id % type ; t_employees t_employee_type ; co_rogers constant integer : = 134 ; co_matos constant integer : = 143 ; co_mcewen constant integer : = 158 ; co_index_matos constant integer : = 2 ; begin t_employees : = t_employee_type ( co_rogers , co_matos , co_mcewen ); t_employees . delete ( co_index_matos ); if t_employees is not null then << process_employees >> for i in 1 .. t_employees . count () loop sys . dbms_output . put_line ( t_employees ( i )); end loop process_employees ; end if ; end ; /","title":"Example (bad)"},{"location":"4-language-usage/4-control-structures/3-flow-control/g-4360/#example-good","text":"1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 declare type t_employee_type is table of employees . employee_id % type ; t_employees t_employee_type ; co_rogers constant integer : = 134 ; co_matos constant integer : = 143 ; co_mcewen constant integer : = 158 ; co_index_matos constant integer : = 2 ; l_index pls_integer ; begin t_employees : = t_employee_type ( co_rogers , co_matos , co_mcewen ); t_employees . delete ( co_index_matos ); l_index : = t_employees . first (); << process_employees >> while l_index is not null loop sys . dbms_output . put_line ( t_employees ( l_index )); l_index : = t_employees . next ( l_index ); end loop process_employees ; end ; /","title":"Example (good)"},{"location":"4-language-usage/4-control-structures/3-flow-control/g-4365/","text":"G-4365: Never use unconditional CONTINUE or EXIT in a loop. Major Maintainability, Testability Reason An unconditional continue is either redundant (a continue as the last statement before the end of the loop) or causes dead code. An unconditional exit causes no looping and may cause dead code as well. If continue or exit is needed, it should always have a condition. Example (bad) 1 2 3 4 5 6 7 8 9 10 11 begin << process_employees >> loop my_package . some_processing (); continue process_employees ; my_package . some_further_processing (); -- Dead code end loop process_employees ; end ; / Example (good) 1 2 3 4 5 6 7 8 9 10 11 12 13 declare co_first_year constant pls_integer : = 1900 ; begin << process_employees >> loop my_package . some_processing (); continue process_employees when extract ( year from sysdate ) > co_first_year ; my_package . some_further_processing (); end loop process_employees ; end ; /","title":"G-4365: Never use unconditional CONTINUE or EXIT in a loop."},{"location":"4-language-usage/4-control-structures/3-flow-control/g-4365/#g-4365-never-use-unconditional-continue-or-exit-in-a-loop","text":"Major Maintainability, Testability","title":"G-4365: Never use unconditional CONTINUE or EXIT in a loop."},{"location":"4-language-usage/4-control-structures/3-flow-control/g-4365/#reason","text":"An unconditional continue is either redundant (a continue as the last statement before the end of the loop) or causes dead code. An unconditional exit causes no looping and may cause dead code as well. If continue or exit is needed, it should always have a condition.","title":"Reason"},{"location":"4-language-usage/4-control-structures/3-flow-control/g-4365/#example-bad","text":"1 2 3 4 5 6 7 8 9 10 11 begin << process_employees >> loop my_package . some_processing (); continue process_employees ; my_package . some_further_processing (); -- Dead code end loop process_employees ; end ; /","title":"Example (bad)"},{"location":"4-language-usage/4-control-structures/3-flow-control/g-4365/#example-good","text":"1 2 3 4 5 6 7 8 9 10 11 12 13 declare co_first_year constant pls_integer : = 1900 ; begin << process_employees >> loop my_package . some_processing (); continue process_employees when extract ( year from sysdate ) > co_first_year ; my_package . some_further_processing (); end loop process_employees ; end ; /","title":"Example (good)"},{"location":"4-language-usage/4-control-structures/3-flow-control/g-4370/","text":"G-4370: Avoid using EXIT to stop loop processing unless you are in a basic loop. Major Maintainability Reason A numeric for loop as well as a while loop and a cursor for loop have defined loop boundaries. If you are not able to exit your loop using those loop boundaries, then a basic loop is the right loop to choose. Example (bad) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 declare i integer ; co_min_value constant simple_integer : = 1 ; co_max_value constant simple_integer : = 10 ; co_increment constant simple_integer : = 1 ; begin i : = co_min_value ; << while_loop >> while ( i <= co_max_value ) loop i : = i + co_increment ; exit while_loop when i > co_max_value ; end loop while_loop ; << basic_loop >> loop exit basic_loop when true ; end loop basic_loop ; << for_loop >> for i in co_min_value .. co_max_value loop null ; exit for_loop when i = co_max_value ; end loop for_loop ; << process_employees >> for r_employee in ( select last_name from employees ) loop sys . dbms_output . put_line ( r_employee . last_name ); null ; -- some processing exit process_employees when true ; end loop process_employees ; end ; / Example (good) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 declare i integer ; co_min_value constant simple_integer : = 1 ; co_max_value constant simple_integer : = 10 ; co_increment constant simple_integer : = 1 ; begin i : = co_min_value ; << while_loop >> while ( i <= co_max_value ) loop i : = i + co_increment ; end loop while_loop ; << basic_loop >> loop exit basic_loop when true ; end loop basic_loop ; << for_loop >> for i in co_min_value .. co_max_value loop sys . dbms_output . put_line ( i ); end loop for_loop ; << process_employees >> for r_employee in ( select last_name from employees ) loop sys . dbms_output . put_line ( r_employee . last_name ); -- some processing end loop process_employees ; end ; /","title":"G-4370: Avoid using EXIT to stop loop processing unless you are in a basic loop."},{"location":"4-language-usage/4-control-structures/3-flow-control/g-4370/#g-4370-avoid-using-exit-to-stop-loop-processing-unless-you-are-in-a-basic-loop","text":"Major Maintainability","title":"G-4370: Avoid using EXIT to stop loop processing unless you are in a basic loop."},{"location":"4-language-usage/4-control-structures/3-flow-control/g-4370/#reason","text":"A numeric for loop as well as a while loop and a cursor for loop have defined loop boundaries. If you are not able to exit your loop using those loop boundaries, then a basic loop is the right loop to choose.","title":"Reason"},{"location":"4-language-usage/4-control-structures/3-flow-control/g-4370/#example-bad","text":"1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 declare i integer ; co_min_value constant simple_integer : = 1 ; co_max_value constant simple_integer : = 10 ; co_increment constant simple_integer : = 1 ; begin i : = co_min_value ; << while_loop >> while ( i <= co_max_value ) loop i : = i + co_increment ; exit while_loop when i > co_max_value ; end loop while_loop ; << basic_loop >> loop exit basic_loop when true ; end loop basic_loop ; << for_loop >> for i in co_min_value .. co_max_value loop null ; exit for_loop when i = co_max_value ; end loop for_loop ; << process_employees >> for r_employee in ( select last_name from employees ) loop sys . dbms_output . put_line ( r_employee . last_name ); null ; -- some processing exit process_employees when true ; end loop process_employees ; end ; /","title":"Example (bad)"},{"location":"4-language-usage/4-control-structures/3-flow-control/g-4370/#example-good","text":"1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 declare i integer ; co_min_value constant simple_integer : = 1 ; co_max_value constant simple_integer : = 10 ; co_increment constant simple_integer : = 1 ; begin i : = co_min_value ; << while_loop >> while ( i <= co_max_value ) loop i : = i + co_increment ; end loop while_loop ; << basic_loop >> loop exit basic_loop when true ; end loop basic_loop ; << for_loop >> for i in co_min_value .. co_max_value loop sys . dbms_output . put_line ( i ); end loop for_loop ; << process_employees >> for r_employee in ( select last_name from employees ) loop sys . dbms_output . put_line ( r_employee . last_name ); -- some processing end loop process_employees ; end ; /","title":"Example (good)"},{"location":"4-language-usage/4-control-structures/3-flow-control/g-4375/","text":"G-4375: Always use EXIT WHEN instead of an IF statement to exit from a loop. Minor Maintainability Reason If you need to use an exit statement use its full semantic to make the code easier to understand and maintain. There is simply no need for an additional if statement. Example (bad) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 declare co_first_year constant pls_integer : = 1900 ; begin << process_employees >> loop my_package . some_processing (); if extract ( year from sysdate ) > co_first_year then exit process_employees ; -- violates also G-4365 end if ; my_package . some_further_processing (); end loop process_employees ; end ; / Example (good) 1 2 3 4 5 6 7 8 9 10 11 12 13 declare co_first_year constant pls_integer : = 1900 ; begin << process_employees >> loop my_package . some_processing (); exit process_employees when extract ( year from sysdate ) > co_first_year ; my_package . some_further_processing (); end loop process_employees ; end ; /","title":"G-4375: Always use EXIT WHEN instead of an IF statement to exit from a loop."},{"location":"4-language-usage/4-control-structures/3-flow-control/g-4375/#g-4375-always-use-exit-when-instead-of-an-if-statement-to-exit-from-a-loop","text":"Minor Maintainability","title":"G-4375: Always use EXIT WHEN instead of an IF statement to exit from a loop."},{"location":"4-language-usage/4-control-structures/3-flow-control/g-4375/#reason","text":"If you need to use an exit statement use its full semantic to make the code easier to understand and maintain. There is simply no need for an additional if statement.","title":"Reason"},{"location":"4-language-usage/4-control-structures/3-flow-control/g-4375/#example-bad","text":"1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 declare co_first_year constant pls_integer : = 1900 ; begin << process_employees >> loop my_package . some_processing (); if extract ( year from sysdate ) > co_first_year then exit process_employees ; -- violates also G-4365 end if ; my_package . some_further_processing (); end loop process_employees ; end ; /","title":"Example (bad)"},{"location":"4-language-usage/4-control-structures/3-flow-control/g-4375/#example-good","text":"1 2 3 4 5 6 7 8 9 10 11 12 13 declare co_first_year constant pls_integer : = 1900 ; begin << process_employees >> loop my_package . some_processing (); exit process_employees when extract ( year from sysdate ) > co_first_year ; my_package . some_further_processing (); end loop process_employees ; end ; /","title":"Example (good)"},{"location":"4-language-usage/4-control-structures/3-flow-control/g-4380/","text":"G-4380: Try to label your EXIT WHEN statements. Minor Maintainability Reason It's a good alternative for comments, especially for nested loops to name the loop to exit. Example (bad) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 declare co_init_loop constant simple_integer : = 0 ; co_increment constant simple_integer : = 1 ; co_exit_value constant simple_integer : = 3 ; co_outer_text constant types_up . short_text_type : = 'Outer Loop counter is ' ; co_inner_text constant types_up . short_text_type : = ' Inner Loop counter is ' ; l_outerlp pls_integer ; l_innerlp pls_integer ; begin l_outerlp : = co_init_loop ; << outerloop >> loop l_innerlp : = co_init_loop ; l_outerlp : = nvl ( l_outerlp , co_init_loop ) + co_increment ; << innerloop >> loop l_innerlp : = nvl ( l_innerlp , co_init_loop ) + co_increment ; sys . dbms_output . put_line ( co_outer_text || l_outerlp || co_inner_text || l_innerlp ); exit when l_innerlp = co_exit_value ; end loop innerloop ; exit when l_innerlp = co_exit_value ; end loop outerloop ; end ; / Example (good) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 declare co_init_loop constant simple_integer : = 0 ; co_increment constant simple_integer : = 1 ; co_exit_value constant simple_integer : = 3 ; co_outer_text constant types_up . short_text_type : = 'Outer Loop counter is ' ; co_inner_text constant types_up . short_text_type : = ' Inner Loop counter is ' ; l_outerlp pls_integer ; l_innerlp pls_integer ; begin l_outerlp : = co_init_loop ; << outerloop >> loop l_innerlp : = co_init_loop ; l_outerlp : = nvl ( l_outerlp , co_init_loop ) + co_increment ; << innerloop >> loop l_innerlp : = nvl ( l_innerlp , co_init_loop ) + co_increment ; sys . dbms_output . put_line ( co_outer_text || l_outerlp || co_inner_text || l_innerlp ); exit outerloop when l_innerlp = co_exit_value ; end loop innerloop ; end loop outerloop ; end ; /","title":"G-4380: Try to label your EXIT WHEN statements."},{"location":"4-language-usage/4-control-structures/3-flow-control/g-4380/#g-4380-try-to-label-your-exit-when-statements","text":"Minor Maintainability","title":"G-4380: Try to label your EXIT WHEN statements."},{"location":"4-language-usage/4-control-structures/3-flow-control/g-4380/#reason","text":"It's a good alternative for comments, especially for nested loops to name the loop to exit.","title":"Reason"},{"location":"4-language-usage/4-control-structures/3-flow-control/g-4380/#example-bad","text":"1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 declare co_init_loop constant simple_integer : = 0 ; co_increment constant simple_integer : = 1 ; co_exit_value constant simple_integer : = 3 ; co_outer_text constant types_up . short_text_type : = 'Outer Loop counter is ' ; co_inner_text constant types_up . short_text_type : = ' Inner Loop counter is ' ; l_outerlp pls_integer ; l_innerlp pls_integer ; begin l_outerlp : = co_init_loop ; << outerloop >> loop l_innerlp : = co_init_loop ; l_outerlp : = nvl ( l_outerlp , co_init_loop ) + co_increment ; << innerloop >> loop l_innerlp : = nvl ( l_innerlp , co_init_loop ) + co_increment ; sys . dbms_output . put_line ( co_outer_text || l_outerlp || co_inner_text || l_innerlp ); exit when l_innerlp = co_exit_value ; end loop innerloop ; exit when l_innerlp = co_exit_value ; end loop outerloop ; end ; /","title":"Example (bad)"},{"location":"4-language-usage/4-control-structures/3-flow-control/g-4380/#example-good","text":"1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 declare co_init_loop constant simple_integer : = 0 ; co_increment constant simple_integer : = 1 ; co_exit_value constant simple_integer : = 3 ; co_outer_text constant types_up . short_text_type : = 'Outer Loop counter is ' ; co_inner_text constant types_up . short_text_type : = ' Inner Loop counter is ' ; l_outerlp pls_integer ; l_innerlp pls_integer ; begin l_outerlp : = co_init_loop ; << outerloop >> loop l_innerlp : = co_init_loop ; l_outerlp : = nvl ( l_outerlp , co_init_loop ) + co_increment ; << innerloop >> loop l_innerlp : = nvl ( l_innerlp , co_init_loop ) + co_increment ; sys . dbms_output . put_line ( co_outer_text || l_outerlp || co_inner_text || l_innerlp ); exit outerloop when l_innerlp = co_exit_value ; end loop innerloop ; end loop outerloop ; end ; /","title":"Example (good)"},{"location":"4-language-usage/4-control-structures/3-flow-control/g-4385/","text":"G-4385: Never use a cursor for loop to check whether a cursor returns data. Critical Efficiency Reason You might process more data than required, which leads to bad performance. Example (bad) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 declare l_employee_found boolean : = false ; cursor c_employees is select employee_id , last_name from employees ; begin << check_employees >> for r_employee in c_employees loop l_employee_found : = true ; end loop check_employees ; if l_employee_found then null ; -- some processing; end if ; end ; / Example (good) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 declare l_employee_found boolean : = false ; cursor c_employees is select employee_id , last_name from employees ; r_employee c_employees % rowtype ; begin open c_employees ; fetch c_employees into r_employee ; l_employee_found : = c_employees % found ; close c_employees ; if l_employee_found then null ; -- some processing; end if ; end ; /","title":"G-4385: Never use a cursor for loop to check whether a cursor returns data."},{"location":"4-language-usage/4-control-structures/3-flow-control/g-4385/#g-4385-never-use-a-cursor-for-loop-to-check-whether-a-cursor-returns-data","text":"Critical Efficiency","title":"G-4385: Never use a cursor for loop to check whether a cursor returns data."},{"location":"4-language-usage/4-control-structures/3-flow-control/g-4385/#reason","text":"You might process more data than required, which leads to bad performance.","title":"Reason"},{"location":"4-language-usage/4-control-structures/3-flow-control/g-4385/#example-bad","text":"1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 declare l_employee_found boolean : = false ; cursor c_employees is select employee_id , last_name from employees ; begin << check_employees >> for r_employee in c_employees loop l_employee_found : = true ; end loop check_employees ; if l_employee_found then null ; -- some processing; end if ; end ; /","title":"Example (bad)"},{"location":"4-language-usage/4-control-structures/3-flow-control/g-4385/#example-good","text":"1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 declare l_employee_found boolean : = false ; cursor c_employees is select employee_id , last_name from employees ; r_employee c_employees % rowtype ; begin open c_employees ; fetch c_employees into r_employee ; l_employee_found : = c_employees % found ; close c_employees ; if l_employee_found then null ; -- some processing; end if ; end ; /","title":"Example (good)"},{"location":"4-language-usage/4-control-structures/3-flow-control/g-4387/","text":"G-4387: Never use a FOR LOOP for a query that should return not more than one row. Blocker Reliability, Efficiency, Readability Unsupported in db* CODECOP Validators Without access to the Oracle Data Dictionary, we cannot determine the number of rows to be processed. Reason A for loop can hide a too_many_rows exception. The more complex a query is, the higher is the risk that more than one row will be processed. This affects performance and can lead to a wrong result. A for loop can also hide a no_data_found exception and the reader cannot determine whether this is intentional or not. Example (bad) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 create or replace package body employee_api is function emp_name ( in_empno in integer ) return varchar2 is -- NOSONAR: non-deterministic l_ename emp . ename % type ; begin << fetch_name >> for r in ( select ename from emp where empno = in_empno ) loop l_ename : = r . ename ; end loop fetch_name ; return l_ename ; end emp_name ; end employee_api ; / Example (good) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 create or replace package body employee_api is function emp_name ( in_empno in integer ) return varchar2 is -- NOSONAR: non-deterministic l_ename emp . ename % type ; begin select ename into l_ename from emp where empno = in_empno ; return l_ename ; exception when no_data_found then return null ; when too_many_rows then raise ; end emp_name ; end employee_api ; /","title":"G-4387: Never use a FOR LOOP for a query that should return not more than one row."},{"location":"4-language-usage/4-control-structures/3-flow-control/g-4387/#g-4387-never-use-a-for-loop-for-a-query-that-should-return-not-more-than-one-row","text":"Blocker Reliability, Efficiency, Readability Unsupported in db* CODECOP Validators Without access to the Oracle Data Dictionary, we cannot determine the number of rows to be processed.","title":"G-4387: Never use a FOR LOOP for a query that should return not more than one row."},{"location":"4-language-usage/4-control-structures/3-flow-control/g-4387/#reason","text":"A for loop can hide a too_many_rows exception. The more complex a query is, the higher is the risk that more than one row will be processed. This affects performance and can lead to a wrong result. A for loop can also hide a no_data_found exception and the reader cannot determine whether this is intentional or not.","title":"Reason"},{"location":"4-language-usage/4-control-structures/3-flow-control/g-4387/#example-bad","text":"1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 create or replace package body employee_api is function emp_name ( in_empno in integer ) return varchar2 is -- NOSONAR: non-deterministic l_ename emp . ename % type ; begin << fetch_name >> for r in ( select ename from emp where empno = in_empno ) loop l_ename : = r . ename ; end loop fetch_name ; return l_ename ; end emp_name ; end employee_api ; /","title":"Example (bad)"},{"location":"4-language-usage/4-control-structures/3-flow-control/g-4387/#example-good","text":"1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 create or replace package body employee_api is function emp_name ( in_empno in integer ) return varchar2 is -- NOSONAR: non-deterministic l_ename emp . ename % type ; begin select ename into l_ename from emp where empno = in_empno ; return l_ename ; exception when no_data_found then return null ; when too_many_rows then raise ; end emp_name ; end employee_api ; /","title":"Example (good)"},{"location":"4-language-usage/4-control-structures/3-flow-control/g-4390/","text":"G-4390: Avoid use of unreferenced FOR loop indexes. Major Efficiency Reason If the loop index is used for anything but traffic control inside the loop, this is one of the indicators that a numeric for loop is being used incorrectly. The actual body of executable statements completely ignores the loop index. When that is the case, there is a good chance that you do not need the loop at all. Example (bad) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 declare l_row pls_integer ; l_value pls_integer ; co_lower_bound constant simple_integer : = 1 ; co_upper_bound constant simple_integer : = 5 ; co_row_incr constant simple_integer : = 1 ; co_value_incr constant simple_integer : = 10 ; co_delimiter constant types_up . short_text_type : = ' ' ; co_first_value constant simple_integer : = 100 ; begin l_row : = co_lower_bound ; l_value : = co_first_value ; << for_loop >> for i in co_lower_bound .. co_upper_bound loop sys . dbms_output . put_line ( l_row || co_delimiter || l_value ); l_row : = l_row + co_row_incr ; l_value : = l_value + co_value_incr ; end loop for_loop ; end ; / Example (good) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 declare co_lower_bound constant simple_integer : = 1 ; co_upper_bound constant simple_integer : = 5 ; co_value_incr constant simple_integer : = 10 ; co_delimiter constant types_up . short_text_type : = ' ' ; co_first_value constant simple_integer : = 100 ; begin << for_loop >> for i in co_lower_bound .. co_upper_bound loop sys . dbms_output . put_line ( i || co_delimiter || to_char ( co_first_value + i * co_value_incr )); end loop for_loop ; end ; /","title":"G-4390: Avoid use of unreferenced FOR loop indexes."},{"location":"4-language-usage/4-control-structures/3-flow-control/g-4390/#g-4390-avoid-use-of-unreferenced-for-loop-indexes","text":"Major Efficiency","title":"G-4390: Avoid use of unreferenced FOR loop indexes."},{"location":"4-language-usage/4-control-structures/3-flow-control/g-4390/#reason","text":"If the loop index is used for anything but traffic control inside the loop, this is one of the indicators that a numeric for loop is being used incorrectly. The actual body of executable statements completely ignores the loop index. When that is the case, there is a good chance that you do not need the loop at all.","title":"Reason"},{"location":"4-language-usage/4-control-structures/3-flow-control/g-4390/#example-bad","text":"1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 declare l_row pls_integer ; l_value pls_integer ; co_lower_bound constant simple_integer : = 1 ; co_upper_bound constant simple_integer : = 5 ; co_row_incr constant simple_integer : = 1 ; co_value_incr constant simple_integer : = 10 ; co_delimiter constant types_up . short_text_type : = ' ' ; co_first_value constant simple_integer : = 100 ; begin l_row : = co_lower_bound ; l_value : = co_first_value ; << for_loop >> for i in co_lower_bound .. co_upper_bound loop sys . dbms_output . put_line ( l_row || co_delimiter || l_value ); l_row : = l_row + co_row_incr ; l_value : = l_value + co_value_incr ; end loop for_loop ; end ; /","title":"Example (bad)"},{"location":"4-language-usage/4-control-structures/3-flow-control/g-4390/#example-good","text":"1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 declare co_lower_bound constant simple_integer : = 1 ; co_upper_bound constant simple_integer : = 5 ; co_value_incr constant simple_integer : = 10 ; co_delimiter constant types_up . short_text_type : = ' ' ; co_first_value constant simple_integer : = 100 ; begin << for_loop >> for i in co_lower_bound .. co_upper_bound loop sys . dbms_output . put_line ( i || co_delimiter || to_char ( co_first_value + i * co_value_incr )); end loop for_loop ; end ; /","title":"Example (good)"},{"location":"4-language-usage/4-control-structures/3-flow-control/g-4395/","text":"G-4395: Avoid hard-coded upper or lower bound values with FOR loops. Minor Changeability, Maintainability Reason Your loop statement uses a hard-coded value for either its upper or lower bounds. This creates a \"weak link\" in your program because it assumes that this value will never change. A better practice is to create a named constant (or function) and reference this named element instead of the hard-coded value. Example (bad) 1 2 3 4 5 6 7 8 begin << for_loop >> for i in 1 .. 5 loop sys . dbms_output . put_line ( i ); end loop for_loop ; end ; / Example (good) 1 2 3 4 5 6 7 8 9 10 11 declare co_lower_bound constant simple_integer : = 1 ; co_upper_bound constant simple_integer : = 5 ; begin << for_loop >> for i in co_lower_bound .. co_upper_bound loop sys . dbms_output . put_line ( i ); end loop for_loop ; end ; /","title":"G-4395: Avoid hard-coded upper or lower bound values with FOR loops."},{"location":"4-language-usage/4-control-structures/3-flow-control/g-4395/#g-4395-avoid-hard-coded-upper-or-lower-bound-values-with-for-loops","text":"Minor Changeability, Maintainability","title":"G-4395: Avoid hard-coded upper or lower bound values with FOR loops."},{"location":"4-language-usage/4-control-structures/3-flow-control/g-4395/#reason","text":"Your loop statement uses a hard-coded value for either its upper or lower bounds. This creates a \"weak link\" in your program because it assumes that this value will never change. A better practice is to create a named constant (or function) and reference this named element instead of the hard-coded value.","title":"Reason"},{"location":"4-language-usage/4-control-structures/3-flow-control/g-4395/#example-bad","text":"1 2 3 4 5 6 7 8 begin << for_loop >> for i in 1 .. 5 loop sys . dbms_output . put_line ( i ); end loop for_loop ; end ; /","title":"Example (bad)"},{"location":"4-language-usage/4-control-structures/3-flow-control/g-4395/#example-good","text":"1 2 3 4 5 6 7 8 9 10 11 declare co_lower_bound constant simple_integer : = 1 ; co_upper_bound constant simple_integer : = 5 ; begin << for_loop >> for i in co_lower_bound .. co_upper_bound loop sys . dbms_output . put_line ( i ); end loop for_loop ; end ; /","title":"Example (good)"},{"location":"4-language-usage/5-exception-handling/g-5010/","text":"G-5010: Try to use a error/logging framework for your application. Critical Reliability, Reusability, Testability Unsupported in db* CODECOP Validators We cannot identify logging framework and where it should be applied. Requires further definition regarding naming of the error/logging framework and its minimal use in PL/SQL code. Reason Having a framework to raise/handle/log your errors allows you to easily avoid duplicate application error numbers and having different error messages for the same type of error. This kind of framework should include Logging (different channels like table, mail, file, etc. if needed) Error Raising Multilanguage support if needed Translate Oracle Database error messages to a user friendly error text Error repository Example (bad) 1 2 3 4 5 6 7 8 9 declare co_start constant logger_logs . text % type : = 'start' ; co_end constant logger_logs . text % type : = 'end' ; begin sys . dbms_output . put_line ( co_start ); -- some processing sys . dbms_output . put_line ( co_end ); end ; / Example (good) 1 2 3 4 5 6 7 8 9 10 11 declare -- see https://github.com/OraOpenSource/Logger co_start constant logger_logs . text % type : = 'start' ; co_end constant logger_logs . text % type : = 'end' ; co_scope constant logger_logs . scope % type : = 'demo' ; begin logger . log ( co_start , co_scope ); -- some processing logger . log ( co_end , co_scope ); end ; /","title":"G-5010: Try to use a error/logging framework for your application."},{"location":"4-language-usage/5-exception-handling/g-5010/#g-5010-try-to-use-a-errorlogging-framework-for-your-application","text":"Critical Reliability, Reusability, Testability Unsupported in db* CODECOP Validators We cannot identify logging framework and where it should be applied. Requires further definition regarding naming of the error/logging framework and its minimal use in PL/SQL code.","title":"G-5010: Try to use a error/logging framework for your application."},{"location":"4-language-usage/5-exception-handling/g-5010/#reason","text":"Having a framework to raise/handle/log your errors allows you to easily avoid duplicate application error numbers and having different error messages for the same type of error. This kind of framework should include Logging (different channels like table, mail, file, etc. if needed) Error Raising Multilanguage support if needed Translate Oracle Database error messages to a user friendly error text Error repository","title":"Reason"},{"location":"4-language-usage/5-exception-handling/g-5010/#example-bad","text":"1 2 3 4 5 6 7 8 9 declare co_start constant logger_logs . text % type : = 'start' ; co_end constant logger_logs . text % type : = 'end' ; begin sys . dbms_output . put_line ( co_start ); -- some processing sys . dbms_output . put_line ( co_end ); end ; /","title":"Example (bad)"},{"location":"4-language-usage/5-exception-handling/g-5010/#example-good","text":"1 2 3 4 5 6 7 8 9 10 11 declare -- see https://github.com/OraOpenSource/Logger co_start constant logger_logs . text % type : = 'start' ; co_end constant logger_logs . text % type : = 'end' ; co_scope constant logger_logs . scope % type : = 'demo' ; begin logger . log ( co_start , co_scope ); -- some processing logger . log ( co_end , co_scope ); end ; /","title":"Example (good)"},{"location":"4-language-usage/5-exception-handling/g-5020/","text":"G-5020: Never handle unnamed exceptions using the error number. Critical Maintainability Reason When literals are used for error numbers the reader needs the error message manual to unterstand what is going on. Commenting the code or using constants is an option, but it is better to use named exceptions instead, because it ensures a certain level of consistency which makes maintenance easier. Example (bad) 1 2 3 4 5 6 7 8 9 10 11 12 13 declare co_no_data_found constant integer : = - 1 ; begin my_package . some_processing (); -- some code which raises an exception exception when too_many_rows then my_package . some_further_processing (); when others then if sqlcode = co_no_data_found then null ; end if ; end ; / Example (good) 1 2 3 4 5 6 7 8 9 begin my_package . some_processing (); -- some code which raises an exception exception when too_many_rows then my_package . some_further_processing (); when no_data_found then null ; -- handle no_data_found end ; /","title":"G-5020: Never handle unnamed exceptions using the error number."},{"location":"4-language-usage/5-exception-handling/g-5020/#g-5020-never-handle-unnamed-exceptions-using-the-error-number","text":"Critical Maintainability","title":"G-5020: Never handle unnamed exceptions using the error number."},{"location":"4-language-usage/5-exception-handling/g-5020/#reason","text":"When literals are used for error numbers the reader needs the error message manual to unterstand what is going on. Commenting the code or using constants is an option, but it is better to use named exceptions instead, because it ensures a certain level of consistency which makes maintenance easier.","title":"Reason"},{"location":"4-language-usage/5-exception-handling/g-5020/#example-bad","text":"1 2 3 4 5 6 7 8 9 10 11 12 13 declare co_no_data_found constant integer : = - 1 ; begin my_package . some_processing (); -- some code which raises an exception exception when too_many_rows then my_package . some_further_processing (); when others then if sqlcode = co_no_data_found then null ; end if ; end ; /","title":"Example (bad)"},{"location":"4-language-usage/5-exception-handling/g-5020/#example-good","text":"1 2 3 4 5 6 7 8 9 begin my_package . some_processing (); -- some code which raises an exception exception when too_many_rows then my_package . some_further_processing (); when no_data_found then null ; -- handle no_data_found end ; /","title":"Example (good)"},{"location":"4-language-usage/5-exception-handling/g-5030/","text":"G-5030: Never assign predefined exception names to user defined exceptions. Blocker Reliability, Testability Reason This is error-prone because your local declaration overrides the global declaration. While it is technically possible to use the same names, it causes confusion for others needing to read and maintain this code. Additionally, you will need to be very careful to use the prefix standard in front of any reference that needs to use the default exception behavior of the Oracle Database. Example (bad) Using the code below, we are not able to handle the no_data_found exception raised by the select statement as we have overwritten that exception handler. In addition, our exception handler doesn't have an exception number assigned, which should be raised when the select statement does not find any rows. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 declare l_dummy dual . dummy % type ; no_data_found exception ; -- violates also naming convention G-9113 co_rownum constant simple_integer : = 0 ; co_no_data_found constant types_up . short_text_type : = 'no_data_found' ; begin select dummy into l_dummy from dual where rownum = co_rownum ; if l_dummy is null then raise no_data_found ; -- NOSONAR: consequential error, violates G-5070 end if ; exception when no_data_found then sys . dbms_output . put_line ( co_no_data_found ); end ; / 1 2 3 4 5 6 Error report - ORA-01403: no data found ORA-06512: at line 7 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. Example (good) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 declare l_dummy dual . dummy % type ; e_empty_value exception ; co_rownum constant simple_integer : = 0 ; co_empty_value constant types_up . short_text_type : = 'empty_value' ; co_no_data_found constant types_up . short_text_type : = 'no_data_found' ; begin select dummy into l_dummy from dual where rownum = co_rownum ; if l_dummy is null then raise e_empty_value ; end if ; exception when e_empty_value then sys . dbms_output . put_line ( co_empty_value ); when no_data_found then sys . dbms_output . put_line ( co_no_data_found ); end ; /","title":"G-5030: Never assign predefined exception names to user defined exceptions."},{"location":"4-language-usage/5-exception-handling/g-5030/#g-5030-never-assign-predefined-exception-names-to-user-defined-exceptions","text":"Blocker Reliability, Testability","title":"G-5030: Never assign predefined exception names to user defined exceptions."},{"location":"4-language-usage/5-exception-handling/g-5030/#reason","text":"This is error-prone because your local declaration overrides the global declaration. While it is technically possible to use the same names, it causes confusion for others needing to read and maintain this code. Additionally, you will need to be very careful to use the prefix standard in front of any reference that needs to use the default exception behavior of the Oracle Database.","title":"Reason"},{"location":"4-language-usage/5-exception-handling/g-5030/#example-bad","text":"Using the code below, we are not able to handle the no_data_found exception raised by the select statement as we have overwritten that exception handler. In addition, our exception handler doesn't have an exception number assigned, which should be raised when the select statement does not find any rows. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 declare l_dummy dual . dummy % type ; no_data_found exception ; -- violates also naming convention G-9113 co_rownum constant simple_integer : = 0 ; co_no_data_found constant types_up . short_text_type : = 'no_data_found' ; begin select dummy into l_dummy from dual where rownum = co_rownum ; if l_dummy is null then raise no_data_found ; -- NOSONAR: consequential error, violates G-5070 end if ; exception when no_data_found then sys . dbms_output . put_line ( co_no_data_found ); end ; / 1 2 3 4 5 6 Error report - ORA-01403: no data found ORA-06512: at line 7 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.","title":"Example (bad)"},{"location":"4-language-usage/5-exception-handling/g-5030/#example-good","text":"1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 declare l_dummy dual . dummy % type ; e_empty_value exception ; co_rownum constant simple_integer : = 0 ; co_empty_value constant types_up . short_text_type : = 'empty_value' ; co_no_data_found constant types_up . short_text_type : = 'no_data_found' ; begin select dummy into l_dummy from dual where rownum = co_rownum ; if l_dummy is null then raise e_empty_value ; end if ; exception when e_empty_value then sys . dbms_output . put_line ( co_empty_value ); when no_data_found then sys . dbms_output . put_line ( co_no_data_found ); end ; /","title":"Example (good)"},{"location":"4-language-usage/5-exception-handling/g-5040/","text":"G-5040: Avoid use of WHEN OTHERS clause in an exception section without any other specific handlers. Critical Reliability Reason There is not necessarily anything wrong with using when others , but it can cause you to \"lose\" error information unless your handler code is relatively sophisticated. Generally, you should use when others to grab any and every error only after you have thought about your executable section and decided that you are not able to trap any specific exceptions. If you know, on the other hand, that a certain exception might be raised, include a handler for that error. By declaring two different exception handlers, the code more clearly states what we expect to have happen and how we want to handle the errors. That makes it easier to maintain and enhance. We also avoid hard-coding error numbers in checks against sqlcode . When using a logging framework like Logger, consider making an exception to this rule and allow a when others even without other specific handlers, but only if the when others exception handler calls a logging procedure that saves the error stack (that otherwise is lost) and the last statement of the handler is raise . Example (bad) 1 2 3 4 5 6 7 begin my_package . some_processing (); exception when others then my_package . some_further_processing (); end ; / Example (good) 1 2 3 4 5 6 7 begin my_package . some_processing (); exception when dup_val_on_index then my_package . some_further_processing (); end ; / An exception to the rule where when others can be good to log the error and then re-raise it: 1 2 3 4 5 6 7 8 begin my_package . some_processing (); exception when others then logger . log_error ( 'Unhandled Exception' ); raise ; end ; /","title":"G-5040: Avoid use of WHEN OTHERS clause in an exception section without any other specific handlers."},{"location":"4-language-usage/5-exception-handling/g-5040/#g-5040-avoid-use-of-when-others-clause-in-an-exception-section-without-any-other-specific-handlers","text":"Critical Reliability","title":"G-5040: Avoid use of WHEN OTHERS clause in an exception section without any other specific handlers."},{"location":"4-language-usage/5-exception-handling/g-5040/#reason","text":"There is not necessarily anything wrong with using when others , but it can cause you to \"lose\" error information unless your handler code is relatively sophisticated. Generally, you should use when others to grab any and every error only after you have thought about your executable section and decided that you are not able to trap any specific exceptions. If you know, on the other hand, that a certain exception might be raised, include a handler for that error. By declaring two different exception handlers, the code more clearly states what we expect to have happen and how we want to handle the errors. That makes it easier to maintain and enhance. We also avoid hard-coding error numbers in checks against sqlcode . When using a logging framework like Logger, consider making an exception to this rule and allow a when others even without other specific handlers, but only if the when others exception handler calls a logging procedure that saves the error stack (that otherwise is lost) and the last statement of the handler is raise .","title":"Reason"},{"location":"4-language-usage/5-exception-handling/g-5040/#example-bad","text":"1 2 3 4 5 6 7 begin my_package . some_processing (); exception when others then my_package . some_further_processing (); end ; /","title":"Example (bad)"},{"location":"4-language-usage/5-exception-handling/g-5040/#example-good","text":"1 2 3 4 5 6 7 begin my_package . some_processing (); exception when dup_val_on_index then my_package . some_further_processing (); end ; / An exception to the rule where when others can be good to log the error and then re-raise it: 1 2 3 4 5 6 7 8 begin my_package . some_processing (); exception when others then logger . log_error ( 'Unhandled Exception' ); raise ; end ; /","title":"Example (good)"},{"location":"4-language-usage/5-exception-handling/g-5050/","text":"G-5050: Avoid use of the RAISE_APPLICATION_ERROR built-in procedure with a hard-coded 20nnn error number or hard-coded message. Major Changeability, Maintainability Reason If you are not very organized in the way you allocate, define and use the error numbers between 20999 and 20000 (those reserved by the Oracle Database for its user community), it is very easy to end up with conflicting usages. You should assign these error numbers to named constants and consolidate all definitions within a single package. When you call raise_application_error , you should reference these named elements and error message text stored in a table. Use your own raise procedure in place of explicit calls to raise_application_error . If you are raising a \"system\" exception like no_data_found , you must use raise . However, when you want to raise an application-specific error, you use raise_application_error . If you use the latter, you then have to provide an error number and message. This leads to unnecessary and damaging hard-coded values. A more fail-safe approach is to provide a predefined raise procedure that automatically checks the error number and determines the correct way to raise the error. Example (bad) 1 2 3 4 5 6 declare co_invalid_emp_text constant types_up . text : = 'Invalid employee_id' ; begin raise_application_error ( - 20501 /* violates also G-1010 */ , co_invalid_emp_text ); end ; / Example (good) 1 2 3 4 begin err_up . raise ( in_error => err . co_invalid_employee_id ); end ; /","title":"G-5050: Avoid use of the RAISE_APPLICATION_ERROR built-in procedure with a hard-coded 20nnn error number or hard-coded message."},{"location":"4-language-usage/5-exception-handling/g-5050/#g-5050-avoid-use-of-the-raise_application_error-built-in-procedure-with-a-hard-coded-20nnn-error-number-or-hard-coded-message","text":"Major Changeability, Maintainability","title":"G-5050: Avoid use of the RAISE_APPLICATION_ERROR built-in procedure with a hard-coded 20nnn error number or hard-coded message."},{"location":"4-language-usage/5-exception-handling/g-5050/#reason","text":"If you are not very organized in the way you allocate, define and use the error numbers between 20999 and 20000 (those reserved by the Oracle Database for its user community), it is very easy to end up with conflicting usages. You should assign these error numbers to named constants and consolidate all definitions within a single package. When you call raise_application_error , you should reference these named elements and error message text stored in a table. Use your own raise procedure in place of explicit calls to raise_application_error . If you are raising a \"system\" exception like no_data_found , you must use raise . However, when you want to raise an application-specific error, you use raise_application_error . If you use the latter, you then have to provide an error number and message. This leads to unnecessary and damaging hard-coded values. A more fail-safe approach is to provide a predefined raise procedure that automatically checks the error number and determines the correct way to raise the error.","title":"Reason"},{"location":"4-language-usage/5-exception-handling/g-5050/#example-bad","text":"1 2 3 4 5 6 declare co_invalid_emp_text constant types_up . text : = 'Invalid employee_id' ; begin raise_application_error ( - 20501 /* violates also G-1010 */ , co_invalid_emp_text ); end ; /","title":"Example (bad)"},{"location":"4-language-usage/5-exception-handling/g-5050/#example-good","text":"1 2 3 4 begin err_up . raise ( in_error => err . co_invalid_employee_id ); end ; /","title":"Example (good)"},{"location":"4-language-usage/5-exception-handling/g-5060/","text":"G-5060: Avoid unhandled exceptions. Major Reliability Reason This may be your intention, but you should review the code to confirm this behavior. If you are raising an error in a program, then you are clearly predicting a situation in which that error will occur. You should consider including a handler in your code for predictable errors, allowing for a graceful and informative failure. After all, it is much more difficult for an enclosing block to be aware of the various errors you might raise and more importantly, what should be done in response to the error. The form that this failure takes does not necessarily need to be an exception. When writing functions, you may well decide that in the case of certain exceptions, you will want to return a value such as null , rather than allow an exception to propagate out of the function. Example (bad) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 create or replace package body department_api is function name_by_id ( in_id in departments . department_id % type ) -- NOSONAR: non-deterministic return departments . department_name % type is co_id constant departments . department_id % type : = in_id ; l_department_name departments . department_name % type ; begin select department_name into l_department_name from departments where department_id = co_id ; return l_department_name ; end name_by_id ; end department_api ; / Example (good) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 create or replace package body department_api is function name_by_id ( in_id in departments . department_id % type ) -- NOSONAR: non-deterministic return departments . department_name % type is co_id constant departments . department_id % type : = in_id ; l_department_name departments . department_name % type ; begin select department_name into l_department_name from departments where department_id = co_id ; return l_department_name ; exception when no_data_found then return null ; when too_many_rows then raise ; end name_by_id ; end department_api ; /","title":"G-5060: Avoid unhandled exceptions."},{"location":"4-language-usage/5-exception-handling/g-5060/#g-5060-avoid-unhandled-exceptions","text":"Major Reliability","title":"G-5060: Avoid unhandled exceptions."},{"location":"4-language-usage/5-exception-handling/g-5060/#reason","text":"This may be your intention, but you should review the code to confirm this behavior. If you are raising an error in a program, then you are clearly predicting a situation in which that error will occur. You should consider including a handler in your code for predictable errors, allowing for a graceful and informative failure. After all, it is much more difficult for an enclosing block to be aware of the various errors you might raise and more importantly, what should be done in response to the error. The form that this failure takes does not necessarily need to be an exception. When writing functions, you may well decide that in the case of certain exceptions, you will want to return a value such as null , rather than allow an exception to propagate out of the function.","title":"Reason"},{"location":"4-language-usage/5-exception-handling/g-5060/#example-bad","text":"1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 create or replace package body department_api is function name_by_id ( in_id in departments . department_id % type ) -- NOSONAR: non-deterministic return departments . department_name % type is co_id constant departments . department_id % type : = in_id ; l_department_name departments . department_name % type ; begin select department_name into l_department_name from departments where department_id = co_id ; return l_department_name ; end name_by_id ; end department_api ; /","title":"Example (bad)"},{"location":"4-language-usage/5-exception-handling/g-5060/#example-good","text":"1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 create or replace package body department_api is function name_by_id ( in_id in departments . department_id % type ) -- NOSONAR: non-deterministic return departments . department_name % type is co_id constant departments . department_id % type : = in_id ; l_department_name departments . department_name % type ; begin select department_name into l_department_name from departments where department_id = co_id ; return l_department_name ; exception when no_data_found then return null ; when too_many_rows then raise ; end name_by_id ; end department_api ; /","title":"Example (good)"},{"location":"4-language-usage/5-exception-handling/g-5070/","text":"G-5070: Avoid using Oracle predefined exceptions. Blocker Reliability Reason You have raised an exception whose name was defined by Oracle. While it is possible that you have a good reason for \"using\" one of Oracle's predefined exceptions, you should make sure that you would not be better off declaring your own exception and raising that instead. If you decide to change the exception you are using, you should apply the same consideration to your own exceptions. Specifically, do not \"re-use\" exceptions. You should define a separate exception for each error condition, rather than use the same exception for different circumstances. Being as specific as possible with the errors raised will allow developers to check for, and handle, the different kinds of errors the code might produce. Example (bad) 1 2 3 4 begin raise no_data_found ; end ; / Example (good) 1 2 3 4 5 6 declare e_my_exception exception ; begin raise e_my_exception ; end ; /","title":"G-5070: Avoid using Oracle predefined exceptions."},{"location":"4-language-usage/5-exception-handling/g-5070/#g-5070-avoid-using-oracle-predefined-exceptions","text":"Blocker Reliability","title":"G-5070: Avoid using Oracle predefined exceptions."},{"location":"4-language-usage/5-exception-handling/g-5070/#reason","text":"You have raised an exception whose name was defined by Oracle. While it is possible that you have a good reason for \"using\" one of Oracle's predefined exceptions, you should make sure that you would not be better off declaring your own exception and raising that instead. If you decide to change the exception you are using, you should apply the same consideration to your own exceptions. Specifically, do not \"re-use\" exceptions. You should define a separate exception for each error condition, rather than use the same exception for different circumstances. Being as specific as possible with the errors raised will allow developers to check for, and handle, the different kinds of errors the code might produce.","title":"Reason"},{"location":"4-language-usage/5-exception-handling/g-5070/#example-bad","text":"1 2 3 4 begin raise no_data_found ; end ; /","title":"Example (bad)"},{"location":"4-language-usage/5-exception-handling/g-5070/#example-good","text":"1 2 3 4 5 6 declare e_my_exception exception ; begin raise e_my_exception ; end ; /","title":"Example (good)"},{"location":"4-language-usage/5-exception-handling/g-5080/","text":"G-5080: Always use FORMAT_ERROR_BACKTRACE when using FORMAT_ERROR_STACK or SQLERRM. Critical Maintainability, Testability Reason In exception handler sqlerrm and format_error_stack won't tell you the exact line where the error occurred. format_error_backtrace displays the call stack at the point where an exception was raised, even if the subprogram is called from an exception handler in an outer scope. If you use sqlerrm or format_error_stack to log/display error, you should also include format_error_backtrace to identify the exact location where the exception was raised. Example (bad) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 create or replace package body order_api as procedure discount_and_recalculate ( in_customer_id in integer , in_discount in number ) is co_customer_id constant customer . id % type : = in_customer_id ; co_discount constant customer . discount_percentage % type : = in_discount ; co_error_label constant type_up . text : = 'Error: ' ; begin customer_api . apply_discount ( in_customer_id => co_customer_id , in_discount => co_discount ); customer_api . calc ( co_customer_id ); exception when zero_divide then null ; -- ignore when others then logging_package . log_error ( co_error_label || sqlerrm ); raise ; end discount_and_recalculate ; end order_api ; / Example (good) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 create or replace package body order_api as procedure discount_and_recalculate ( in_customer_id in integer , in_discount in number ) is co_customer_id constant customer . id % type : = in_customer_id ; co_discount constant customer . discount_percentage % type : = in_discount ; co_error_label constant type_up . text : = 'Error: ' ; co_backtrace_label constant type_up . text : = ' - Backtrace: ' ; begin customer_api . apply_discount ( in_customer_id => co_customer_id , in_discount => co_discount ); customer_api . calc ( co_customer_id ); exception when zero_divide then null ; -- ignore when others then logging_package . log_error ( co_error_label || sqlerrm || co_backtrace_label || sys . dbms_utility . format_error_backtrace ); raise ; end discount_and_recalculate ; end order_api ; /","title":"G-5080: Always use FORMAT_ERROR_BACKTRACE when using FORMAT_ERROR_STACK or SQLERRM."},{"location":"4-language-usage/5-exception-handling/g-5080/#g-5080-always-use-format_error_backtrace-when-using-format_error_stack-or-sqlerrm","text":"Critical Maintainability, Testability","title":"G-5080: Always use FORMAT_ERROR_BACKTRACE when using FORMAT_ERROR_STACK or SQLERRM."},{"location":"4-language-usage/5-exception-handling/g-5080/#reason","text":"In exception handler sqlerrm and format_error_stack won't tell you the exact line where the error occurred. format_error_backtrace displays the call stack at the point where an exception was raised, even if the subprogram is called from an exception handler in an outer scope. If you use sqlerrm or format_error_stack to log/display error, you should also include format_error_backtrace to identify the exact location where the exception was raised.","title":"Reason"},{"location":"4-language-usage/5-exception-handling/g-5080/#example-bad","text":"1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 create or replace package body order_api as procedure discount_and_recalculate ( in_customer_id in integer , in_discount in number ) is co_customer_id constant customer . id % type : = in_customer_id ; co_discount constant customer . discount_percentage % type : = in_discount ; co_error_label constant type_up . text : = 'Error: ' ; begin customer_api . apply_discount ( in_customer_id => co_customer_id , in_discount => co_discount ); customer_api . calc ( co_customer_id ); exception when zero_divide then null ; -- ignore when others then logging_package . log_error ( co_error_label || sqlerrm ); raise ; end discount_and_recalculate ; end order_api ; /","title":"Example (bad)"},{"location":"4-language-usage/5-exception-handling/g-5080/#example-good","text":"1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 create or replace package body order_api as procedure discount_and_recalculate ( in_customer_id in integer , in_discount in number ) is co_customer_id constant customer . id % type : = in_customer_id ; co_discount constant customer . discount_percentage % type : = in_discount ; co_error_label constant type_up . text : = 'Error: ' ; co_backtrace_label constant type_up . text : = ' - Backtrace: ' ; begin customer_api . apply_discount ( in_customer_id => co_customer_id , in_discount => co_discount ); customer_api . calc ( co_customer_id ); exception when zero_divide then null ; -- ignore when others then logging_package . log_error ( co_error_label || sqlerrm || co_backtrace_label || sys . dbms_utility . format_error_backtrace ); raise ; end discount_and_recalculate ; end order_api ; /","title":"Example (good)"},{"location":"4-language-usage/6-dynamic-sql/g-6010/","text":"G-6010: Always use a character variable to execute dynamic SQL. Major Maintainability, Testability Reason Having the executed statement in a variable makes it easier to debug your code (e.g. by logging the statement that failed). Example (bad) 1 2 3 4 5 6 7 declare l_next_val employees . employee_id % type ; begin execute immediate 'select employees_seq.nextval from dual' into l_next_val ; end ; / Example (good) 1 2 3 4 5 6 7 8 declare l_next_val employees . employee_id % type ; co_sql constant types_up . big_string_type : = 'select employees_seq.nextval from dual' ; begin execute immediate co_sql into l_next_val ; end ; /","title":"G-6010: Always use a character variable to execute dynamic SQL."},{"location":"4-language-usage/6-dynamic-sql/g-6010/#g-6010-always-use-a-character-variable-to-execute-dynamic-sql","text":"Major Maintainability, Testability","title":"G-6010: Always use a character variable to execute dynamic SQL."},{"location":"4-language-usage/6-dynamic-sql/g-6010/#reason","text":"Having the executed statement in a variable makes it easier to debug your code (e.g. by logging the statement that failed).","title":"Reason"},{"location":"4-language-usage/6-dynamic-sql/g-6010/#example-bad","text":"1 2 3 4 5 6 7 declare l_next_val employees . employee_id % type ; begin execute immediate 'select employees_seq.nextval from dual' into l_next_val ; end ; /","title":"Example (bad)"},{"location":"4-language-usage/6-dynamic-sql/g-6010/#example-good","text":"1 2 3 4 5 6 7 8 declare l_next_val employees . employee_id % type ; co_sql constant types_up . big_string_type : = 'select employees_seq.nextval from dual' ; begin execute immediate co_sql into l_next_val ; end ; /","title":"Example (good)"},{"location":"4-language-usage/6-dynamic-sql/g-6020/","text":"G-6020: Try to use output bind arguments in the RETURNING INTO clause of dynamic DML statements rather than the USING clause. Minor Maintainability Reason When a dynamic insert , update , or delete statement has a returning clause, output bind arguments can go in the returning into clause or in the using clause. You should use the returning into clause for values returned from a DML operation. Reserve out and in out bind variables for dynamic PL/SQL blocks that return values in PL/SQL variables. Example (bad) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 create or replace package body employee_api is procedure upd_salary ( in_employee_id in employees . employee_id % type , in_increase_pct in types_up . percentage , out_new_salary out employees . salary % type ) is co_employee_id constant employees . employee_id % type : = in_employee_id ; co_increase_pct constant types_up . percentage : = in_increase_pct ; co_sql_stmt constant types_up . big_string_type : = ' update employees set salary = salary + (salary / 100 * :1) where employee_id = :2 returning salary into :3' ; begin execute immediate co_sql_stmt using co_increase_pct , co_employee_id , out out_new_salary ; end upd_salary ; end employee_api ; / Example (good) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 create or replace package body employee_api is procedure upd_salary ( in_employee_id in employees . employee_id % type , in_increase_pct in types_up . percentage , out_new_salary out employees . salary % type ) is co_employee_id constant employees . employee_id % type : = in_employee_id ; co_increase_pct constant types_up . percentage : = in_increase_pct ; co_sql_stmt constant types_up . big_string_type : = ' update employees set salary = salary + (salary / 100 * :1) where employee_id = :2 returning salary into :3' ; begin execute immediate co_sql_stmt using co_increase_pct , co_employee_id returning into out_new_salary ; end upd_salary ; end employee_api ; /","title":"G-6020: Try to use output bind arguments in the RETURNING INTO clause of dynamic DML statements rather than the USING clause."},{"location":"4-language-usage/6-dynamic-sql/g-6020/#g-6020-try-to-use-output-bind-arguments-in-the-returning-into-clause-of-dynamic-dml-statements-rather-than-the-using-clause","text":"Minor Maintainability","title":"G-6020: Try to use output bind arguments in the RETURNING INTO clause of dynamic DML statements rather than the USING clause."},{"location":"4-language-usage/6-dynamic-sql/g-6020/#reason","text":"When a dynamic insert , update , or delete statement has a returning clause, output bind arguments can go in the returning into clause or in the using clause. You should use the returning into clause for values returned from a DML operation. Reserve out and in out bind variables for dynamic PL/SQL blocks that return values in PL/SQL variables.","title":"Reason"},{"location":"4-language-usage/6-dynamic-sql/g-6020/#example-bad","text":"1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 create or replace package body employee_api is procedure upd_salary ( in_employee_id in employees . employee_id % type , in_increase_pct in types_up . percentage , out_new_salary out employees . salary % type ) is co_employee_id constant employees . employee_id % type : = in_employee_id ; co_increase_pct constant types_up . percentage : = in_increase_pct ; co_sql_stmt constant types_up . big_string_type : = ' update employees set salary = salary + (salary / 100 * :1) where employee_id = :2 returning salary into :3' ; begin execute immediate co_sql_stmt using co_increase_pct , co_employee_id , out out_new_salary ; end upd_salary ; end employee_api ; /","title":"Example (bad)"},{"location":"4-language-usage/6-dynamic-sql/g-6020/#example-good","text":"1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 create or replace package body employee_api is procedure upd_salary ( in_employee_id in employees . employee_id % type , in_increase_pct in types_up . percentage , out_new_salary out employees . salary % type ) is co_employee_id constant employees . employee_id % type : = in_employee_id ; co_increase_pct constant types_up . percentage : = in_increase_pct ; co_sql_stmt constant types_up . big_string_type : = ' update employees set salary = salary + (salary / 100 * :1) where employee_id = :2 returning salary into :3' ; begin execute immediate co_sql_stmt using co_increase_pct , co_employee_id returning into out_new_salary ; end upd_salary ; end employee_api ; /","title":"Example (good)"},{"location":"4-language-usage/7-stored-objects/1-general/g-7110/","text":"G-7110: Try to use named notation when calling program units. Major Changeability, Maintainability Reason Named notation makes sure that changes to the signature of the called program unit do not affect your call. This is not needed for standard functions like ( to_char , to_date , nvl , round , etc.) but should be followed for any other stored object having more than one parameter. Example (bad) 1 2 3 4 5 6 7 declare r_employee employees % rowtype ; co_id constant employees . employee_id % type : = 107 ; begin employee_api . employee_by_id ( r_employee , co_id ); end ; / Example (good) 1 2 3 4 5 6 7 8 9 10 declare r_employee employees % rowtype ; co_id constant employees . employee_id % type : = 107 ; begin employee_api . employee_by_id ( out_row => r_employee , in_employee_id => co_id ); end ; /","title":"G-7110: Try to use named notation when calling program units."},{"location":"4-language-usage/7-stored-objects/1-general/g-7110/#g-7110-try-to-use-named-notation-when-calling-program-units","text":"Major Changeability, Maintainability","title":"G-7110: Try to use named notation when calling program units."},{"location":"4-language-usage/7-stored-objects/1-general/g-7110/#reason","text":"Named notation makes sure that changes to the signature of the called program unit do not affect your call. This is not needed for standard functions like ( to_char , to_date , nvl , round , etc.) but should be followed for any other stored object having more than one parameter.","title":"Reason"},{"location":"4-language-usage/7-stored-objects/1-general/g-7110/#example-bad","text":"1 2 3 4 5 6 7 declare r_employee employees % rowtype ; co_id constant employees . employee_id % type : = 107 ; begin employee_api . employee_by_id ( r_employee , co_id ); end ; /","title":"Example (bad)"},{"location":"4-language-usage/7-stored-objects/1-general/g-7110/#example-good","text":"1 2 3 4 5 6 7 8 9 10 declare r_employee employees % rowtype ; co_id constant employees . employee_id % type : = 107 ; begin employee_api . employee_by_id ( out_row => r_employee , in_employee_id => co_id ); end ; /","title":"Example (good)"},{"location":"4-language-usage/7-stored-objects/1-general/g-7120/","text":"G-7120: Always add the name of the program unit to its end keyword. Minor Maintainability Reason It's a good alternative for comments to indicate the end of program units, especially if they are lengthy or nested. Example (bad) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 create or replace package body employee_api is function employee_by_id ( in_employee_id in integer ) -- NOSONAR: non-deterministic return employees % rowtype is co_employee_id constant employees . employee_id % type : = in_employee_id ; r_employee employees % rowtype ; begin select * into r_employee from employees where employee_id = co_employee_id ; return r_employee ; exception when no_data_found then null ; when too_many_rows then raise ; end ; end ; / Example (good) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 create or replace package body employee_api is function employee_by_id ( in_employee_id in integer ) -- NOSONAR: non-deterministic return employees % rowtype is co_employee_id constant employees . employee_id % type : = in_employee_id ; r_employee employees % rowtype ; begin select * into r_employee from employees where employee_id = co_employee_id ; return r_employee ; exception when no_data_found then null ; when too_many_rows then raise ; end employee_by_id ; end employee_api ; /","title":"G-7120: Always add the name of the program unit to its end keyword."},{"location":"4-language-usage/7-stored-objects/1-general/g-7120/#g-7120-always-add-the-name-of-the-program-unit-to-its-end-keyword","text":"Minor Maintainability","title":"G-7120: Always add the name of the program unit to its end keyword."},{"location":"4-language-usage/7-stored-objects/1-general/g-7120/#reason","text":"It's a good alternative for comments to indicate the end of program units, especially if they are lengthy or nested.","title":"Reason"},{"location":"4-language-usage/7-stored-objects/1-general/g-7120/#example-bad","text":"1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 create or replace package body employee_api is function employee_by_id ( in_employee_id in integer ) -- NOSONAR: non-deterministic return employees % rowtype is co_employee_id constant employees . employee_id % type : = in_employee_id ; r_employee employees % rowtype ; begin select * into r_employee from employees where employee_id = co_employee_id ; return r_employee ; exception when no_data_found then null ; when too_many_rows then raise ; end ; end ; /","title":"Example (bad)"},{"location":"4-language-usage/7-stored-objects/1-general/g-7120/#example-good","text":"1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 create or replace package body employee_api is function employee_by_id ( in_employee_id in integer ) -- NOSONAR: non-deterministic return employees % rowtype is co_employee_id constant employees . employee_id % type : = in_employee_id ; r_employee employees % rowtype ; begin select * into r_employee from employees where employee_id = co_employee_id ; return r_employee ; exception when no_data_found then null ; when too_many_rows then raise ; end employee_by_id ; end employee_api ; /","title":"Example (good)"},{"location":"4-language-usage/7-stored-objects/1-general/g-7125/","text":"G-7125: Always use CREATE OR REPLACE instead of CREATE alone. Major Maintainability Reason Using create alone makes your scripts give an error if the program unit already exists, which makes the script not repeatable. It is good practice to use create or replace to avoid such errors. Example (bad) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 create package body employee_api is function employee_by_id ( in_employee_id in integer ) -- NOSONAR: non-deterministic return employees % rowtype is co_employee_id constant employees . employee_id % type : = in_employee_id ; r_employee employees % rowtype ; begin select * into r_employee from employees where employee_id = co_employee_id ; return r_employee ; exception when no_data_found then null ; when too_many_rows then raise ; end employee_by_id ; end employee_api ; / Example (good) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 create or replace package body employee_api is function employee_by_id ( in_employee_id in integer ) -- NOSONAR: non-deterministic return employees % rowtype is co_employee_id constant employees . employee_id % type : = in_employee_id ; r_employee employees % rowtype ; begin select * into r_employee from employees where employee_id = co_employee_id ; return r_employee ; exception when no_data_found then null ; when too_many_rows then raise ; end employee_by_id ; end employee_api ; /","title":"G-7125: Always use CREATE OR REPLACE instead of CREATE alone."},{"location":"4-language-usage/7-stored-objects/1-general/g-7125/#g-7125-always-use-create-or-replace-instead-of-create-alone","text":"Major Maintainability","title":"G-7125: Always use CREATE OR REPLACE instead of CREATE alone."},{"location":"4-language-usage/7-stored-objects/1-general/g-7125/#reason","text":"Using create alone makes your scripts give an error if the program unit already exists, which makes the script not repeatable. It is good practice to use create or replace to avoid such errors.","title":"Reason"},{"location":"4-language-usage/7-stored-objects/1-general/g-7125/#example-bad","text":"1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 create package body employee_api is function employee_by_id ( in_employee_id in integer ) -- NOSONAR: non-deterministic return employees % rowtype is co_employee_id constant employees . employee_id % type : = in_employee_id ; r_employee employees % rowtype ; begin select * into r_employee from employees where employee_id = co_employee_id ; return r_employee ; exception when no_data_found then null ; when too_many_rows then raise ; end employee_by_id ; end employee_api ; /","title":"Example (bad)"},{"location":"4-language-usage/7-stored-objects/1-general/g-7125/#example-good","text":"1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 create or replace package body employee_api is function employee_by_id ( in_employee_id in integer ) -- NOSONAR: non-deterministic return employees % rowtype is co_employee_id constant employees . employee_id % type : = in_employee_id ; r_employee employees % rowtype ; begin select * into r_employee from employees where employee_id = co_employee_id ; return r_employee ; exception when no_data_found then null ; when too_many_rows then raise ; end employee_by_id ; end employee_api ; /","title":"Example (good)"},{"location":"4-language-usage/7-stored-objects/1-general/g-7130/","text":"G-7130: Always use parameters or pull in definitions rather than referencing external variables in a local program unit. Major Maintainability, Reliability, Testability Reason Local procedures and functions offer an excellent way to avoid code redundancy and make your code more readable (and thus more maintainable). Your local program refers, however, an external data structure, i.e., a variable that is declared outside of the local program. Thus, it is acting as a global variable inside the program. This external dependency is hidden, and may cause problems in the future. You should instead add a parameter to the parameter list of this program and pass the value through the list. This technique makes your program more reusable and avoids scoping problems, i.e. the program unit is less tied to particular variables in the program. In addition, unit encapsulation makes maintenance a lot easier and cheaper. Example (bad) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 create or replace package body employee_api is procedure calc_salary ( in_employee_id in integer ) is co_employee_id constant employees . employee_id % type : = in_employee_id ; r_emp employees % rowtype ; function commission return number is -- NOSONAR: non-deterministic l_commission employees . salary % type : = 0 ; begin if r_emp . commission_pct is not null then l_commission : = r_emp . salary * r_emp . commission_pct ; end if ; return l_commission ; end commission ; begin select * into r_emp from employees where employee_id = co_employee_id ; sys . dbms_output . put_line ( r_emp . salary + commission ()); exception when no_data_found then null ; when too_many_rows then null ; end calc_salary ; end employee_api ; / Example (good) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 create or replace package body employee_api is procedure calc_salary ( in_employee_id in integer ) is co_employee_id constant employees . employee_id % type : = in_employee_id ; r_emp employees % rowtype ; function commission ( in_salary in number , in_comm_pct in number ) return number deterministic is co_salary constant employees . salary % type : = in_salary ; co_comm_pct constant employees . commission_pct % type : = in_comm_pct ; l_commission employees . salary % type : = 0 ; begin if in_comm_pct is not null then l_commission : = co_salary * co_comm_pct ; end if ; return l_commission ; end commission ; begin select * into r_emp from employees where employee_id = co_employee_id ; sys . dbms_output . put_line ( r_emp . salary + commission ( in_salary => r_emp . salary , in_comm_pct => r_emp . commission_pct ) ); exception when no_data_found then null ; when too_many_rows then null ; end calc_salary ; end employee_api ; /","title":"G-7130: Always use parameters or pull in definitions rather than referencing external variables in a local program unit."},{"location":"4-language-usage/7-stored-objects/1-general/g-7130/#g-7130-always-use-parameters-or-pull-in-definitions-rather-than-referencing-external-variables-in-a-local-program-unit","text":"Major Maintainability, Reliability, Testability","title":"G-7130: Always use parameters or pull in definitions rather than referencing external variables in a local program unit."},{"location":"4-language-usage/7-stored-objects/1-general/g-7130/#reason","text":"Local procedures and functions offer an excellent way to avoid code redundancy and make your code more readable (and thus more maintainable). Your local program refers, however, an external data structure, i.e., a variable that is declared outside of the local program. Thus, it is acting as a global variable inside the program. This external dependency is hidden, and may cause problems in the future. You should instead add a parameter to the parameter list of this program and pass the value through the list. This technique makes your program more reusable and avoids scoping problems, i.e. the program unit is less tied to particular variables in the program. In addition, unit encapsulation makes maintenance a lot easier and cheaper.","title":"Reason"},{"location":"4-language-usage/7-stored-objects/1-general/g-7130/#example-bad","text":"1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 create or replace package body employee_api is procedure calc_salary ( in_employee_id in integer ) is co_employee_id constant employees . employee_id % type : = in_employee_id ; r_emp employees % rowtype ; function commission return number is -- NOSONAR: non-deterministic l_commission employees . salary % type : = 0 ; begin if r_emp . commission_pct is not null then l_commission : = r_emp . salary * r_emp . commission_pct ; end if ; return l_commission ; end commission ; begin select * into r_emp from employees where employee_id = co_employee_id ; sys . dbms_output . put_line ( r_emp . salary + commission ()); exception when no_data_found then null ; when too_many_rows then null ; end calc_salary ; end employee_api ; /","title":"Example (bad)"},{"location":"4-language-usage/7-stored-objects/1-general/g-7130/#example-good","text":"1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 create or replace package body employee_api is procedure calc_salary ( in_employee_id in integer ) is co_employee_id constant employees . employee_id % type : = in_employee_id ; r_emp employees % rowtype ; function commission ( in_salary in number , in_comm_pct in number ) return number deterministic is co_salary constant employees . salary % type : = in_salary ; co_comm_pct constant employees . commission_pct % type : = in_comm_pct ; l_commission employees . salary % type : = 0 ; begin if in_comm_pct is not null then l_commission : = co_salary * co_comm_pct ; end if ; return l_commission ; end commission ; begin select * into r_emp from employees where employee_id = co_employee_id ; sys . dbms_output . put_line ( r_emp . salary + commission ( in_salary => r_emp . salary , in_comm_pct => r_emp . commission_pct ) ); exception when no_data_found then null ; when too_many_rows then null ; end calc_salary ; end employee_api ; /","title":"Example (good)"},{"location":"4-language-usage/7-stored-objects/1-general/g-7140/","text":"G-7140: Always ensure that locally defined procedures or functions are referenced. Major Maintainability, Reliability Reason This can occur as the result of changes to code over time, but you should make sure that this situation does not reflect a problem. And you should remove the declaration to avoid maintenance errors in the future. You should go through your programs and remove any part of your code that is no longer used. This is a relatively straightforward process for variables and named constants. Simply execute searches for a variable's name in that variable's scope. If you find that the only place it appears is in its declaration, delete the declaration. There is never a better time to review all the steps you took, and to understand the reasons you took them, then immediately upon completion of your program. If you wait, you will find it particularly difficult to remember those parts of the program that were needed at one point, but were rendered unnecessary in the end. Example (bad) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 create or replace package body my_package is procedure my_procedure is function my_func return number deterministic is co_true constant integer : = 1 ; begin return co_true ; end my_func ; begin null ; end my_procedure ; end my_package ; / Example (good) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 create or replace package body my_package is procedure my_procedure is function my_func return number deterministic is co_true constant integer : = 1 ; begin return co_true ; end my_func ; begin sys . dbms_output . put_line ( my_func ()); end my_procedure ; end my_package ; /","title":"G-7140: Always ensure that locally defined procedures or functions are referenced."},{"location":"4-language-usage/7-stored-objects/1-general/g-7140/#g-7140-always-ensure-that-locally-defined-procedures-or-functions-are-referenced","text":"Major Maintainability, Reliability","title":"G-7140: Always ensure that locally defined procedures or functions are referenced."},{"location":"4-language-usage/7-stored-objects/1-general/g-7140/#reason","text":"This can occur as the result of changes to code over time, but you should make sure that this situation does not reflect a problem. And you should remove the declaration to avoid maintenance errors in the future. You should go through your programs and remove any part of your code that is no longer used. This is a relatively straightforward process for variables and named constants. Simply execute searches for a variable's name in that variable's scope. If you find that the only place it appears is in its declaration, delete the declaration. There is never a better time to review all the steps you took, and to understand the reasons you took them, then immediately upon completion of your program. If you wait, you will find it particularly difficult to remember those parts of the program that were needed at one point, but were rendered unnecessary in the end.","title":"Reason"},{"location":"4-language-usage/7-stored-objects/1-general/g-7140/#example-bad","text":"1 2 3 4 5 6 7 8 9 10 11 12 13 14 create or replace package body my_package is procedure my_procedure is function my_func return number deterministic is co_true constant integer : = 1 ; begin return co_true ; end my_func ; begin null ; end my_procedure ; end my_package ; /","title":"Example (bad)"},{"location":"4-language-usage/7-stored-objects/1-general/g-7140/#example-good","text":"1 2 3 4 5 6 7 8 9 10 11 12 13 14 create or replace package body my_package is procedure my_procedure is function my_func return number deterministic is co_true constant integer : = 1 ; begin return co_true ; end my_func ; begin sys . dbms_output . put_line ( my_func ()); end my_procedure ; end my_package ; /","title":"Example (good)"},{"location":"4-language-usage/7-stored-objects/1-general/g-7150/","text":"G-7150: Try to remove unused parameters. Major Efficiency, Maintainability Reason You should go through your programs and remove any parameter that is no longer used. Example (bad) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 create or replace package body department_api is function name_by_id ( -- NOSONAR: non-deterministic in_department_id in integer , in_manager in employees % rowtype ) return departments . department_name % type is co_department_id constant departments . department_id % type : = in_department_id ; l_department_name departments . department_name % type ; begin << find_department >> begin select department_name into l_department_name from departments where department_id = co_department_id ; exception when no_data_found or too_many_rows then l_department_name : = null ; end find_department ; return l_department_name ; end name_by_id ; end department_api ; / Example (good) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 create or replace package body department_api is function name_by_id ( -- NOSONAR: non-deterministic in_department_id in integer ) return departments . department_name % type is co_department_id constant departments . department_id % type : = in_department_id ; l_department_name departments . department_name % type ; begin << find_department >> begin select department_name into l_department_name from departments where department_id = co_department_id ; exception when no_data_found or too_many_rows then l_department_name : = null ; end find_department ; return l_department_name ; end name_by_id ; end department_api ; /","title":"G-7150: Try to remove unused parameters."},{"location":"4-language-usage/7-stored-objects/1-general/g-7150/#g-7150-try-to-remove-unused-parameters","text":"Major Efficiency, Maintainability","title":"G-7150: Try to remove unused parameters."},{"location":"4-language-usage/7-stored-objects/1-general/g-7150/#reason","text":"You should go through your programs and remove any parameter that is no longer used.","title":"Reason"},{"location":"4-language-usage/7-stored-objects/1-general/g-7150/#example-bad","text":"1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 create or replace package body department_api is function name_by_id ( -- NOSONAR: non-deterministic in_department_id in integer , in_manager in employees % rowtype ) return departments . department_name % type is co_department_id constant departments . department_id % type : = in_department_id ; l_department_name departments . department_name % type ; begin << find_department >> begin select department_name into l_department_name from departments where department_id = co_department_id ; exception when no_data_found or too_many_rows then l_department_name : = null ; end find_department ; return l_department_name ; end name_by_id ; end department_api ; /","title":"Example (bad)"},{"location":"4-language-usage/7-stored-objects/1-general/g-7150/#example-good","text":"1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 create or replace package body department_api is function name_by_id ( -- NOSONAR: non-deterministic in_department_id in integer ) return departments . department_name % type is co_department_id constant departments . department_id % type : = in_department_id ; l_department_name departments . department_name % type ; begin << find_department >> begin select department_name into l_department_name from departments where department_id = co_department_id ; exception when no_data_found or too_many_rows then l_department_name : = null ; end find_department ; return l_department_name ; end name_by_id ; end department_api ; /","title":"Example (good)"},{"location":"4-language-usage/7-stored-objects/1-general/g-7160/","text":"G-7160: Always explicitly state parameter mode. Major Maintainability Reason By showing the mode of parameters, you help the reader. If you do not specify a parameter mode, the default mode is in . Explicitly showing the mode indication of all parameters is a more assertive action than simply taking the default mode. Anyone reviewing the code later will be more confident that you intended the parameter mode to be in , out or in out . Example (bad) 1 2 3 4 5 6 7 8 9 create or replace package employee_api is procedure store ( io_id in out employees . id % type , in_first_name employees . first_name % type , in_last_name employees . last_name % type , in_email employees . email % type , in_department_id employees . department_id % type , out_success out pls_integer ); end employee_up ; / Example (good) 1 2 3 4 5 6 7 8 9 create or replace package employee_api is procedure store ( io_id in out employees . id % type , in_first_name in employees . first_name % type , in_last_name in employees . last_name % type , in_email in employees . email % type , in_department_id in employees . department_id % type , out_success out pls_integer ); end employee_up ; /","title":"G-7160: Always explicitly state parameter mode."},{"location":"4-language-usage/7-stored-objects/1-general/g-7160/#g-7160-always-explicitly-state-parameter-mode","text":"Major Maintainability","title":"G-7160: Always explicitly state parameter mode."},{"location":"4-language-usage/7-stored-objects/1-general/g-7160/#reason","text":"By showing the mode of parameters, you help the reader. If you do not specify a parameter mode, the default mode is in . Explicitly showing the mode indication of all parameters is a more assertive action than simply taking the default mode. Anyone reviewing the code later will be more confident that you intended the parameter mode to be in , out or in out .","title":"Reason"},{"location":"4-language-usage/7-stored-objects/1-general/g-7160/#example-bad","text":"1 2 3 4 5 6 7 8 9 create or replace package employee_api is procedure store ( io_id in out employees . id % type , in_first_name employees . first_name % type , in_last_name employees . last_name % type , in_email employees . email % type , in_department_id employees . department_id % type , out_success out pls_integer ); end employee_up ; /","title":"Example (bad)"},{"location":"4-language-usage/7-stored-objects/1-general/g-7160/#example-good","text":"1 2 3 4 5 6 7 8 9 create or replace package employee_api is procedure store ( io_id in out employees . id % type , in_first_name in employees . first_name % type , in_last_name in employees . last_name % type , in_email in employees . email % type , in_department_id in employees . department_id % type , out_success out pls_integer ); end employee_up ; /","title":"Example (good)"},{"location":"4-language-usage/7-stored-objects/1-general/g-7170/","text":"G-7170: Avoid using an IN OUT parameter as IN or OUT only. Major Efficiency, Maintainability Unsupported in db* CODECOP Validators We cannot determine the usage of an in out parameter in a reliable way, especially when other units are involved which are maintained in another file. Reason Avoid using parameter mode in out unless you actually use the parameter both as input and output. If the code body only reads from the parameter, use in ; if the code body only assigns to the parameter, use out . If at the beginning of a project you expect a parameter to be both input and output and therefore choose in out just in case, but later development shows the parameter actually is only in or out , you should change the parameter mode accordingly. Example (bad) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 create or replace package body employee_up is procedure rcv_emp ( io_first_name in out employees . first_name % type , io_last_name in out employees . last_name % type , io_email in out employees . email % type , io_phone_number in out employees . phone_number % type , io_hire_date in out employees . hire_date % type , io_job_id in out employees . job_id % type , io_salary in out employees . salary % type , io_commission_pct in out employees . commission_pct % type , io_manager_id in out employees . manager_id % type , io_department_id in out employees . department_id % type , in_wait in integer ) is l_status pls_integer ; co_dflt_pipe_name constant string ( 30 char ) : = 'MyPipe' ; co_ok constant pls_integer : = 1 ; co_wait constant pls_integer : = in_wait ; begin -- Receive next message and unpack for each column. l_status : = sys . dbms_pipe . receive_message ( pipename => co_dflt_pipe_name , timeout => co_wait ); if l_status = co_ok then sys . dbms_pipe . unpack_message ( io_first_name ); sys . dbms_pipe . unpack_message ( io_last_name ); sys . dbms_pipe . unpack_message ( io_email ); sys . dbms_pipe . unpack_message ( io_phone_number ); sys . dbms_pipe . unpack_message ( io_hire_date ); sys . dbms_pipe . unpack_message ( io_job_id ); sys . dbms_pipe . unpack_message ( io_salary ); sys . dbms_pipe . unpack_message ( io_commission_pct ); sys . dbms_pipe . unpack_message ( io_manager_id ); sys . dbms_pipe . unpack_message ( io_department_id ); end if ; end rcv_emp ; end employee_up ; / Example (good) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 create or replace package body employee_up is procedure rcv_emp ( out_first_name out employees . first_name % type , out_last_name out employees . last_name % type , out_email out employees . email % type , out_phone_number out employees . phone_number % type , out_hire_date out employees . hire_date % type , out_job_id out employees . job_id % type , out_salary out employees . salary % type , out_commission_pct out employees . commission_pct % type , out_manager_id out employees . manager_id % type , out_department_id out employees . department_id % type , in_wait in integer ) is l_status pls_integer ; co_dflt_pipe_name constant string ( 30 char ) : = 'MyPipe' ; co_ok constant pls_integer : = 1 ; co_wait constant pls_integer : = in_wait ; begin -- Receive next message and unpack for each column. l_status : = sys . dbms_pipe . receive_message ( pipename => co_dflt_pipe_name , timeout => co_wait ); if l_status = co_ok then sys . dbms_pipe . unpack_message ( out_first_name ); sys . dbms_pipe . unpack_message ( out_last_name ); sys . dbms_pipe . unpack_message ( out_email ); sys . dbms_pipe . unpack_message ( out_phone_number ); sys . dbms_pipe . unpack_message ( out_hire_date ); sys . dbms_pipe . unpack_message ( out_job_id ); sys . dbms_pipe . unpack_message ( out_salary ); sys . dbms_pipe . unpack_message ( out_commission_pct ); sys . dbms_pipe . unpack_message ( out_manager_id ); sys . dbms_pipe . unpack_message ( out_department_id ); end if ; end rcv_emp ; end employee_up ; /","title":"G-7170: Avoid using an IN OUT parameter as IN or OUT only."},{"location":"4-language-usage/7-stored-objects/1-general/g-7170/#g-7170-avoid-using-an-in-out-parameter-as-in-or-out-only","text":"Major Efficiency, Maintainability Unsupported in db* CODECOP Validators We cannot determine the usage of an in out parameter in a reliable way, especially when other units are involved which are maintained in another file.","title":"G-7170: Avoid using an IN OUT parameter as IN or OUT only."},{"location":"4-language-usage/7-stored-objects/1-general/g-7170/#reason","text":"Avoid using parameter mode in out unless you actually use the parameter both as input and output. If the code body only reads from the parameter, use in ; if the code body only assigns to the parameter, use out . If at the beginning of a project you expect a parameter to be both input and output and therefore choose in out just in case, but later development shows the parameter actually is only in or out , you should change the parameter mode accordingly.","title":"Reason"},{"location":"4-language-usage/7-stored-objects/1-general/g-7170/#example-bad","text":"1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 create or replace package body employee_up is procedure rcv_emp ( io_first_name in out employees . first_name % type , io_last_name in out employees . last_name % type , io_email in out employees . email % type , io_phone_number in out employees . phone_number % type , io_hire_date in out employees . hire_date % type , io_job_id in out employees . job_id % type , io_salary in out employees . salary % type , io_commission_pct in out employees . commission_pct % type , io_manager_id in out employees . manager_id % type , io_department_id in out employees . department_id % type , in_wait in integer ) is l_status pls_integer ; co_dflt_pipe_name constant string ( 30 char ) : = 'MyPipe' ; co_ok constant pls_integer : = 1 ; co_wait constant pls_integer : = in_wait ; begin -- Receive next message and unpack for each column. l_status : = sys . dbms_pipe . receive_message ( pipename => co_dflt_pipe_name , timeout => co_wait ); if l_status = co_ok then sys . dbms_pipe . unpack_message ( io_first_name ); sys . dbms_pipe . unpack_message ( io_last_name ); sys . dbms_pipe . unpack_message ( io_email ); sys . dbms_pipe . unpack_message ( io_phone_number ); sys . dbms_pipe . unpack_message ( io_hire_date ); sys . dbms_pipe . unpack_message ( io_job_id ); sys . dbms_pipe . unpack_message ( io_salary ); sys . dbms_pipe . unpack_message ( io_commission_pct ); sys . dbms_pipe . unpack_message ( io_manager_id ); sys . dbms_pipe . unpack_message ( io_department_id ); end if ; end rcv_emp ; end employee_up ; /","title":"Example (bad)"},{"location":"4-language-usage/7-stored-objects/1-general/g-7170/#example-good","text":"1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 create or replace package body employee_up is procedure rcv_emp ( out_first_name out employees . first_name % type , out_last_name out employees . last_name % type , out_email out employees . email % type , out_phone_number out employees . phone_number % type , out_hire_date out employees . hire_date % type , out_job_id out employees . job_id % type , out_salary out employees . salary % type , out_commission_pct out employees . commission_pct % type , out_manager_id out employees . manager_id % type , out_department_id out employees . department_id % type , in_wait in integer ) is l_status pls_integer ; co_dflt_pipe_name constant string ( 30 char ) : = 'MyPipe' ; co_ok constant pls_integer : = 1 ; co_wait constant pls_integer : = in_wait ; begin -- Receive next message and unpack for each column. l_status : = sys . dbms_pipe . receive_message ( pipename => co_dflt_pipe_name , timeout => co_wait ); if l_status = co_ok then sys . dbms_pipe . unpack_message ( out_first_name ); sys . dbms_pipe . unpack_message ( out_last_name ); sys . dbms_pipe . unpack_message ( out_email ); sys . dbms_pipe . unpack_message ( out_phone_number ); sys . dbms_pipe . unpack_message ( out_hire_date ); sys . dbms_pipe . unpack_message ( out_job_id ); sys . dbms_pipe . unpack_message ( out_salary ); sys . dbms_pipe . unpack_message ( out_commission_pct ); sys . dbms_pipe . unpack_message ( out_manager_id ); sys . dbms_pipe . unpack_message ( out_department_id ); end if ; end rcv_emp ; end employee_up ; /","title":"Example (good)"},{"location":"4-language-usage/7-stored-objects/2-packages/g-7210/","text":"G-7210: Try to keep your packages small. Include only few procedures and functions that are used in the same context. Major Efficiency, Maintainability Reason The entire package is loaded into memory when the package is called the first time. To optimize memory consumption and keep load time small packages should be kept small but include components that are used together.","title":"G-7210: Try to keep your packages small. Include only few procedures and functions that are used in the same context."},{"location":"4-language-usage/7-stored-objects/2-packages/g-7210/#g-7210-try-to-keep-your-packages-small-include-only-few-procedures-and-functions-that-are-used-in-the-same-context","text":"Major Efficiency, Maintainability","title":"G-7210: Try to keep your packages small. Include only few procedures and functions that are used in the same context."},{"location":"4-language-usage/7-stored-objects/2-packages/g-7210/#reason","text":"The entire package is loaded into memory when the package is called the first time. To optimize memory consumption and keep load time small packages should be kept small but include components that are used together.","title":"Reason"},{"location":"4-language-usage/7-stored-objects/2-packages/g-7220/","text":"G-7220: Always use forward declaration for private functions and procedures. Minor Changeability Reason Having forward declarations allows you to order the functions and procedures of the package in a reasonable way. Example (bad) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 create or replace package department_api is procedure del ( in_department_id in departments . department_id % type ); end department_api ; / create or replace package body department_api is function does_exist ( in_department_id in departments . department_id % type ) -- violates also G-7460 return boolean is co_department_id constant departments . department_id % type : = in_department_id ; l_return pls_integer ; begin << check_row_exists >> begin select 1 into l_return from departments where department_id = co_department_id ; exception when no_data_found or too_many_rows then l_return : = 0 ; end check_row_exists ; return l_return = 1 ; end does_exist ; procedure del ( in_department_id in departments . department_id % type ) is co_department_id constant departments . department_id % type : = in_department_id ; begin if does_exist ( co_department_id ) then null ; end if ; end del ; end department_api ; / Example (good) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 create or replace package department_api is procedure del ( in_department_id in departments . department_id % type ); end department_api ; / create or replace package body department_api is function does_exist ( in_department_id in departments . department_id % type ) -- NOSONAR: non-deterministic return boolean ; procedure del ( in_department_id in departments . department_id % type ) is co_department_id constant departments . department_id % type : = in_department_id ; begin if does_exist ( co_department_id ) then null ; end if ; end del ; function does_exist ( in_department_id in departments . department_id % type ) -- NOSONAR: non-deterministic return boolean is co_department_id constant departments . department_id % type : = in_department_id ; l_return pls_integer ; begin << check_row_exists >> begin select 1 into l_return from departments where department_id = co_department_id ; exception when no_data_found or too_many_rows then l_return : = 0 ; end check_row_exists ; return l_return = 1 ; end does_exist ; end department_api ; /","title":"G-7220: Always use forward declaration for private functions and procedures."},{"location":"4-language-usage/7-stored-objects/2-packages/g-7220/#g-7220-always-use-forward-declaration-for-private-functions-and-procedures","text":"Minor Changeability","title":"G-7220: Always use forward declaration for private functions and procedures."},{"location":"4-language-usage/7-stored-objects/2-packages/g-7220/#reason","text":"Having forward declarations allows you to order the functions and procedures of the package in a reasonable way.","title":"Reason"},{"location":"4-language-usage/7-stored-objects/2-packages/g-7220/#example-bad","text":"1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 create or replace package department_api is procedure del ( in_department_id in departments . department_id % type ); end department_api ; / create or replace package body department_api is function does_exist ( in_department_id in departments . department_id % type ) -- violates also G-7460 return boolean is co_department_id constant departments . department_id % type : = in_department_id ; l_return pls_integer ; begin << check_row_exists >> begin select 1 into l_return from departments where department_id = co_department_id ; exception when no_data_found or too_many_rows then l_return : = 0 ; end check_row_exists ; return l_return = 1 ; end does_exist ; procedure del ( in_department_id in departments . department_id % type ) is co_department_id constant departments . department_id % type : = in_department_id ; begin if does_exist ( co_department_id ) then null ; end if ; end del ; end department_api ; /","title":"Example (bad)"},{"location":"4-language-usage/7-stored-objects/2-packages/g-7220/#example-good","text":"1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 create or replace package department_api is procedure del ( in_department_id in departments . department_id % type ); end department_api ; / create or replace package body department_api is function does_exist ( in_department_id in departments . department_id % type ) -- NOSONAR: non-deterministic return boolean ; procedure del ( in_department_id in departments . department_id % type ) is co_department_id constant departments . department_id % type : = in_department_id ; begin if does_exist ( co_department_id ) then null ; end if ; end del ; function does_exist ( in_department_id in departments . department_id % type ) -- NOSONAR: non-deterministic return boolean is co_department_id constant departments . department_id % type : = in_department_id ; l_return pls_integer ; begin << check_row_exists >> begin select 1 into l_return from departments where department_id = co_department_id ; exception when no_data_found or too_many_rows then l_return : = 0 ; end check_row_exists ; return l_return = 1 ; end does_exist ; end department_api ; /","title":"Example (good)"},{"location":"4-language-usage/7-stored-objects/2-packages/g-7230/","text":"G-7230: Avoid declaring global variables public. Major Reliability Reason You should always declare package-level data (non-constants) inside the package body. You can then define \"get and set\" methods (functions and procedures, respectively) in the package specification to provide controlled access to that data. By doing so you can guarantee data integrity, you can change your data structure implementation, and also track access to those data structures. Data structures (scalar variables, collections, cursors) declared in the package specification (not within any specific program) can be referenced directly by any program running in a session with execute rights to the package. Instead, declare all package-level data in the package body and provide \"get and set\" methods - a function to get the value and a procedure to set the value - in the package specification. Developers then can access the data using these methods - and will automatically follow all rules you set upon data modification. For package-level constants, consider whether the constant should be public and usable from other code, or if only relevant for code within the package. If the latter, declare the constant in the package body. If the former, it is typically good practice to place the constants in a package specification that only holds constants. Example (bad) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 create or replace package employee_api as co_min_increase constant types_up . sal_increase_type : = 0 . 01 ; co_max_increase constant types_up . sal_increase_type : = 0 . 5 ; g_salary_increase types_up . sal_increase_type : = co_min_increase ; procedure set_salary_increase ( in_increase in types_up . sal_increase_type ); function salary_increase return types_up . sal_increase_type ; -- NOSONAR: non-deterministic end employee_api ; / create or replace package body employee_api as procedure set_salary_increase ( in_increase in types_up . sal_increase_type ) is co_increase constant types_up . sal_increase_type : = in_increase ; begin g_salary_increase : = greatest ( least ( co_increase , co_max_increase ) , co_min_increase ); end set_salary_increase ; function salary_increase return types_up . sal_increase_type is -- NOSONAR: non-deterministic begin return g_salary_increase ; end salary_increase ; end employee_api ; / Example (good) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 create or replace package constants_up as co_min_increase constant types_up . sal_increase_type : = 0 . 01 ; co_max_increase constant types_up . sal_increase_type : = 0 . 5 ; end constants_up ; / create or replace package employee_api as procedure set_salary_increase ( in_increase in types_up . sal_increase_type ); function salary_increase return types_up . sal_increase_type ; -- NOSONAR: non-deterministic end employee_api ; / create or replace package body employee_api as g_salary_increase types_up . sal_increase_type ; procedure init ; procedure set_salary_increase ( in_increase in types_up . sal_increase_type ) is co_increase constant types_up . sal_increase_type : = in_increase ; begin g_salary_increase : = greatest ( least ( co_increase , constants_up . co_max_increase ) , constants_up . co_min_increase ); end set_salary_increase ; function salary_increase return types_up . sal_increase_type is -- NOSONAR: non-deterministic begin return g_salary_increase ; end salary_increase ; procedure init is begin g_salary_increase : = constants_up . co_min_increase ; end init ; begin init (); end employee_api ; /","title":"G-7230: Avoid declaring global variables public."},{"location":"4-language-usage/7-stored-objects/2-packages/g-7230/#g-7230-avoid-declaring-global-variables-public","text":"Major Reliability","title":"G-7230: Avoid declaring global variables public."},{"location":"4-language-usage/7-stored-objects/2-packages/g-7230/#reason","text":"You should always declare package-level data (non-constants) inside the package body. You can then define \"get and set\" methods (functions and procedures, respectively) in the package specification to provide controlled access to that data. By doing so you can guarantee data integrity, you can change your data structure implementation, and also track access to those data structures. Data structures (scalar variables, collections, cursors) declared in the package specification (not within any specific program) can be referenced directly by any program running in a session with execute rights to the package. Instead, declare all package-level data in the package body and provide \"get and set\" methods - a function to get the value and a procedure to set the value - in the package specification. Developers then can access the data using these methods - and will automatically follow all rules you set upon data modification. For package-level constants, consider whether the constant should be public and usable from other code, or if only relevant for code within the package. If the latter, declare the constant in the package body. If the former, it is typically good practice to place the constants in a package specification that only holds constants.","title":"Reason"},{"location":"4-language-usage/7-stored-objects/2-packages/g-7230/#example-bad","text":"1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 create or replace package employee_api as co_min_increase constant types_up . sal_increase_type : = 0 . 01 ; co_max_increase constant types_up . sal_increase_type : = 0 . 5 ; g_salary_increase types_up . sal_increase_type : = co_min_increase ; procedure set_salary_increase ( in_increase in types_up . sal_increase_type ); function salary_increase return types_up . sal_increase_type ; -- NOSONAR: non-deterministic end employee_api ; / create or replace package body employee_api as procedure set_salary_increase ( in_increase in types_up . sal_increase_type ) is co_increase constant types_up . sal_increase_type : = in_increase ; begin g_salary_increase : = greatest ( least ( co_increase , co_max_increase ) , co_min_increase ); end set_salary_increase ; function salary_increase return types_up . sal_increase_type is -- NOSONAR: non-deterministic begin return g_salary_increase ; end salary_increase ; end employee_api ; /","title":"Example (bad)"},{"location":"4-language-usage/7-stored-objects/2-packages/g-7230/#example-good","text":"1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 create or replace package constants_up as co_min_increase constant types_up . sal_increase_type : = 0 . 01 ; co_max_increase constant types_up . sal_increase_type : = 0 . 5 ; end constants_up ; / create or replace package employee_api as procedure set_salary_increase ( in_increase in types_up . sal_increase_type ); function salary_increase return types_up . sal_increase_type ; -- NOSONAR: non-deterministic end employee_api ; / create or replace package body employee_api as g_salary_increase types_up . sal_increase_type ; procedure init ; procedure set_salary_increase ( in_increase in types_up . sal_increase_type ) is co_increase constant types_up . sal_increase_type : = in_increase ; begin g_salary_increase : = greatest ( least ( co_increase , constants_up . co_max_increase ) , constants_up . co_min_increase ); end set_salary_increase ; function salary_increase return types_up . sal_increase_type is -- NOSONAR: non-deterministic begin return g_salary_increase ; end salary_increase ; procedure init is begin g_salary_increase : = constants_up . co_min_increase ; end init ; begin init (); end employee_api ; /","title":"Example (good)"},{"location":"4-language-usage/7-stored-objects/2-packages/g-7250/","text":"G-7250: Never use RETURN in package initialization block. Major Maintainability Reason The purpose of the initialization block of a package body is to set initial values of the global variables of the package (initialize the package state). Although return is syntactically allowed in this block, it makes no sense. If it is the last keyword of the block, it is superfluous. If it is not the last keyword, then all code after the return is unreachable and thus dead code. Example (bad) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 create or replace package body employee_api as g_salary_increase types_up . sal_increase_type ; procedure set_salary_increase ( in_increase in types_up . sal_increase_type ) is co_increase constant types_up . sal_increase_type : = in_increase ; begin g_salary_increase : = greatest ( least ( co_increase , constants_up . max_salary_increase ()) , constants_up . min_salary_increase ()); end set_salary_increase ; function salary_increase return types_up . sal_increase_type is -- NOSONAR: non-deterministic begin return g_salary_increase ; end salary_increase ; begin g_salary_increase : = constants_up . min_salary_increase (); return ; -- violates also G-1040 set_salary_increase ( constants_up . min_salary_increase ()); -- dead code end employee_api ; / Example (good) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 create or replace package body employee_api as g_salary_increase types_up . sal_increase_type ; procedure set_salary_increase ( in_increase in types_up . sal_increase_type ) is co_increase constant types_up . sal_increase_type : = in_increase ; begin g_salary_increase : = greatest ( least ( co_increase , constants_up . max_salary_increase ()) , constants_up . min_salary_increase ()); end set_salary_increase ; function salary_increase return types_up . sal_increase_type is -- NOSONAR: non-deterministic begin return g_salary_increase ; end salary_increase ; begin g_salary_increase : = constants_up . min_salary_increase (); end employee_api ; /","title":"G-7250: Never use RETURN in package initialization block."},{"location":"4-language-usage/7-stored-objects/2-packages/g-7250/#g-7250-never-use-return-in-package-initialization-block","text":"Major Maintainability","title":"G-7250: Never use RETURN in package initialization block."},{"location":"4-language-usage/7-stored-objects/2-packages/g-7250/#reason","text":"The purpose of the initialization block of a package body is to set initial values of the global variables of the package (initialize the package state). Although return is syntactically allowed in this block, it makes no sense. If it is the last keyword of the block, it is superfluous. If it is not the last keyword, then all code after the return is unreachable and thus dead code.","title":"Reason"},{"location":"4-language-usage/7-stored-objects/2-packages/g-7250/#example-bad","text":"1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 create or replace package body employee_api as g_salary_increase types_up . sal_increase_type ; procedure set_salary_increase ( in_increase in types_up . sal_increase_type ) is co_increase constant types_up . sal_increase_type : = in_increase ; begin g_salary_increase : = greatest ( least ( co_increase , constants_up . max_salary_increase ()) , constants_up . min_salary_increase ()); end set_salary_increase ; function salary_increase return types_up . sal_increase_type is -- NOSONAR: non-deterministic begin return g_salary_increase ; end salary_increase ; begin g_salary_increase : = constants_up . min_salary_increase (); return ; -- violates also G-1040 set_salary_increase ( constants_up . min_salary_increase ()); -- dead code end employee_api ; /","title":"Example (bad)"},{"location":"4-language-usage/7-stored-objects/2-packages/g-7250/#example-good","text":"1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 create or replace package body employee_api as g_salary_increase types_up . sal_increase_type ; procedure set_salary_increase ( in_increase in types_up . sal_increase_type ) is co_increase constant types_up . sal_increase_type : = in_increase ; begin g_salary_increase : = greatest ( least ( co_increase , constants_up . max_salary_increase ()) , constants_up . min_salary_increase ()); end set_salary_increase ; function salary_increase return types_up . sal_increase_type is -- NOSONAR: non-deterministic begin return g_salary_increase ; end salary_increase ; begin g_salary_increase : = constants_up . min_salary_increase (); end employee_api ; /","title":"Example (good)"},{"location":"4-language-usage/7-stored-objects/3-procedures/g-7310/","text":"G-7310: Avoid standalone procedures \u2013 put your procedures in packages. Minor Maintainability Reason Use packages to structure your code, combine procedures and functions which belong together. Package bodies may be changed and compiled without invalidating other packages. This is a major advantage compared to standalone procedures and functions. Example (bad) 1 2 3 4 5 create or replace procedure my_procedure is begin null ; end my_procedure ; / Example (good) 1 2 3 4 5 6 7 8 9 10 11 12 create or replace package my_package is procedure my_procedure ; end my_package ; / create or replace package body my_package is procedure my_procedure is begin null ; end my_procedure ; end my_package ; /","title":"G-7310: Avoid standalone procedures \u2013 put your procedures in packages."},{"location":"4-language-usage/7-stored-objects/3-procedures/g-7310/#g-7310-avoid-standalone-procedures-put-your-procedures-in-packages","text":"Minor Maintainability","title":"G-7310: Avoid standalone procedures \u2013 put your procedures in packages."},{"location":"4-language-usage/7-stored-objects/3-procedures/g-7310/#reason","text":"Use packages to structure your code, combine procedures and functions which belong together. Package bodies may be changed and compiled without invalidating other packages. This is a major advantage compared to standalone procedures and functions.","title":"Reason"},{"location":"4-language-usage/7-stored-objects/3-procedures/g-7310/#example-bad","text":"1 2 3 4 5 create or replace procedure my_procedure is begin null ; end my_procedure ; /","title":"Example (bad)"},{"location":"4-language-usage/7-stored-objects/3-procedures/g-7310/#example-good","text":"1 2 3 4 5 6 7 8 9 10 11 12 create or replace package my_package is procedure my_procedure ; end my_package ; / create or replace package body my_package is procedure my_procedure is begin null ; end my_procedure ; end my_package ; /","title":"Example (good)"},{"location":"4-language-usage/7-stored-objects/3-procedures/g-7320/","text":"G-7320: Avoid using RETURN statements in a PROCEDURE. Major Maintainability, Testability Reason Use of the return statement is legal within a procedure in PL/SQL, but it is very similar to a goto , which means you end up with poorly structured code that is hard to debug and maintain. A good general rule to follow as you write your PL/SQL programs is \"one way in and one way out\". In other words, there should be just one way to enter or call a program, and there should be one way out, one exit path from a program (or loop) on successful termination. By following this rule, you end up with code that is much easier to trace, debug, and maintain. Example (bad) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 create or replace package body my_package is procedure my_procedure is l_idx simple_integer : = 1 ; co_modulo constant simple_integer : = 7 ; begin << mod7_loop >> loop if mod ( l_idx , co_modulo ) = 0 then return ; end if ; l_idx : = l_idx + 1 ; end loop mod7_loop ; end my_procedure ; end my_package ; / Example (good) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 create or replace package body my_package is procedure my_procedure is l_idx simple_integer : = 1 ; co_modulo constant simple_integer : = 7 ; begin << mod7_loop >> loop exit mod7_loop when mod ( l_idx , co_modulo ) = 0 ; l_idx : = l_idx + 1 ; end loop mod7_loop ; end my_procedure ; end my_package ; /","title":"G-7320: Avoid using RETURN statements in a PROCEDURE."},{"location":"4-language-usage/7-stored-objects/3-procedures/g-7320/#g-7320-avoid-using-return-statements-in-a-procedure","text":"Major Maintainability, Testability","title":"G-7320: Avoid using RETURN statements in a PROCEDURE."},{"location":"4-language-usage/7-stored-objects/3-procedures/g-7320/#reason","text":"Use of the return statement is legal within a procedure in PL/SQL, but it is very similar to a goto , which means you end up with poorly structured code that is hard to debug and maintain. A good general rule to follow as you write your PL/SQL programs is \"one way in and one way out\". In other words, there should be just one way to enter or call a program, and there should be one way out, one exit path from a program (or loop) on successful termination. By following this rule, you end up with code that is much easier to trace, debug, and maintain.","title":"Reason"},{"location":"4-language-usage/7-stored-objects/3-procedures/g-7320/#example-bad","text":"1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 create or replace package body my_package is procedure my_procedure is l_idx simple_integer : = 1 ; co_modulo constant simple_integer : = 7 ; begin << mod7_loop >> loop if mod ( l_idx , co_modulo ) = 0 then return ; end if ; l_idx : = l_idx + 1 ; end loop mod7_loop ; end my_procedure ; end my_package ; /","title":"Example (bad)"},{"location":"4-language-usage/7-stored-objects/3-procedures/g-7320/#example-good","text":"1 2 3 4 5 6 7 8 9 10 11 12 13 14 create or replace package body my_package is procedure my_procedure is l_idx simple_integer : = 1 ; co_modulo constant simple_integer : = 7 ; begin << mod7_loop >> loop exit mod7_loop when mod ( l_idx , co_modulo ) = 0 ; l_idx : = l_idx + 1 ; end loop mod7_loop ; end my_procedure ; end my_package ; /","title":"Example (good)"},{"location":"4-language-usage/7-stored-objects/3-procedures/g-7330/","text":"G-7330: Always assign values to OUT parameters. Blocker Maintainability, Testability Reason Marking a parameter for output means that callers will expect its value to be updated with a result from the execution of the procedure. Failing to update the parameter before the procedure returns is surely an error. Example (bad) 1 2 3 4 5 6 7 8 9 10 11 12 13 create or replace package body my_package is procedure greet ( in_name in varchar2 , out_greeting out varchar2 -- violates also G-7150 ) is l_message types_up . text ; co_name constant employees . first_name : = in_name ; co_hello constant types_up . text : = 'Hello, ' ; begin l_message : = co_hello || co_name ; -- NOSONAR: G-2135 end greet ; end my_package ; / Example (good) 1 2 3 4 5 6 7 8 9 10 11 12 create or replace package body my_package is procedure greet ( in_name in varchar2 , out_greeting out varchar2 ) is co_name constant employees . first_name : = in_name ; co_hello constant types_up . text : = 'Hello, ' ; begin out_greeting : = co_hello || co_name ; end greet ; end my_package ; /","title":"G-7330: Always assign values to OUT parameters."},{"location":"4-language-usage/7-stored-objects/3-procedures/g-7330/#g-7330-always-assign-values-to-out-parameters","text":"Blocker Maintainability, Testability","title":"G-7330: Always assign values to OUT parameters."},{"location":"4-language-usage/7-stored-objects/3-procedures/g-7330/#reason","text":"Marking a parameter for output means that callers will expect its value to be updated with a result from the execution of the procedure. Failing to update the parameter before the procedure returns is surely an error.","title":"Reason"},{"location":"4-language-usage/7-stored-objects/3-procedures/g-7330/#example-bad","text":"1 2 3 4 5 6 7 8 9 10 11 12 13 create or replace package body my_package is procedure greet ( in_name in varchar2 , out_greeting out varchar2 -- violates also G-7150 ) is l_message types_up . text ; co_name constant employees . first_name : = in_name ; co_hello constant types_up . text : = 'Hello, ' ; begin l_message : = co_hello || co_name ; -- NOSONAR: G-2135 end greet ; end my_package ; /","title":"Example (bad)"},{"location":"4-language-usage/7-stored-objects/3-procedures/g-7330/#example-good","text":"1 2 3 4 5 6 7 8 9 10 11 12 create or replace package body my_package is procedure greet ( in_name in varchar2 , out_greeting out varchar2 ) is co_name constant employees . first_name : = in_name ; co_hello constant types_up . text : = 'Hello, ' ; begin out_greeting : = co_hello || co_name ; end greet ; end my_package ; /","title":"Example (good)"},{"location":"4-language-usage/7-stored-objects/4-functions/g-7410/","text":"G-7410: Avoid standalone functions \u2013 put your functions in packages. Minor Maintainability Reason Use packages to structure your code, combine procedures and functions which belong together. Package bodies may be changed and compiled without invalidating other packages. This is a major advantage compared to standalone procedures and functions. Example (bad) 1 2 3 4 5 6 7 create or replace function my_function return varchar2 deterministic is begin return null ; end my_function ; / Example (good) 1 2 3 4 5 6 7 8 9 create or replace package body my_package is function my_function return varchar2 deterministic is begin return null ; end my_function ; end my_package ; /","title":"G-7410: Avoid standalone functions \u2013 put your functions in packages."},{"location":"4-language-usage/7-stored-objects/4-functions/g-7410/#g-7410-avoid-standalone-functions-put-your-functions-in-packages","text":"Minor Maintainability","title":"G-7410: Avoid standalone functions \u2013 put your functions in packages."},{"location":"4-language-usage/7-stored-objects/4-functions/g-7410/#reason","text":"Use packages to structure your code, combine procedures and functions which belong together. Package bodies may be changed and compiled without invalidating other packages. This is a major advantage compared to standalone procedures and functions.","title":"Reason"},{"location":"4-language-usage/7-stored-objects/4-functions/g-7410/#example-bad","text":"1 2 3 4 5 6 7 create or replace function my_function return varchar2 deterministic is begin return null ; end my_function ; /","title":"Example (bad)"},{"location":"4-language-usage/7-stored-objects/4-functions/g-7410/#example-good","text":"1 2 3 4 5 6 7 8 9 create or replace package body my_package is function my_function return varchar2 deterministic is begin return null ; end my_function ; end my_package ; /","title":"Example (good)"},{"location":"4-language-usage/7-stored-objects/4-functions/g-7420/","text":"G-7420: Always make the RETURN statement the last statement of your function. Major Maintainability Reason The reader expects the return statement to be the last statement of a function. Example (bad) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 create or replace package body my_package is function my_function ( in_from in pls_integer , in_to in pls_integer ) return pls_integer deterministic is l_ret pls_integer ; begin l_ret : = in_from ; << for_loop >> for i in in_from .. in_to loop l_ret : = l_ret + i ; if i = in_to then return l_ret ; end if ; end loop for_loop ; end my_function ; end my_package ; / Example (good) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 create or replace package body my_package is function my_function ( in_from in pls_integer , in_to in pls_integer ) return pls_integer deterministic is l_ret pls_integer ; begin l_ret : = in_from ; << for_loop >> for i in in_from .. in_to loop l_ret : = l_ret + i ; end loop for_loop ; return l_ret ; end my_function ; end my_package ; /","title":"G-7420: Always make the RETURN statement the last statement of your function."},{"location":"4-language-usage/7-stored-objects/4-functions/g-7420/#g-7420-always-make-the-return-statement-the-last-statement-of-your-function","text":"Major Maintainability","title":"G-7420: Always make the RETURN statement the last statement of your function."},{"location":"4-language-usage/7-stored-objects/4-functions/g-7420/#reason","text":"The reader expects the return statement to be the last statement of a function.","title":"Reason"},{"location":"4-language-usage/7-stored-objects/4-functions/g-7420/#example-bad","text":"1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 create or replace package body my_package is function my_function ( in_from in pls_integer , in_to in pls_integer ) return pls_integer deterministic is l_ret pls_integer ; begin l_ret : = in_from ; << for_loop >> for i in in_from .. in_to loop l_ret : = l_ret + i ; if i = in_to then return l_ret ; end if ; end loop for_loop ; end my_function ; end my_package ; /","title":"Example (bad)"},{"location":"4-language-usage/7-stored-objects/4-functions/g-7420/#example-good","text":"1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 create or replace package body my_package is function my_function ( in_from in pls_integer , in_to in pls_integer ) return pls_integer deterministic is l_ret pls_integer ; begin l_ret : = in_from ; << for_loop >> for i in in_from .. in_to loop l_ret : = l_ret + i ; end loop for_loop ; return l_ret ; end my_function ; end my_package ; /","title":"Example (good)"},{"location":"4-language-usage/7-stored-objects/4-functions/g-7430/","text":"G-7430: Try to use no more than one RETURN statement within a function. Major Maintainability, Testability Reason A function should have a single point of entry as well as a single exit-point. Example (bad) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 create or replace package body my_package is function my_function ( in_value in pls_integer ) return boolean deterministic is co_yes constant pls_integer : = 1 ; begin if in_value = co_yes then return true ; else return false ; end if ; end my_function ; end my_package ; / Example (better) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 create or replace package body my_package is function my_function ( in_value in pls_integer ) return boolean deterministic is co_yes constant pls_integer : = 1 ; l_ret boolean ; begin if in_value = co_yes then l_ret : = true ; else l_ret : = false ; end if ; return l_ret ; end my_function ; end my_package ; / Example (good) 1 2 3 4 5 6 7 8 9 10 create or replace package body my_package is function my_function ( in_value in pls_integer ) return boolean deterministic is co_yes constant pls_integer : = 1 ; begin return in_value = co_yes ; end my_function ; end my_package ; /","title":"G-7430: Try to use no more than one RETURN statement within a function."},{"location":"4-language-usage/7-stored-objects/4-functions/g-7430/#g-7430-try-to-use-no-more-than-one-return-statement-within-a-function","text":"Major Maintainability, Testability","title":"G-7430: Try to use no more than one RETURN statement within a function."},{"location":"4-language-usage/7-stored-objects/4-functions/g-7430/#reason","text":"A function should have a single point of entry as well as a single exit-point.","title":"Reason"},{"location":"4-language-usage/7-stored-objects/4-functions/g-7430/#example-bad","text":"1 2 3 4 5 6 7 8 9 10 11 12 13 14 create or replace package body my_package is function my_function ( in_value in pls_integer ) return boolean deterministic is co_yes constant pls_integer : = 1 ; begin if in_value = co_yes then return true ; else return false ; end if ; end my_function ; end my_package ; /","title":"Example (bad)"},{"location":"4-language-usage/7-stored-objects/4-functions/g-7430/#example-better","text":"1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 create or replace package body my_package is function my_function ( in_value in pls_integer ) return boolean deterministic is co_yes constant pls_integer : = 1 ; l_ret boolean ; begin if in_value = co_yes then l_ret : = true ; else l_ret : = false ; end if ; return l_ret ; end my_function ; end my_package ; /","title":"Example (better)"},{"location":"4-language-usage/7-stored-objects/4-functions/g-7430/#example-good","text":"1 2 3 4 5 6 7 8 9 10 create or replace package body my_package is function my_function ( in_value in pls_integer ) return boolean deterministic is co_yes constant pls_integer : = 1 ; begin return in_value = co_yes ; end my_function ; end my_package ; /","title":"Example (good)"},{"location":"4-language-usage/7-stored-objects/4-functions/g-7440/","text":"G-7440: Never use OUT parameters to return values from a function. Major Reusability Reason A function should return all its data through the return clause. Having an out parameter prohibits usage of a function within SQL statements. Example (bad) 1 2 3 4 5 6 7 8 9 10 create or replace package body my_package is function my_function ( out_date out date ) return boolean deterministic is begin out_date : = sysdate ; return true ; end my_function ; end my_package ; / Example (good) 1 2 3 4 5 6 7 8 9 create or replace package body my_package is function my_function return date deterministic is begin return sysdate ; end my_function ; end my_package ; /","title":"G-7440: Never use OUT parameters to return values from a function."},{"location":"4-language-usage/7-stored-objects/4-functions/g-7440/#g-7440-never-use-out-parameters-to-return-values-from-a-function","text":"Major Reusability","title":"G-7440: Never use OUT parameters to return values from a function."},{"location":"4-language-usage/7-stored-objects/4-functions/g-7440/#reason","text":"A function should return all its data through the return clause. Having an out parameter prohibits usage of a function within SQL statements.","title":"Reason"},{"location":"4-language-usage/7-stored-objects/4-functions/g-7440/#example-bad","text":"1 2 3 4 5 6 7 8 9 10 create or replace package body my_package is function my_function ( out_date out date ) return boolean deterministic is begin out_date : = sysdate ; return true ; end my_function ; end my_package ; /","title":"Example (bad)"},{"location":"4-language-usage/7-stored-objects/4-functions/g-7440/#example-good","text":"1 2 3 4 5 6 7 8 9 create or replace package body my_package is function my_function return date deterministic is begin return sysdate ; end my_function ; end my_package ; /","title":"Example (good)"},{"location":"4-language-usage/7-stored-objects/4-functions/g-7450/","text":"G-7450: Never return a NULL value from a BOOLEAN function. Blocker Reliability, Testability Reason If a boolean function returns null , the caller has do deal with it. This makes the usage cumbersome and more error-prone. Example (bad) 1 2 3 4 5 6 7 8 9 create or replace package body my_package is function my_function return boolean deterministic is begin return null ; end my_function ; end my_package ; / Example (good) 1 2 3 4 5 6 7 8 9 create or replace package body my_package is function my_function return boolean deterministic is begin return true ; end my_function ; end my_package ; /","title":"G-7450: Never return a NULL value from a BOOLEAN function."},{"location":"4-language-usage/7-stored-objects/4-functions/g-7450/#g-7450-never-return-a-null-value-from-a-boolean-function","text":"Blocker Reliability, Testability","title":"G-7450: Never return a NULL value from a BOOLEAN function."},{"location":"4-language-usage/7-stored-objects/4-functions/g-7450/#reason","text":"If a boolean function returns null , the caller has do deal with it. This makes the usage cumbersome and more error-prone.","title":"Reason"},{"location":"4-language-usage/7-stored-objects/4-functions/g-7450/#example-bad","text":"1 2 3 4 5 6 7 8 9 create or replace package body my_package is function my_function return boolean deterministic is begin return null ; end my_function ; end my_package ; /","title":"Example (bad)"},{"location":"4-language-usage/7-stored-objects/4-functions/g-7450/#example-good","text":"1 2 3 4 5 6 7 8 9 create or replace package body my_package is function my_function return boolean deterministic is begin return true ; end my_function ; end my_package ; /","title":"Example (good)"},{"location":"4-language-usage/7-stored-objects/4-functions/g-7460/","text":"G-7460: Try to define your packaged/standalone function deterministic if appropriate. Major Efficiency Reason A deterministic function (always return same result for identical parameters) which is defined to be deterministic will be executed once per different parameter within a SQL statement whereas if the function is not defined to be deterministic it is executed once per result row. Example (bad) 1 2 3 4 5 create or replace package department_api is function name_by_id ( in_department_id in departments . department_id % type ) return departments . department_name % type ; end department_api ; / Example (good) 1 2 3 4 5 6 create or replace package department_api is function name_by_id ( in_department_id in departments . department_id % type ) return departments . department_name % type deterministic ; end department_api ; /","title":"G-7460: Try to define your packaged/standalone function deterministic if appropriate."},{"location":"4-language-usage/7-stored-objects/4-functions/g-7460/#g-7460-try-to-define-your-packagedstandalone-function-deterministic-if-appropriate","text":"Major Efficiency","title":"G-7460: Try to define your packaged/standalone function deterministic if appropriate."},{"location":"4-language-usage/7-stored-objects/4-functions/g-7460/#reason","text":"A deterministic function (always return same result for identical parameters) which is defined to be deterministic will be executed once per different parameter within a SQL statement whereas if the function is not defined to be deterministic it is executed once per result row.","title":"Reason"},{"location":"4-language-usage/7-stored-objects/4-functions/g-7460/#example-bad","text":"1 2 3 4 5 create or replace package department_api is function name_by_id ( in_department_id in departments . department_id % type ) return departments . department_name % type ; end department_api ; /","title":"Example (bad)"},{"location":"4-language-usage/7-stored-objects/4-functions/g-7460/#example-good","text":"1 2 3 4 5 6 create or replace package department_api is function name_by_id ( in_department_id in departments . department_id % type ) return departments . department_name % type deterministic ; end department_api ; /","title":"Example (good)"},{"location":"4-language-usage/7-stored-objects/5-oracle-supplied-packages/g-7510/","text":"G-7510: Always prefix Oracle supplied packages with owner schema name. Major Security Reason The signature of Oracle supplied packages is well known and therefore it is quite easy to provide packages with the same name as those from Oracle doing something completely different without you noticing it. Example (bad) 1 2 3 4 5 6 declare co_hello_world constant string ( 30 char ) : = 'Hello World' ; begin dbms_output . put_line ( co_hello_world ); end ; / Example (good) 1 2 3 4 5 6 declare co_hello_world constant string ( 30 char ) : = 'Hello World' ; begin sys . dbms_output . put_line ( co_hello_world ); end ; /","title":"G-7510: Always prefix Oracle supplied packages with owner schema name."},{"location":"4-language-usage/7-stored-objects/5-oracle-supplied-packages/g-7510/#g-7510-always-prefix-oracle-supplied-packages-with-owner-schema-name","text":"Major Security","title":"G-7510: Always prefix Oracle supplied packages with owner schema name."},{"location":"4-language-usage/7-stored-objects/5-oracle-supplied-packages/g-7510/#reason","text":"The signature of Oracle supplied packages is well known and therefore it is quite easy to provide packages with the same name as those from Oracle doing something completely different without you noticing it.","title":"Reason"},{"location":"4-language-usage/7-stored-objects/5-oracle-supplied-packages/g-7510/#example-bad","text":"1 2 3 4 5 6 declare co_hello_world constant string ( 30 char ) : = 'Hello World' ; begin dbms_output . put_line ( co_hello_world ); end ; /","title":"Example (bad)"},{"location":"4-language-usage/7-stored-objects/5-oracle-supplied-packages/g-7510/#example-good","text":"1 2 3 4 5 6 declare co_hello_world constant string ( 30 char ) : = 'Hello World' ; begin sys . dbms_output . put_line ( co_hello_world ); end ; /","title":"Example (good)"},{"location":"4-language-usage/7-stored-objects/6-object-types/object-types/","text":"Object Types There are no object type-specific recommendations to be defined at the time of writing.","title":"Object Types"},{"location":"4-language-usage/7-stored-objects/6-object-types/object-types/#object-types","text":"There are no object type-specific recommendations to be defined at the time of writing.","title":"Object Types"},{"location":"4-language-usage/7-stored-objects/7-triggers/g-7710/","text":"G-7710: Avoid cascading triggers. Major Maintainability, Testability Reason Having triggers that act on other tables in a way that causes triggers on that table to fire lead to obscure behavior. Example (bad) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 create or replace trigger dept_br_u before update on departments for each row begin insert into departments_hist ( department_id , department_name , manager_id , location_id , modification_date ) values ( : old . department_id ,: old . department_name ,: old . manager_id ,: old . location_id , sysdate ); end ; / create or replace trigger dept_hist_br_i before insert on departments_hist for each row begin insert into departments_log ( department_id , department_name , modification_date ) values ( : new . department_id ,: new . department_name , sysdate ); end ; / Example (good) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 create or replace trigger dept_br_u before update on departments for each row begin insert into departments_hist ( department_id , department_name , manager_id , location_id , modification_date ) values ( : old . department_id ,: old . department_name ,: old . manager_id ,: old . location_id , sysdate ); insert into departments_log ( department_id , department_name , modification_date ) values ( : old . department_id ,: old . department_name , sysdate ); end ; /","title":"G-7710: Avoid cascading triggers."},{"location":"4-language-usage/7-stored-objects/7-triggers/g-7710/#g-7710-avoid-cascading-triggers","text":"Major Maintainability, Testability","title":"G-7710: Avoid cascading triggers."},{"location":"4-language-usage/7-stored-objects/7-triggers/g-7710/#reason","text":"Having triggers that act on other tables in a way that causes triggers on that table to fire lead to obscure behavior.","title":"Reason"},{"location":"4-language-usage/7-stored-objects/7-triggers/g-7710/#example-bad","text":"1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 create or replace trigger dept_br_u before update on departments for each row begin insert into departments_hist ( department_id , department_name , manager_id , location_id , modification_date ) values ( : old . department_id ,: old . department_name ,: old . manager_id ,: old . location_id , sysdate ); end ; / create or replace trigger dept_hist_br_i before insert on departments_hist for each row begin insert into departments_log ( department_id , department_name , modification_date ) values ( : new . department_id ,: new . department_name , sysdate ); end ; /","title":"Example (bad)"},{"location":"4-language-usage/7-stored-objects/7-triggers/g-7710/#example-good","text":"1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 create or replace trigger dept_br_u before update on departments for each row begin insert into departments_hist ( department_id , department_name , manager_id , location_id , modification_date ) values ( : old . department_id ,: old . department_name ,: old . manager_id ,: old . location_id , sysdate ); insert into departments_log ( department_id , department_name , modification_date ) values ( : old . department_id ,: old . department_name , sysdate ); end ; /","title":"Example (good)"},{"location":"4-language-usage/7-stored-objects/7-triggers/g-7720/","text":"G-7720: Never use multiple UPDATE OF in trigger event clause. Blocker Maintainability, Reliability, Testability Reason A DML trigger can have multiple triggering events separated by or like before insert or delete or update of some_column . If you have multiple update of separated by or , only one of them (the last one) is actually used and you get no error message, so you have a bug waiting to happen. Instead you always should use a single update of with all columns comma-separated, or an update without of if you wish all columns. Example (bad) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 create or replace trigger dept_br_u before update of department_id or update of department_name -- violates also G-7730 on departments for each row begin -- will only fire on updates of department_name insert into departments_log ( department_id , department_name , modification_date ) values ( : old . department_id ,: old . department_name , sysdate ); end ; / Example (good) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 create or replace trigger dept_br_u before update of department_id , department_name on departments for each row begin insert into departments_log ( department_id , department_name , modification_date ) values ( : old . department_id ,: old . department_name , sysdate ); end ; /","title":"G-7720: Never use multiple UPDATE OF in trigger event clause."},{"location":"4-language-usage/7-stored-objects/7-triggers/g-7720/#g-7720-never-use-multiple-update-of-in-trigger-event-clause","text":"Blocker Maintainability, Reliability, Testability","title":"G-7720: Never use multiple UPDATE OF in trigger event clause."},{"location":"4-language-usage/7-stored-objects/7-triggers/g-7720/#reason","text":"A DML trigger can have multiple triggering events separated by or like before insert or delete or update of some_column . If you have multiple update of separated by or , only one of them (the last one) is actually used and you get no error message, so you have a bug waiting to happen. Instead you always should use a single update of with all columns comma-separated, or an update without of if you wish all columns.","title":"Reason"},{"location":"4-language-usage/7-stored-objects/7-triggers/g-7720/#example-bad","text":"1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 create or replace trigger dept_br_u before update of department_id or update of department_name -- violates also G-7730 on departments for each row begin -- will only fire on updates of department_name insert into departments_log ( department_id , department_name , modification_date ) values ( : old . department_id ,: old . department_name , sysdate ); end ; /","title":"Example (bad)"},{"location":"4-language-usage/7-stored-objects/7-triggers/g-7720/#example-good","text":"1 2 3 4 5 6 7 8 9 10 11 12 13 14 create or replace trigger dept_br_u before update of department_id , department_name on departments for each row begin insert into departments_log ( department_id , department_name , modification_date ) values ( : old . department_id ,: old . department_name , sysdate ); end ; /","title":"Example (good)"},{"location":"4-language-usage/7-stored-objects/7-triggers/g-7730/","text":"G-7730: Avoid multiple DML events per trigger. Minor Maintainability, Testability Reason Rather than a single trigger handling multiple DML events with separated blocks of if inserting , if updating and if deleting , modularity by individual triggers per DML event helps maintaining and testing the code. If most of the code is common for either DML event (only small pieces of code are individual) consider an exception to the rule and allow if inserting , if updating and if deleting blocks, or alternatively gather the common code in a procedure and let individual triggers handle the individual pieces of code plus call the procedure with the common code. If the trigger makes assignment to a primary key and there are child tables with a foreign key referring to this primary key, the database can make undesirable table locks. If such is the case, you should always use individual triggers. See G-7740 for details. Example (bad) 1 2 3 4 5 6 7 8 9 10 11 12 create or replace trigger dept_br_iu before insert or update on departments for each row begin if inserting then : new . created_date : = sysdate ; end if ; if updating then : new . changed_date : = sysdate ; end if ; end ; / Example (good) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 create or replace trigger dept_br_i before insert on departments for each row begin : new . created_date : = sysdate ; end ; / create or replace trigger dept_br_u before update on departments for each row begin : new . changed_date : = sysdate ; end ; /","title":"G-7730: Avoid multiple DML events per trigger."},{"location":"4-language-usage/7-stored-objects/7-triggers/g-7730/#g-7730-avoid-multiple-dml-events-per-trigger","text":"Minor Maintainability, Testability","title":"G-7730: Avoid multiple DML events per trigger."},{"location":"4-language-usage/7-stored-objects/7-triggers/g-7730/#reason","text":"Rather than a single trigger handling multiple DML events with separated blocks of if inserting , if updating and if deleting , modularity by individual triggers per DML event helps maintaining and testing the code. If most of the code is common for either DML event (only small pieces of code are individual) consider an exception to the rule and allow if inserting , if updating and if deleting blocks, or alternatively gather the common code in a procedure and let individual triggers handle the individual pieces of code plus call the procedure with the common code. If the trigger makes assignment to a primary key and there are child tables with a foreign key referring to this primary key, the database can make undesirable table locks. If such is the case, you should always use individual triggers. See G-7740 for details.","title":"Reason"},{"location":"4-language-usage/7-stored-objects/7-triggers/g-7730/#example-bad","text":"1 2 3 4 5 6 7 8 9 10 11 12 create or replace trigger dept_br_iu before insert or update on departments for each row begin if inserting then : new . created_date : = sysdate ; end if ; if updating then : new . changed_date : = sysdate ; end if ; end ; /","title":"Example (bad)"},{"location":"4-language-usage/7-stored-objects/7-triggers/g-7730/#example-good","text":"1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 create or replace trigger dept_br_i before insert on departments for each row begin : new . created_date : = sysdate ; end ; / create or replace trigger dept_br_u before update on departments for each row begin : new . changed_date : = sysdate ; end ; /","title":"Example (good)"},{"location":"4-language-usage/7-stored-objects/7-triggers/g-7740/","text":"G-7740: Never handle multiple DML events per trigger if primary key is assigned in trigger. Critical Efficiency, Reliability Unsupported in db* CODECOP Validators We cannot identify what the primary key column(s) are to check if assignment to a primary key is taking place in the trigger. Reason If a trigger makes assignment to the primary key anywhere in the trigger code, that causes the session firing the trigger to take a lock on any child tables with a foreign key to this primary key. Even if the assignment is in for example an if inserting block and the trigger is fired by an update statement, such locks still happen unnecessarily. The issue is avoided by having one trigger for the insert containing the primary key assignment, and another trigger for the update. Or even better by handling the insert assignment as \u00b4default on null\u00b4 clauses, so that only an on update trigger is needed. This locking of child tables behaviour goes for simple DML triggers as well as compound DML triggers where assignments to primary keys take place. It is not relevant for instead-of triggers on views, as it is not possible to assign :new values and therefore no locks on child tables are needed. Example (bad) 1 2 3 4 5 6 7 8 9 10 11 12 13 create or replace trigger dept_br_iu before insert or update -- NOSONAR: G-7730 on departments for each row begin if inserting then : new . department_id : = department_seq . nextval ; -- NOSONAR: G-3150 : new . created_date : = sysdate ; end if ; if updating then : new . changed_date : = sysdate ; end if ; end ; / Example (good) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 create or replace trigger dept_br_i before insert on departments for each row begin : new . department_id : = department_seq . nextval ; -- NOSONAR: G-3150 : new . created_date : = sysdate ; end ; / create or replace trigger dept_br_u before update on departments for each row begin : new . changed_date : = sysdate ; end ; / Example (best) 1 2 3 4 5 6 7 8 9 10 alter table department modify department_id default on null department_seq . nextval ; alter table department modify created_date default on null sysdate ; create or replace trigger dept_br_u before update on departments for each row begin : new . changed_date : = sysdate ; end ; /","title":"G-7740: Never handle multiple DML events per trigger if primary key is assigned in trigger."},{"location":"4-language-usage/7-stored-objects/7-triggers/g-7740/#g-7740-never-handle-multiple-dml-events-per-trigger-if-primary-key-is-assigned-in-trigger","text":"Critical Efficiency, Reliability Unsupported in db* CODECOP Validators We cannot identify what the primary key column(s) are to check if assignment to a primary key is taking place in the trigger.","title":"G-7740: Never handle multiple DML events per trigger if primary key is assigned in trigger."},{"location":"4-language-usage/7-stored-objects/7-triggers/g-7740/#reason","text":"If a trigger makes assignment to the primary key anywhere in the trigger code, that causes the session firing the trigger to take a lock on any child tables with a foreign key to this primary key. Even if the assignment is in for example an if inserting block and the trigger is fired by an update statement, such locks still happen unnecessarily. The issue is avoided by having one trigger for the insert containing the primary key assignment, and another trigger for the update. Or even better by handling the insert assignment as \u00b4default on null\u00b4 clauses, so that only an on update trigger is needed. This locking of child tables behaviour goes for simple DML triggers as well as compound DML triggers where assignments to primary keys take place. It is not relevant for instead-of triggers on views, as it is not possible to assign :new values and therefore no locks on child tables are needed.","title":"Reason"},{"location":"4-language-usage/7-stored-objects/7-triggers/g-7740/#example-bad","text":"1 2 3 4 5 6 7 8 9 10 11 12 13 create or replace trigger dept_br_iu before insert or update -- NOSONAR: G-7730 on departments for each row begin if inserting then : new . department_id : = department_seq . nextval ; -- NOSONAR: G-3150 : new . created_date : = sysdate ; end if ; if updating then : new . changed_date : = sysdate ; end if ; end ; /","title":"Example (bad)"},{"location":"4-language-usage/7-stored-objects/7-triggers/g-7740/#example-good","text":"1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 create or replace trigger dept_br_i before insert on departments for each row begin : new . department_id : = department_seq . nextval ; -- NOSONAR: G-3150 : new . created_date : = sysdate ; end ; / create or replace trigger dept_br_u before update on departments for each row begin : new . changed_date : = sysdate ; end ; /","title":"Example (good)"},{"location":"4-language-usage/7-stored-objects/7-triggers/g-7740/#example-best","text":"1 2 3 4 5 6 7 8 9 10 alter table department modify department_id default on null department_seq . nextval ; alter table department modify created_date default on null sysdate ; create or replace trigger dept_br_u before update on departments for each row begin : new . changed_date : = sysdate ; end ; /","title":"Example (best)"},{"location":"4-language-usage/7-stored-objects/8-sequences/g-7810/","text":"G-7810: Never use SQL inside PL/SQL to read sequence numbers (or SYSDATE). Critical Efficiency, Maintainability Reason Since Oracle Database 11g it is no longer needed to use a select statement to read a sequence (which would imply a context switch). Example (bad) 1 2 3 4 5 6 7 8 9 declare l_sequence_number employees . employee_id % type ; begin select employees_seq . nextval into l_sequence_number from dual ; my_package . do_something ( l_sequence_number ); end ; / Example (good) 1 2 3 4 5 6 7 declare l_sequence_number employees . employee_id % type ; begin l_sequence_number : = employees_seq . nextval ; my_package . do_something ( l_sequence_number ); end ; /","title":"G-7810: Never use SQL inside PL/SQL to read sequence numbers (or SYSDATE)."},{"location":"4-language-usage/7-stored-objects/8-sequences/g-7810/#g-7810-never-use-sql-inside-plsql-to-read-sequence-numbers-or-sysdate","text":"Critical Efficiency, Maintainability","title":"G-7810: Never use SQL inside PL/SQL to read sequence numbers (or SYSDATE)."},{"location":"4-language-usage/7-stored-objects/8-sequences/g-7810/#reason","text":"Since Oracle Database 11g it is no longer needed to use a select statement to read a sequence (which would imply a context switch).","title":"Reason"},{"location":"4-language-usage/7-stored-objects/8-sequences/g-7810/#example-bad","text":"1 2 3 4 5 6 7 8 9 declare l_sequence_number employees . employee_id % type ; begin select employees_seq . nextval into l_sequence_number from dual ; my_package . do_something ( l_sequence_number ); end ; /","title":"Example (bad)"},{"location":"4-language-usage/7-stored-objects/8-sequences/g-7810/#example-good","text":"1 2 3 4 5 6 7 declare l_sequence_number employees . employee_id % type ; begin l_sequence_number : = employees_seq . nextval ; my_package . do_something ( l_sequence_number ); end ; /","title":"Example (good)"},{"location":"4-language-usage/7-stored-objects/9-sql-macros/g-7910/","text":"G-7910: Never use DML within a SQL macro. Blocker Reliability, Testability Restriction Oracle Database 21c (19c from version 19.7 for table macros alone) Reason Doing DML (except for select ) within a SQL macro can lead to disastrous side effects from calling the macro in a SQL query. Logging macro calls via a call to a procedure that does DML in an autonomous transaction can be an exception to the rule. Example (bad) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 create or replace package body my_package is function row_generator ( in_num_rows in number ) -- NOSONAR: non-deterministic return varchar2 sql_macro as begin insert into function_calls ( name , called_at , parameter_value ) values ( $$ plsql_unit , current_timestamp , in_num_rows ); commit ; return 'select level as row_sequence -- NOSONAR: G-1050 from dual connect by level <= in_num_rows' ; end row_generator ; end my_package ; / Example (good) 1 2 3 4 5 6 7 8 9 10 create or replace package body my_package is function row_generator ( in_num_rows in number ) -- NOSONAR: non-deterministic return varchar2 sql_macro as begin return 'select level as row_sequence -- NOSONAR: G-1050 from dual connect by level <= in_num_rows' ; end row_generator ; end my_package ; /","title":"G-7910: Never use DML within a SQL macro."},{"location":"4-language-usage/7-stored-objects/9-sql-macros/g-7910/#g-7910-never-use-dml-within-a-sql-macro","text":"Blocker Reliability, Testability","title":"G-7910: Never use DML within a SQL macro."},{"location":"4-language-usage/7-stored-objects/9-sql-macros/g-7910/#restriction","text":"Oracle Database 21c (19c from version 19.7 for table macros alone)","title":"Restriction"},{"location":"4-language-usage/7-stored-objects/9-sql-macros/g-7910/#reason","text":"Doing DML (except for select ) within a SQL macro can lead to disastrous side effects from calling the macro in a SQL query. Logging macro calls via a call to a procedure that does DML in an autonomous transaction can be an exception to the rule.","title":"Reason"},{"location":"4-language-usage/7-stored-objects/9-sql-macros/g-7910/#example-bad","text":"1 2 3 4 5 6 7 8 9 10 11 12 13 14 create or replace package body my_package is function row_generator ( in_num_rows in number ) -- NOSONAR: non-deterministic return varchar2 sql_macro as begin insert into function_calls ( name , called_at , parameter_value ) values ( $$ plsql_unit , current_timestamp , in_num_rows ); commit ; return 'select level as row_sequence -- NOSONAR: G-1050 from dual connect by level <= in_num_rows' ; end row_generator ; end my_package ; /","title":"Example (bad)"},{"location":"4-language-usage/7-stored-objects/9-sql-macros/g-7910/#example-good","text":"1 2 3 4 5 6 7 8 9 10 create or replace package body my_package is function row_generator ( in_num_rows in number ) -- NOSONAR: non-deterministic return varchar2 sql_macro as begin return 'select level as row_sequence -- NOSONAR: G-1050 from dual connect by level <= in_num_rows' ; end row_generator ; end my_package ; /","title":"Example (good)"},{"location":"4-language-usage/8-patterns/1-checking-the-number-of-rows/g-8110/","text":"G-8110: Never use SELECT COUNT(*) if you are only interested in the existence of a row. Critical Efficiency Reason If you do a select count(*) all rows will be read according to the where clause, even if only the availability of data is of interest. For this we have a big performance overhead. If we do a select count(*) ... where rownum = 1 there is also a overhead as there will be two communications between the PL/SQL and the SQL engine. See the following example for a better solution. Example (bad) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 declare l_count pls_integer ; co_zero constant simple_integer : = 0 ; co_salary constant employees . salary % type : = 5000 ; begin select count ( * ) into l_count from employees where salary < co_salary ; if l_count > co_zero then << emp_loop >> for r_emp in ( select employee_id from employees ) loop if r_emp . salary < co_salary then my_package . my_proc ( in_employee_id => r_emp . employee_id ); end if ; end loop emp_loop ; end if ; end ; / Example (good) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 declare co_salary constant employees . salary % type : = 5000 ; begin << emp_loop >> for r_emp in ( select e1 . employee_id from employees e1 where exists ( select e2 . salary from employees e2 where e2 . salary < co_salary ) ) loop my_package . my_proc ( in_employee_id => r_emp . employee_id ); end loop emp_loop ; end ; /","title":"G-8110: Never use SELECT COUNT(*) if you are only interested in the existence of a row."},{"location":"4-language-usage/8-patterns/1-checking-the-number-of-rows/g-8110/#g-8110-never-use-select-count-if-you-are-only-interested-in-the-existence-of-a-row","text":"Critical Efficiency","title":"G-8110: Never use SELECT COUNT(*) if you are only interested in the existence of a row."},{"location":"4-language-usage/8-patterns/1-checking-the-number-of-rows/g-8110/#reason","text":"If you do a select count(*) all rows will be read according to the where clause, even if only the availability of data is of interest. For this we have a big performance overhead. If we do a select count(*) ... where rownum = 1 there is also a overhead as there will be two communications between the PL/SQL and the SQL engine. See the following example for a better solution.","title":"Reason"},{"location":"4-language-usage/8-patterns/1-checking-the-number-of-rows/g-8110/#example-bad","text":"1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 declare l_count pls_integer ; co_zero constant simple_integer : = 0 ; co_salary constant employees . salary % type : = 5000 ; begin select count ( * ) into l_count from employees where salary < co_salary ; if l_count > co_zero then << emp_loop >> for r_emp in ( select employee_id from employees ) loop if r_emp . salary < co_salary then my_package . my_proc ( in_employee_id => r_emp . employee_id ); end if ; end loop emp_loop ; end if ; end ; /","title":"Example (bad)"},{"location":"4-language-usage/8-patterns/1-checking-the-number-of-rows/g-8110/#example-good","text":"1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 declare co_salary constant employees . salary % type : = 5000 ; begin << emp_loop >> for r_emp in ( select e1 . employee_id from employees e1 where exists ( select e2 . salary from employees e2 where e2 . salary < co_salary ) ) loop my_package . my_proc ( in_employee_id => r_emp . employee_id ); end loop emp_loop ; end ; /","title":"Example (good)"},{"location":"4-language-usage/8-patterns/1-checking-the-number-of-rows/g-8120/","text":"G-8120: Never check existence of a row to decide whether to create it or not. Critical Efficiency, Reliability Reason The result of an existence check is a snapshot of the current situation. You never know whether in the time between the check and the (insert) action someone else has decided to create a row with the values you checked. Therefore, you should only rely on constraints when it comes to prevention of duplicate records. Example (bad) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 create or replace package body department_api is procedure ins ( in_r_department in departments % rowtype ) is l_count pls_integer ; begin select count ( * ) -- NOSONAR: a violation of G-8110 is a prerequisite for G-8120 into l_count from departments where department_id = in_r_department . department_id ; if l_count = 0 then insert into departments values in_r_department ; end if ; end ins ; end department_api ; / Example (good) 1 2 3 4 5 6 7 8 9 10 11 create or replace package body department_api is procedure ins ( in_r_department in departments % rowtype ) is begin insert into departments values in_r_department ; exception when dup_val_on_index then null ; -- handle exception end ins ; end department_api ; /","title":"G-8120: Never check existence of a row to decide whether to create it or not."},{"location":"4-language-usage/8-patterns/1-checking-the-number-of-rows/g-8120/#g-8120-never-check-existence-of-a-row-to-decide-whether-to-create-it-or-not","text":"Critical Efficiency, Reliability","title":"G-8120: Never check existence of a row to decide whether to create it or not."},{"location":"4-language-usage/8-patterns/1-checking-the-number-of-rows/g-8120/#reason","text":"The result of an existence check is a snapshot of the current situation. You never know whether in the time between the check and the (insert) action someone else has decided to create a row with the values you checked. Therefore, you should only rely on constraints when it comes to prevention of duplicate records.","title":"Reason"},{"location":"4-language-usage/8-patterns/1-checking-the-number-of-rows/g-8120/#example-bad","text":"1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 create or replace package body department_api is procedure ins ( in_r_department in departments % rowtype ) is l_count pls_integer ; begin select count ( * ) -- NOSONAR: a violation of G-8110 is a prerequisite for G-8120 into l_count from departments where department_id = in_r_department . department_id ; if l_count = 0 then insert into departments values in_r_department ; end if ; end ins ; end department_api ; /","title":"Example (bad)"},{"location":"4-language-usage/8-patterns/1-checking-the-number-of-rows/g-8120/#example-good","text":"1 2 3 4 5 6 7 8 9 10 11 create or replace package body department_api is procedure ins ( in_r_department in departments % rowtype ) is begin insert into departments values in_r_department ; exception when dup_val_on_index then null ; -- handle exception end ins ; end department_api ; /","title":"Example (good)"},{"location":"4-language-usage/8-patterns/2-access-objects-of-foreign-application-schemas/g-8210/","text":"G-8210: Always use synonyms when accessing objects of another application schema. Minor Changeability, Maintainability Reason If a connection is needed to a table that is placed in a foreign schema, using synonyms is a good choice. If there are structural changes to that table (e.g. the table name changes or the table changes into another schema) only the synonym has to be changed no changes to the package are needed (single point of change). If you only have read access for a table inside another schema, or there is another reason that does not allow you to change data in this table, you can switch the synonym to a table in your own schema. This is also good practice for testers working on test systems. Example (bad) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 declare l_product_name oe . products . product_name % type ; co_price constant oe . products @ list_price % type : = 1000 ; begin select p . product_name into l_product_name from oe . products p where list_price > co_price ; exception when no_data_found then null ; -- handle_no_data_found; when too_many_rows then null ; -- handle_too_many_rows; end ; / Example (good) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 create synonym oe_products for oe . products ; declare l_product_name oe_products . product_name % type ; co_price constant oe_products . list_price % type : = 1000 ; begin select p . product_name into l_product_name from oe_products p where list_price > co_price ; exception when no_data_found then null ; -- handle_no_data_found; when too_many_rows then null ; -- handle_too_many_rows; end ; /","title":"G-8210: Always use synonyms when accessing objects of another application schema."},{"location":"4-language-usage/8-patterns/2-access-objects-of-foreign-application-schemas/g-8210/#g-8210-always-use-synonyms-when-accessing-objects-of-another-application-schema","text":"Minor Changeability, Maintainability","title":"G-8210: Always use synonyms when accessing objects of another application schema."},{"location":"4-language-usage/8-patterns/2-access-objects-of-foreign-application-schemas/g-8210/#reason","text":"If a connection is needed to a table that is placed in a foreign schema, using synonyms is a good choice. If there are structural changes to that table (e.g. the table name changes or the table changes into another schema) only the synonym has to be changed no changes to the package are needed (single point of change). If you only have read access for a table inside another schema, or there is another reason that does not allow you to change data in this table, you can switch the synonym to a table in your own schema. This is also good practice for testers working on test systems.","title":"Reason"},{"location":"4-language-usage/8-patterns/2-access-objects-of-foreign-application-schemas/g-8210/#example-bad","text":"1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 declare l_product_name oe . products . product_name % type ; co_price constant oe . products @ list_price % type : = 1000 ; begin select p . product_name into l_product_name from oe . products p where list_price > co_price ; exception when no_data_found then null ; -- handle_no_data_found; when too_many_rows then null ; -- handle_too_many_rows; end ; /","title":"Example (bad)"},{"location":"4-language-usage/8-patterns/2-access-objects-of-foreign-application-schemas/g-8210/#example-good","text":"1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 create synonym oe_products for oe . products ; declare l_product_name oe_products . product_name % type ; co_price constant oe_products . list_price % type : = 1000 ; begin select p . product_name into l_product_name from oe_products p where list_price > co_price ; exception when no_data_found then null ; -- handle_no_data_found; when too_many_rows then null ; -- handle_too_many_rows; end ; /","title":"Example (good)"},{"location":"4-language-usage/8-patterns/3-validating-input-parameter-size/g-8310/","text":"G-8310: Always validate input parameter size by assigning the parameter to a size limited variable in the declaration section of program unit. Major Maintainability, Reliability, Reusability, Testability Reason This technique raises an error ( value_error ) which may not be handled in the called program unit. This is the right way to do it, as the error is not within this unit but when calling it, so the caller should handle the error. To limit the number of false positives, only the following data types used in parameters should be considered: char dec decimal interval day to second interval year to month nchar number numeric nvarchar2 varchar2 %type Example (bad) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 create or replace package body department_api is function dept_by_name ( -- NOSONAR: non-deterministic in_dept_name in departments . department_name % type ) return departments % rowtype is r_return departments % rowtype ; co_max_dept_name_length constant integer : = 20 ; begin if in_dept_name is null or length ( in_dept_name ) > co_max_dept_name_length then raise err . e_param_to_large ; end if ; -- get the department by name << trap >> begin select * into r_return from departments where department_name = in_dept_name ; return r_return ; exception when no_data_found then return null ; when too_many_rows then raise ; end trap ; end dept_by_name ; end department_api ; / Example (good) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 create or replace package body department_api is function dept_by_name ( -- NOSONAR: non-deterministic in_dept_name in departments . department_name % type ) return departments % rowtype is co_dept_name constant departments . department_name % type not null : = in_dept_name ; r_return departments % rowtype ; begin -- get the department by name << trap >> begin select * into r_return from departments where department_name = co_dept_name ; return r_return ; exception when no_data_found then return null ; when too_many_rows then raise ; end trap ; end dept_by_name ; end department_api ; / The exception should be handled where the function is called, like this: 1 2 3 4 5 6 7 8 9 10 11 declare co_dept_name constant type_up . text : = 'Far to long name of a department' ; begin pre_processing ; r_department : = department_api . dept_by_name ( co_dept_name ); post_processing ; exception when value_error then handle_error ; end ; /","title":"G-8310: Always validate input parameter size by assigning the parameter to a size limited variable in the declaration section of program unit."},{"location":"4-language-usage/8-patterns/3-validating-input-parameter-size/g-8310/#g-8310-always-validate-input-parameter-size-by-assigning-the-parameter-to-a-size-limited-variable-in-the-declaration-section-of-program-unit","text":"Major Maintainability, Reliability, Reusability, Testability","title":"G-8310: Always validate input parameter size by assigning the parameter to a size limited variable in the declaration section of program unit."},{"location":"4-language-usage/8-patterns/3-validating-input-parameter-size/g-8310/#reason","text":"This technique raises an error ( value_error ) which may not be handled in the called program unit. This is the right way to do it, as the error is not within this unit but when calling it, so the caller should handle the error. To limit the number of false positives, only the following data types used in parameters should be considered: char dec decimal interval day to second interval year to month nchar number numeric nvarchar2 varchar2 %type","title":"Reason"},{"location":"4-language-usage/8-patterns/3-validating-input-parameter-size/g-8310/#example-bad","text":"1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 create or replace package body department_api is function dept_by_name ( -- NOSONAR: non-deterministic in_dept_name in departments . department_name % type ) return departments % rowtype is r_return departments % rowtype ; co_max_dept_name_length constant integer : = 20 ; begin if in_dept_name is null or length ( in_dept_name ) > co_max_dept_name_length then raise err . e_param_to_large ; end if ; -- get the department by name << trap >> begin select * into r_return from departments where department_name = in_dept_name ; return r_return ; exception when no_data_found then return null ; when too_many_rows then raise ; end trap ; end dept_by_name ; end department_api ; /","title":"Example (bad)"},{"location":"4-language-usage/8-patterns/3-validating-input-parameter-size/g-8310/#example-good","text":"1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 create or replace package body department_api is function dept_by_name ( -- NOSONAR: non-deterministic in_dept_name in departments . department_name % type ) return departments % rowtype is co_dept_name constant departments . department_name % type not null : = in_dept_name ; r_return departments % rowtype ; begin -- get the department by name << trap >> begin select * into r_return from departments where department_name = co_dept_name ; return r_return ; exception when no_data_found then return null ; when too_many_rows then raise ; end trap ; end dept_by_name ; end department_api ; / The exception should be handled where the function is called, like this: 1 2 3 4 5 6 7 8 9 10 11 declare co_dept_name constant type_up . text : = 'Far to long name of a department' ; begin pre_processing ; r_department : = department_api . dept_by_name ( co_dept_name ); post_processing ; exception when value_error then handle_error ; end ; /","title":"Example (good)"},{"location":"4-language-usage/8-patterns/4-ensure-single-execution-at-a-time-of-a-program-unit/g-8410/","text":"G-8410: Always use application locks to ensure a program unit is only running once at a given time. Blocker Efficiency, Reliability Unsupported in db* CODECOP Validators We cannot identify where an application lock would make sense. Algorithms to detect wrong, missing and right usages of this pattern are virtually impossible to implement without understanding the context. Reason This technique allows us to have locks across transactions as well as a proven way to clean up at the end of the session. The alternative using a table where a \u201cLock-Row\u201d is stored has the disadvantage that in case of an error a proper cleanup has to be done to \u201cunlock\u201d the program unit. Example (bad) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 /* Example */ create or replace package body lock_up is -- manage locks in a dedicated table created as follows: -- CREATE TABLE app_locks ( -- lock_name VARCHAR2(128 CHAR) NOT NULL primary key -- ); procedure request_lock ( in_lock_name in varchar2 ) is co_lock_name constant app_locks . lock_name % type : = in_lock_name ; begin -- raises dup_val_on_index insert into app_locks ( lock_name ) values ( co_lock_name ); end request_lock ; procedure release_lock ( in_lock_name in varchar2 ) is co_lock_name constant app_locks . lock_name % type : = in_lock_name ; begin delete from app_locks where lock_name = co_lock_name ; end release_lock ; end lock_up ; / /* Call bad example */ declare co_lock_name constant app_locks . lock_name % type : = 'APPLICATION_LOCK' ; begin lock_up . request_lock ( in_lock_name => co_lock_name ); -- processing lock_up . release_lock ( in_lock_name => co_lock_name ); exception when dup_val_on_index then -- expected exception lock_up . release_lock ( in_lock_name => co_lock_name ); raise ; when others then -- unexpected exception, logging is recommended lock_up . release_lock ( in_lock_name => co_lock_name ); raise ; end ; / Example (good) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 /* Example */ create or replace package body lock_up is function request_lock ( -- NOSONAR: non-deterministic in_lock_name in varchar2 , in_release_on_commit in boolean default false ) return varchar2 is co_lock_name constant type_up . lock_name : = in_lock_name ; co_release_on_commit constant boolean : = in_release_on_commit ; l_lock_handle type_up . lock_handle ; begin sys . dbms_lock . allocate_unique ( lockname => co_lock_name , lockhandle => l_lock_handle , expiration_secs => constants_up . co_one_week ); if sys . dbms_lock . request ( lockhandle => l_lock_handle , lockmode => sys . dbms_lock . x_mode , timeout => sys . dbms_lock . maxwait , release_on_commit => co_release_on_commit ) > 0 then raise err . e_lock_request_failed ; end if ; return l_lock_handle ; end request_lock ; procedure release_lock ( in_lock_handle in varchar2 ) is co_lock_type constant type_up . lock_handle : = in_lock_handle ; begin if sys . dbms_lock . release ( lockhandle => co_lock_type ) > 0 then raise err . e_lock_request_failed ; end if ; end release_lock ; end lock_up ; / /* Call good example */ declare l_handle type_up . lock_handle ; co_lock_name constant type_up . lock_name : = 'APPLICATION_LOCK' ; begin l_handle : = lock_up . request_lock ( in_lock_name => co_lock_name ); -- processing lock_up . release_lock ( in_lock_handle => l_handle ); exception when err . e_lock_request_failed then -- expected exception lock_up . release_lock ( in_lock_name => co_lock_name ); raise ; when others then -- unexpected exception, logging is recommended lock_up . release_lock ( in_lock_name => co_lock_name ); raise ; end ; /","title":"G-8410: Always use application locks to ensure a program unit is only running once at a given time."},{"location":"4-language-usage/8-patterns/4-ensure-single-execution-at-a-time-of-a-program-unit/g-8410/#g-8410-always-use-application-locks-to-ensure-a-program-unit-is-only-running-once-at-a-given-time","text":"Blocker Efficiency, Reliability Unsupported in db* CODECOP Validators We cannot identify where an application lock would make sense. Algorithms to detect wrong, missing and right usages of this pattern are virtually impossible to implement without understanding the context.","title":"G-8410: Always use application locks to ensure a program unit is only running once at a given time."},{"location":"4-language-usage/8-patterns/4-ensure-single-execution-at-a-time-of-a-program-unit/g-8410/#reason","text":"This technique allows us to have locks across transactions as well as a proven way to clean up at the end of the session. The alternative using a table where a \u201cLock-Row\u201d is stored has the disadvantage that in case of an error a proper cleanup has to be done to \u201cunlock\u201d the program unit.","title":"Reason"},{"location":"4-language-usage/8-patterns/4-ensure-single-execution-at-a-time-of-a-program-unit/g-8410/#example-bad","text":"1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 /* Example */ create or replace package body lock_up is -- manage locks in a dedicated table created as follows: -- CREATE TABLE app_locks ( -- lock_name VARCHAR2(128 CHAR) NOT NULL primary key -- ); procedure request_lock ( in_lock_name in varchar2 ) is co_lock_name constant app_locks . lock_name % type : = in_lock_name ; begin -- raises dup_val_on_index insert into app_locks ( lock_name ) values ( co_lock_name ); end request_lock ; procedure release_lock ( in_lock_name in varchar2 ) is co_lock_name constant app_locks . lock_name % type : = in_lock_name ; begin delete from app_locks where lock_name = co_lock_name ; end release_lock ; end lock_up ; / /* Call bad example */ declare co_lock_name constant app_locks . lock_name % type : = 'APPLICATION_LOCK' ; begin lock_up . request_lock ( in_lock_name => co_lock_name ); -- processing lock_up . release_lock ( in_lock_name => co_lock_name ); exception when dup_val_on_index then -- expected exception lock_up . release_lock ( in_lock_name => co_lock_name ); raise ; when others then -- unexpected exception, logging is recommended lock_up . release_lock ( in_lock_name => co_lock_name ); raise ; end ; /","title":"Example (bad)"},{"location":"4-language-usage/8-patterns/4-ensure-single-execution-at-a-time-of-a-program-unit/g-8410/#example-good","text":"1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 /* Example */ create or replace package body lock_up is function request_lock ( -- NOSONAR: non-deterministic in_lock_name in varchar2 , in_release_on_commit in boolean default false ) return varchar2 is co_lock_name constant type_up . lock_name : = in_lock_name ; co_release_on_commit constant boolean : = in_release_on_commit ; l_lock_handle type_up . lock_handle ; begin sys . dbms_lock . allocate_unique ( lockname => co_lock_name , lockhandle => l_lock_handle , expiration_secs => constants_up . co_one_week ); if sys . dbms_lock . request ( lockhandle => l_lock_handle , lockmode => sys . dbms_lock . x_mode , timeout => sys . dbms_lock . maxwait , release_on_commit => co_release_on_commit ) > 0 then raise err . e_lock_request_failed ; end if ; return l_lock_handle ; end request_lock ; procedure release_lock ( in_lock_handle in varchar2 ) is co_lock_type constant type_up . lock_handle : = in_lock_handle ; begin if sys . dbms_lock . release ( lockhandle => co_lock_type ) > 0 then raise err . e_lock_request_failed ; end if ; end release_lock ; end lock_up ; / /* Call good example */ declare l_handle type_up . lock_handle ; co_lock_name constant type_up . lock_name : = 'APPLICATION_LOCK' ; begin l_handle : = lock_up . request_lock ( in_lock_name => co_lock_name ); -- processing lock_up . release_lock ( in_lock_handle => l_handle ); exception when err . e_lock_request_failed then -- expected exception lock_up . release_lock ( in_lock_name => co_lock_name ); raise ; when others then -- unexpected exception, logging is recommended lock_up . release_lock ( in_lock_name => co_lock_name ); raise ; end ; /","title":"Example (good)"},{"location":"4-language-usage/8-patterns/5-use-dbms-application-info-package-to-follow-progress-of-a-process/g-8510/","text":"G-8510: Always use dbms_application_info to track program process transiently. Critical Efficiency, Reliability Unsupported in db* CODECOP Validators We cannot know where the use of dbms_application_info is sensible. Algorithms to detect wrong, missing and right usages of this pattern are virtually impossible to implement without understanding the context. Reason This technique allows us to view progress of a process without having to persistently write log data in either a table or a file. The information is accessible through the v$session view. Example (bad) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 create or replace package body employee_api is procedure process_emps is begin << employees >> for emp_rec in ( select employee_id from employees order by employee_id ) loop -- some processing sys . dbms_output . put_line ( emp_rec . employee_id ); end loop employees ; end process_emps ; end employee_api ; / Example (good) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 create or replace package body employee_api is procedure process_emps is co_action_name constant v$session . action % type : = 'init' ; co_label constant v$session . action % type : = 'Processing ' ; begin sys . dbms_application_info . set_module ( module_name => $$ plsql_unit , action_name => co_action_name ); << employees >> for emp_rec in ( select employee_id from employees order by employee_id ) loop -- some processing sys . dbms_application_info . set_action ( co_label || emp_rec . employee_id ); end loop employees ; end process_emps ; end employee_api ; /","title":"G-8510: Always use dbms_application_info to track program process transiently."},{"location":"4-language-usage/8-patterns/5-use-dbms-application-info-package-to-follow-progress-of-a-process/g-8510/#g-8510-always-use-dbms_application_info-to-track-program-process-transiently","text":"Critical Efficiency, Reliability Unsupported in db* CODECOP Validators We cannot know where the use of dbms_application_info is sensible. Algorithms to detect wrong, missing and right usages of this pattern are virtually impossible to implement without understanding the context.","title":"G-8510: Always use dbms_application_info to track program process transiently."},{"location":"4-language-usage/8-patterns/5-use-dbms-application-info-package-to-follow-progress-of-a-process/g-8510/#reason","text":"This technique allows us to view progress of a process without having to persistently write log data in either a table or a file. The information is accessible through the v$session view.","title":"Reason"},{"location":"4-language-usage/8-patterns/5-use-dbms-application-info-package-to-follow-progress-of-a-process/g-8510/#example-bad","text":"1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 create or replace package body employee_api is procedure process_emps is begin << employees >> for emp_rec in ( select employee_id from employees order by employee_id ) loop -- some processing sys . dbms_output . put_line ( emp_rec . employee_id ); end loop employees ; end process_emps ; end employee_api ; /","title":"Example (bad)"},{"location":"4-language-usage/8-patterns/5-use-dbms-application-info-package-to-follow-progress-of-a-process/g-8510/#example-good","text":"1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 create or replace package body employee_api is procedure process_emps is co_action_name constant v$session . action % type : = 'init' ; co_label constant v$session . action % type : = 'Processing ' ; begin sys . dbms_application_info . set_module ( module_name => $$ plsql_unit , action_name => co_action_name ); << employees >> for emp_rec in ( select employee_id from employees order by employee_id ) loop -- some processing sys . dbms_application_info . set_action ( co_label || emp_rec . employee_id ); end loop employees ; end process_emps ; end employee_api ; /","title":"Example (good)"},{"location":"4-language-usage/9-function-usage/g-9010/","text":"G-9010: Always use a format model in string to date/time conversion functions. Blocker Changeability, Maintainability, Reliability, Security, Testability Reason Converting from strings to date or timestamp datatypes (using to_date , to_timestamp , to_timestamp_tz or cast to any of those datatypes) in practice always expects a fixed format (unlike converting to strings that can be fixed as well as allow the session to decide). Therefore it is a bad idea to allow this conversion to rely on the session NLS settings ( nls_date_format , nls_timestamp_format and nls_timestamp_tz_format ) as this makes the code vulnerable to changes in session and/or server configuration. It is even possible to utilize session nls_date_format for SQL injection if you use dynamic SQL. Using an explicit format model for string to date or timestamp conversion avoids this inappropriate dependability on configurable NLS parameters. Example (bad) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 create or replace package body employee_api is procedure set_dob ( in_employee_id in employees . employee_id % type , in_dob_str in varchar2 ) is co_employee_id constant employees . employee_id % type : = in_employee_id ; co_dob_str constant type_up . date_string : = in_dob_str ; begin update employees set date_of_birth = to_date ( co_dob_str default null on conversion error ) where employee_id = co_employee_id ; end set_dob ; end employee_api ; / Example (good) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 create or replace package body employee_api is procedure set_dob ( in_employee_id in employees . employee_id % type , in_dob_str in varchar2 ) is co_employee_id constant employees . employee_id % type : = in_employee_id ; co_dob_str constant type_up . date_string : = in_dob_str ; begin update employees set date_of_birth = to_date ( co_dob_str default null on conversion error , 'FXYYYY-MM-DD' ) where employee_id = co_employee_id ; end set_dob ; end employee_api ; /","title":"G-9010: Always use a format model in string to date/time conversion functions."},{"location":"4-language-usage/9-function-usage/g-9010/#g-9010-always-use-a-format-model-in-string-to-datetime-conversion-functions","text":"Blocker Changeability, Maintainability, Reliability, Security, Testability","title":"G-9010: Always use a format model in string to date/time conversion functions."},{"location":"4-language-usage/9-function-usage/g-9010/#reason","text":"Converting from strings to date or timestamp datatypes (using to_date , to_timestamp , to_timestamp_tz or cast to any of those datatypes) in practice always expects a fixed format (unlike converting to strings that can be fixed as well as allow the session to decide). Therefore it is a bad idea to allow this conversion to rely on the session NLS settings ( nls_date_format , nls_timestamp_format and nls_timestamp_tz_format ) as this makes the code vulnerable to changes in session and/or server configuration. It is even possible to utilize session nls_date_format for SQL injection if you use dynamic SQL. Using an explicit format model for string to date or timestamp conversion avoids this inappropriate dependability on configurable NLS parameters.","title":"Reason"},{"location":"4-language-usage/9-function-usage/g-9010/#example-bad","text":"1 2 3 4 5 6 7 8 9 10 11 12 13 14 create or replace package body employee_api is procedure set_dob ( in_employee_id in employees . employee_id % type , in_dob_str in varchar2 ) is co_employee_id constant employees . employee_id % type : = in_employee_id ; co_dob_str constant type_up . date_string : = in_dob_str ; begin update employees set date_of_birth = to_date ( co_dob_str default null on conversion error ) where employee_id = co_employee_id ; end set_dob ; end employee_api ; /","title":"Example (bad)"},{"location":"4-language-usage/9-function-usage/g-9010/#example-good","text":"1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 create or replace package body employee_api is procedure set_dob ( in_employee_id in employees . employee_id % type , in_dob_str in varchar2 ) is co_employee_id constant employees . employee_id % type : = in_employee_id ; co_dob_str constant type_up . date_string : = in_dob_str ; begin update employees set date_of_birth = to_date ( co_dob_str default null on conversion error , 'FXYYYY-MM-DD' ) where employee_id = co_employee_id ; end set_dob ; end employee_api ; /","title":"Example (good)"},{"location":"4-language-usage/9-function-usage/g-9020/","text":"G-9020: Try to use a format model and NLS_NUMERIC_CHARACTERS in string to number conversion functions. Blocker Changeability, Maintainability, Reliability, Security, Testability Reason Converting from strings to numeric datatypes (using to_number , to_binary_double , to_binary_float or cast to any of those datatypes) rely on session NLS settings for nls_numeric_characters . Typically the input string is expected to have a given decimal- and group-separator, so it is best practice to specify nls_numeric_characters in the function call. However, this requires also setting a format model, which is a good idea but can require a very large format model with many 9's if you do not know the maximum length of the string. To avoid an inappropriate dependability on configurable NLS parameters, try to use both format model and nls_numeric_characters in the conversion function call. The exceptions can be if the input is known to always be integer with no decimal- or group-separator, or if you do not know the maximum number of digits and have control over the session nls_numeric_characters parameter. Example (bad) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 create or replace package body employee_api is procedure set_salary ( in_employee_id in employees . employee_id % type , in_salary in varchar2 ) is co_employee_id constant eployees . employee_id % type : = in_employee_id ; co_salary constant type_up . date_string : = in_salary ; begin update employees set salary = to_number ( co_salary default null on conversion error ) where employee_id = co_employee_id ; end set_dob ; end employee_api ; / Example (good) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 create or replace package body employee_api is procedure set_salary ( in_employee_id in employees . employee_id % type , in_salary in varchar2 ) is co_employee_id constant eployees . employee_id % type : = in_employee_id ; co_salary constant type_up . string : = in_salary ; begin update employees set salary = to_number ( co_salary default null on conversion error , '99999999999999999999.99999' , q '[nls_numeric_characters=' ., ']' ) where employee_id = co_employee_id ; end set_dob ; end employee_api ;","title":"G-9020: Try to use a format model and NLS_NUMERIC_CHARACTERS in string to number conversion functions."},{"location":"4-language-usage/9-function-usage/g-9020/#g-9020-try-to-use-a-format-model-and-nls_numeric_characters-in-string-to-number-conversion-functions","text":"Blocker Changeability, Maintainability, Reliability, Security, Testability","title":"G-9020: Try to use a format model and NLS_NUMERIC_CHARACTERS in string to number conversion functions."},{"location":"4-language-usage/9-function-usage/g-9020/#reason","text":"Converting from strings to numeric datatypes (using to_number , to_binary_double , to_binary_float or cast to any of those datatypes) rely on session NLS settings for nls_numeric_characters . Typically the input string is expected to have a given decimal- and group-separator, so it is best practice to specify nls_numeric_characters in the function call. However, this requires also setting a format model, which is a good idea but can require a very large format model with many 9's if you do not know the maximum length of the string. To avoid an inappropriate dependability on configurable NLS parameters, try to use both format model and nls_numeric_characters in the conversion function call. The exceptions can be if the input is known to always be integer with no decimal- or group-separator, or if you do not know the maximum number of digits and have control over the session nls_numeric_characters parameter.","title":"Reason"},{"location":"4-language-usage/9-function-usage/g-9020/#example-bad","text":"1 2 3 4 5 6 7 8 9 10 11 12 13 14 create or replace package body employee_api is procedure set_salary ( in_employee_id in employees . employee_id % type , in_salary in varchar2 ) is co_employee_id constant eployees . employee_id % type : = in_employee_id ; co_salary constant type_up . date_string : = in_salary ; begin update employees set salary = to_number ( co_salary default null on conversion error ) where employee_id = co_employee_id ; end set_dob ; end employee_api ; /","title":"Example (bad)"},{"location":"4-language-usage/9-function-usage/g-9020/#example-good","text":"1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 create or replace package body employee_api is procedure set_salary ( in_employee_id in employees . employee_id % type , in_salary in varchar2 ) is co_employee_id constant eployees . employee_id % type : = in_employee_id ; co_salary constant type_up . string : = in_salary ; begin update employees set salary = to_number ( co_salary default null on conversion error , '99999999999999999999.99999' , q '[nls_numeric_characters=' ., ']' ) where employee_id = co_employee_id ; end set_dob ; end employee_api ;","title":"Example (good)"},{"location":"4-language-usage/9-function-usage/g-9030/","text":"G-9030: Try to define a default value on conversion errors. Major Maintainability, Reliability, Testability Restriction Oracle Database 12c Release 2 Reason When converting from strings to other datatypes using a conversion function that supports the default ... on conversion error clause, it is a good idea to use this clause to avoid getting an error raised on bad input. The exception can be when you explicitly want an error to be raised to catch and process it in a later exception handler. Example (bad) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 create or replace package body employee_api is procedure set_dob ( in_employee_id in employees . employee_id % type , in_dob_str in varchar2 ) is co_employee_id constant employees . employee_id % type : = in_employee_id ; co_dob_str constant type_up . date_string : = in_dob_str ; begin update employees set date_of_birth = to_date ( co_dob_str , 'FXYYYY-MM-DD' ) -- violates also G-1050 where employee_id = co_employee_id ; end set_dob ; end employee_api ; / Example (good) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 create or replace package body employee_api is procedure set_dob ( in_employee_id in employees . employee_id % type , in_dob_str in varchar2 ) is co_employee_id constant employees . employee_id % type : = in_employee_id ; co_dob_str constant type_up . date_string : = in_dob_str ; begin update employees set date_of_birth = to_date ( co_dob_str default null on conversion error , 'FXYYYY-MM-DD' -- NOSONAR: G-1050 must be a literal ) where employee_id = co_employee_id ; end set_dob ; end employee_api ; /","title":"G-9030: Try to define a default value on conversion errors."},{"location":"4-language-usage/9-function-usage/g-9030/#g-9030-try-to-define-a-default-value-on-conversion-errors","text":"Major Maintainability, Reliability, Testability","title":"G-9030: Try to define a default value on conversion errors."},{"location":"4-language-usage/9-function-usage/g-9030/#restriction","text":"Oracle Database 12c Release 2","title":"Restriction"},{"location":"4-language-usage/9-function-usage/g-9030/#reason","text":"When converting from strings to other datatypes using a conversion function that supports the default ... on conversion error clause, it is a good idea to use this clause to avoid getting an error raised on bad input. The exception can be when you explicitly want an error to be raised to catch and process it in a later exception handler.","title":"Reason"},{"location":"4-language-usage/9-function-usage/g-9030/#example-bad","text":"1 2 3 4 5 6 7 8 9 10 11 12 13 14 create or replace package body employee_api is procedure set_dob ( in_employee_id in employees . employee_id % type , in_dob_str in varchar2 ) is co_employee_id constant employees . employee_id % type : = in_employee_id ; co_dob_str constant type_up . date_string : = in_dob_str ; begin update employees set date_of_birth = to_date ( co_dob_str , 'FXYYYY-MM-DD' ) -- violates also G-1050 where employee_id = co_employee_id ; end set_dob ; end employee_api ; /","title":"Example (bad)"},{"location":"4-language-usage/9-function-usage/g-9030/#example-good","text":"1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 create or replace package body employee_api is procedure set_dob ( in_employee_id in employees . employee_id % type , in_dob_str in varchar2 ) is co_employee_id constant employees . employee_id % type : = in_employee_id ; co_dob_str constant type_up . date_string : = in_dob_str ; begin update employees set date_of_birth = to_date ( co_dob_str default null on conversion error , 'FXYYYY-MM-DD' -- NOSONAR: G-1050 must be a literal ) where employee_id = co_employee_id ; end set_dob ; end employee_api ; /","title":"Example (good)"},{"location":"4-language-usage/9-function-usage/g-9040/","text":"G-9040: Try using FX in string to date/time conversion format model to avoid fuzzy conversion. Blocker Reliability, Testability Reason The default string-to-date conversion rules allow fuzzy conversion when converting from strings to date or timestamp datatypes (using to_date , to_timestamp , to_timestamp_tz or cast to any of those datatypes). For example you can omit punctuation characters, use any non-alphanumeric character for punctuation, use month name instead of number, or various other rules. In practice you almost always expect a truly fixed format and want the database to enforce the format model and raise an error if the data does not match the format model. This you can achieve by adding the format modifier FX (format exact). The exception to this rule can be if you are converting textual input typed by a user, in which case the fuzzy conversion may be what you want. Example (bad) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 create or replace package body employee_api is procedure set_dob ( in_employee_id in employees . employee_id % type , in_dob_str in varchar2 ) is co_employee_id constant employees . employee_id % type : = in_employee_id ; co_dob_str constant type_up . date_string : = in_dob_str ; begin update employees set date_of_birth = to_date ( co_dob_str default null on conversion error , 'YYYY-MM-DD' ) where employee_id = co_employee_id ; end set_dob ; end employee_api ; / Example (good) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 create or replace package body employee_api is procedure set_dob ( in_employee_id in employees . employee_id % type , in_dob_str in varchar2 ) is co_employee_id constant employees . employee_id % type : = in_employee_id ; co_dob_str constant type_up . date_string : = in_dob_str ; begin update employees set date_of_birth = to_date ( co_dob_str default null on conversion error , 'FXYYYY-MM-DD' ) where employee_id = co_employee_id ; end set_dob ; end employee_api ; /","title":"G-9040: Try using FX in string to date/time conversion format model to avoid fuzzy conversion."},{"location":"4-language-usage/9-function-usage/g-9040/#g-9040-try-using-fx-in-string-to-datetime-conversion-format-model-to-avoid-fuzzy-conversion","text":"Blocker Reliability, Testability","title":"G-9040: Try using FX in string to date/time conversion format model to avoid fuzzy conversion."},{"location":"4-language-usage/9-function-usage/g-9040/#reason","text":"The default string-to-date conversion rules allow fuzzy conversion when converting from strings to date or timestamp datatypes (using to_date , to_timestamp , to_timestamp_tz or cast to any of those datatypes). For example you can omit punctuation characters, use any non-alphanumeric character for punctuation, use month name instead of number, or various other rules. In practice you almost always expect a truly fixed format and want the database to enforce the format model and raise an error if the data does not match the format model. This you can achieve by adding the format modifier FX (format exact). The exception to this rule can be if you are converting textual input typed by a user, in which case the fuzzy conversion may be what you want.","title":"Reason"},{"location":"4-language-usage/9-function-usage/g-9040/#example-bad","text":"1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 create or replace package body employee_api is procedure set_dob ( in_employee_id in employees . employee_id % type , in_dob_str in varchar2 ) is co_employee_id constant employees . employee_id % type : = in_employee_id ; co_dob_str constant type_up . date_string : = in_dob_str ; begin update employees set date_of_birth = to_date ( co_dob_str default null on conversion error , 'YYYY-MM-DD' ) where employee_id = co_employee_id ; end set_dob ; end employee_api ; /","title":"Example (bad)"},{"location":"4-language-usage/9-function-usage/g-9040/#example-good","text":"1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 create or replace package body employee_api is procedure set_dob ( in_employee_id in employees . employee_id % type , in_dob_str in varchar2 ) is co_employee_id constant employees . employee_id % type : = in_employee_id ; co_dob_str constant type_up . date_string : = in_dob_str ; begin update employees set date_of_birth = to_date ( co_dob_str default null on conversion error , 'FXYYYY-MM-DD' ) where employee_id = co_employee_id ; end set_dob ; end employee_api ; /","title":"Example (good)"},{"location":"5-complexity-analysis/complexity-analysis/","text":"Complexity Analysis Using software metrics like complexity analysis will guide you towards maintainable and testable pieces of code by reducing the complexity and splitting the code into smaller chunks. Halstead Metrics Calculation First, we need to compute the following numbers, given the program: \\(n_1\\) = the number of distinct operators \\(n_2\\) = the number of distinct operands \\(N_1\\) = the total number of operators \\(N_2\\) = the total number of operands From these numbers, five measures can be calculated: Program length: \\(N = N_1 + N_2\\) Program vocabulary: \\(n = n_1 + n_2\\) Volume: \\(V = N \\cdot log_2 n\\) Difficulty: \\(D = \\frac{n_1}{2} \\cdot \\frac{N_2}{n_2}\\) Effort: \\(E = D \\cdot V\\) The difficulty measure \\(D\\) is related to the difficulty of the program to write or understand, e.g. when doing code review. The volume measure \\(V\\) describes the size of the implementation of an algorithm. McCabe's Cyclomatic Complexity Description Cyclomatic complexity (or conditional complexity) is a software metric used to measure the complexity of a program. It directly measures the number of linearly independent paths through a program's source code. Cyclomatic complexity is computed using the control flow graph of the program: the nodes of the graph correspond to indivisible groups of commands of a program, and a directed edge connects two nodes if the second command might be executed immediately after the first command. Cyclomatic complexity may also be applied to individual functions, modules, methods or classes within a program. The cyclomatic complexity of a section of source code is the count of the number of linearly independent paths through the source code. For instance, if the source code contains no decision points, such as if statements or for loops, the complexity would be 1, since there is only a single path through the code. If the code has a single if statement containing a single condition there would be two paths through the code, one path where the if statement is evaluated as true and one path where the if statement is evaluated as false . Calculation Mathematically, the cyclomatic complexity of a structured program is defined with reference to a directed graph containing the basic blocks of the program, with an edge between two basic blocks if control may pass from the first to the second (the control flow graph of the program). The complexity is then defined as: \\[M = E - N + 2P\\] where \\(M\\) = cyclomatic complexity \\(E\\) = the number of edges of the graph \\(N\\) = the number of nodes of the graph \\(P\\) = the number of connected components. Take, for example, a control flow graph of a simple program. The program begins executing at the red node, then enters a loop (group of three nodes immediately below the red node). On exiting the loop, there is a conditional statement (group below the loop), and finally the program exits at the blue node. For this graph, \\(E = 9\\) , \\(N = 8\\) and \\(P = 1\\) , so the cyclomatic complexity of the program is \\(3\\) . 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 declare co_upper_bound constant integer : = 3 ; co_msg constant user_objects . object_name % type : = 'in loop ' ; co_yes constant user_objects . object_name % type : = 'yes' ; co_end constant user_objects . object_name % type : = 'end' ; begin << print_in_loop >> for i in 1 .. co_upper_bound loop sys . dbms_output . put_line ( co_msg || i ); end loop print_in_loop ; -- if 1 = 1 then sys . dbms_output . put_line ( co_yes ); end if ; -- sys . dbms_output . put_line ( co_end ); end ; / For a single program (or subroutine or method), P is always equal to 1. Cyclomatic complexity may, however, be applied to several such programs or subprograms at the same time (e.g., to all of the methods in a class), and in these cases P will be equal to the number of programs in question, as each subprogram will appear as a disconnected subset of the graph. It can be shown that the cyclomatic complexity of any structured program with only one entrance point and one exit point is equal to the number of decision points (i.e., if statements or conditional loops) contained in that program plus one. Cyclomatic complexity may be extended to a program with multiple exit points; in this case it is equal to: \\[\\pi = s + 2\\] Where \\(\\pi\\) is the number of decision points in the program, and \\(s\\) is the number of exit points.","title":"Complexity Analysis"},{"location":"5-complexity-analysis/complexity-analysis/#complexity-analysis","text":"Using software metrics like complexity analysis will guide you towards maintainable and testable pieces of code by reducing the complexity and splitting the code into smaller chunks.","title":"Complexity Analysis"},{"location":"5-complexity-analysis/complexity-analysis/#halstead-metrics","text":"","title":"Halstead Metrics"},{"location":"5-complexity-analysis/complexity-analysis/#calculation","text":"First, we need to compute the following numbers, given the program: \\(n_1\\) = the number of distinct operators \\(n_2\\) = the number of distinct operands \\(N_1\\) = the total number of operators \\(N_2\\) = the total number of operands From these numbers, five measures can be calculated: Program length: \\(N = N_1 + N_2\\) Program vocabulary: \\(n = n_1 + n_2\\) Volume: \\(V = N \\cdot log_2 n\\) Difficulty: \\(D = \\frac{n_1}{2} \\cdot \\frac{N_2}{n_2}\\) Effort: \\(E = D \\cdot V\\) The difficulty measure \\(D\\) is related to the difficulty of the program to write or understand, e.g. when doing code review. The volume measure \\(V\\) describes the size of the implementation of an algorithm.","title":"Calculation"},{"location":"5-complexity-analysis/complexity-analysis/#mccabes-cyclomatic-complexity","text":"","title":"McCabe's Cyclomatic Complexity"},{"location":"5-complexity-analysis/complexity-analysis/#description","text":"Cyclomatic complexity (or conditional complexity) is a software metric used to measure the complexity of a program. It directly measures the number of linearly independent paths through a program's source code. Cyclomatic complexity is computed using the control flow graph of the program: the nodes of the graph correspond to indivisible groups of commands of a program, and a directed edge connects two nodes if the second command might be executed immediately after the first command. Cyclomatic complexity may also be applied to individual functions, modules, methods or classes within a program. The cyclomatic complexity of a section of source code is the count of the number of linearly independent paths through the source code. For instance, if the source code contains no decision points, such as if statements or for loops, the complexity would be 1, since there is only a single path through the code. If the code has a single if statement containing a single condition there would be two paths through the code, one path where the if statement is evaluated as true and one path where the if statement is evaluated as false .","title":"Description"},{"location":"5-complexity-analysis/complexity-analysis/#calculation_1","text":"Mathematically, the cyclomatic complexity of a structured program is defined with reference to a directed graph containing the basic blocks of the program, with an edge between two basic blocks if control may pass from the first to the second (the control flow graph of the program). The complexity is then defined as: \\[M = E - N + 2P\\] where \\(M\\) = cyclomatic complexity \\(E\\) = the number of edges of the graph \\(N\\) = the number of nodes of the graph \\(P\\) = the number of connected components. Take, for example, a control flow graph of a simple program. The program begins executing at the red node, then enters a loop (group of three nodes immediately below the red node). On exiting the loop, there is a conditional statement (group below the loop), and finally the program exits at the blue node. For this graph, \\(E = 9\\) , \\(N = 8\\) and \\(P = 1\\) , so the cyclomatic complexity of the program is \\(3\\) . 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 declare co_upper_bound constant integer : = 3 ; co_msg constant user_objects . object_name % type : = 'in loop ' ; co_yes constant user_objects . object_name % type : = 'yes' ; co_end constant user_objects . object_name % type : = 'end' ; begin << print_in_loop >> for i in 1 .. co_upper_bound loop sys . dbms_output . put_line ( co_msg || i ); end loop print_in_loop ; -- if 1 = 1 then sys . dbms_output . put_line ( co_yes ); end if ; -- sys . dbms_output . put_line ( co_end ); end ; / For a single program (or subroutine or method), P is always equal to 1. Cyclomatic complexity may, however, be applied to several such programs or subprograms at the same time (e.g., to all of the methods in a class), and in these cases P will be equal to the number of programs in question, as each subprogram will appear as a disconnected subset of the graph. It can be shown that the cyclomatic complexity of any structured program with only one entrance point and one exit point is equal to the number of decision points (i.e., if statements or conditional loops) contained in that program plus one. Cyclomatic complexity may be extended to a program with multiple exit points; in this case it is equal to: \\[\\pi = s + 2\\] Where \\(\\pi\\) is the number of decision points in the program, and \\(s\\) is the number of exit points.","title":"Calculation"},{"location":"6-code-reviews/code-reviews/","text":"Code Reviews Code reviews check the results of software engineering. According to IEEE-Norm 729, a review is a more or less planned and structured analysis and evaluation process. Here we distinguish between code review and architect review. To perform a code review means that after or during the development one or more reviewer proof-reads the code to find potential errors, potential areas for simplification, or test cases. A code review is a very good opportunity to save costs by fixing issues before the testing phase. What can a code-review be good for? Code quality Code clarity and maintainability Quality of the overall architecture Quality of the documentation Quality of the interface specification For an effective review, the following factors must be considered: Definition of clear goals. Choice of a suitable person with constructive critical faculties. Psychological aspects. Selection of the right review techniques. Support of the review process from the management. Existence of a culture of learning and process optimization. Requirements for the reviewer: He must not be the owner of the code. Code reviews may be unpleasant for the developer, as he could fear that his code will be criticized. If the critic is not considerate, the code writer will build up rejection and resistance against code reviews.","title":"Code Reviews"},{"location":"6-code-reviews/code-reviews/#code-reviews","text":"Code reviews check the results of software engineering. According to IEEE-Norm 729, a review is a more or less planned and structured analysis and evaluation process. Here we distinguish between code review and architect review. To perform a code review means that after or during the development one or more reviewer proof-reads the code to find potential errors, potential areas for simplification, or test cases. A code review is a very good opportunity to save costs by fixing issues before the testing phase. What can a code-review be good for? Code quality Code clarity and maintainability Quality of the overall architecture Quality of the documentation Quality of the interface specification For an effective review, the following factors must be considered: Definition of clear goals. Choice of a suitable person with constructive critical faculties. Psychological aspects. Selection of the right review techniques. Support of the review process from the management. Existence of a culture of learning and process optimization. Requirements for the reviewer: He must not be the owner of the code. Code reviews may be unpleasant for the developer, as he could fear that his code will be criticized. If the critic is not considerate, the code writer will build up rejection and resistance against code reviews.","title":"Code Reviews"},{"location":"7-tool-support/1-db-codecop-sqldev/","text":"db* CODECOP for SQL Developer Introduction db* CODECOP for SQL Developer is a free extension to check an editor content for compliance violations of this coding guideline. The extension may be parameterized to your preferred set of rules and allows checking this set against a program unit. db* CODECOP calculates metrics per PL/SQL unit, such as: McCabe\u2019s cyclomatic complexity Halstead\u2019s volume The maintainability index Lines Commands (SQL*Plus and SQL) Statements (within a PL/SQL unit) etc. And aggregates them on file level. The results are presented in an additional tabbed panel. One tab shows all guideline violations to quickly navigate to the corresponding code position. The other tab contains a full HTML report, which also may be opened in your external browser. Examples Open a PL/SQL or SQL script in a SQL Developer editor and press Ctrl-Shift-C to check your code against the Trivadis PL/SQL & SQL guidelines. Navigate through the issues using the cursor keys to highlight the related code section in the linked editor. Dock the db* CODECOP output window on your favorite position within SQL Developer and click on the report tab to reveal some additional metrics. Open the report in an external browser to print or save the report.","title":"db* CODECOP for SQL Developer"},{"location":"7-tool-support/1-db-codecop-sqldev/#db-codecop-for-sql-developer","text":"","title":"db* CODECOP for SQL Developer"},{"location":"7-tool-support/1-db-codecop-sqldev/#introduction","text":"db* CODECOP for SQL Developer is a free extension to check an editor content for compliance violations of this coding guideline. The extension may be parameterized to your preferred set of rules and allows checking this set against a program unit. db* CODECOP calculates metrics per PL/SQL unit, such as: McCabe\u2019s cyclomatic complexity Halstead\u2019s volume The maintainability index Lines Commands (SQL*Plus and SQL) Statements (within a PL/SQL unit) etc. And aggregates them on file level. The results are presented in an additional tabbed panel. One tab shows all guideline violations to quickly navigate to the corresponding code position. The other tab contains a full HTML report, which also may be opened in your external browser.","title":"Introduction"},{"location":"7-tool-support/1-db-codecop-sqldev/#examples","text":"Open a PL/SQL or SQL script in a SQL Developer editor and press Ctrl-Shift-C to check your code against the Trivadis PL/SQL & SQL guidelines. Navigate through the issues using the cursor keys to highlight the related code section in the linked editor. Dock the db* CODECOP output window on your favorite position within SQL Developer and click on the report tab to reveal some additional metrics. Open the report in an external browser to print or save the report.","title":"Examples"},{"location":"7-tool-support/2-db-codecop-sonarqube/","text":"db* CODECOP for SonarQube Introduction db* CODECOP for SonarQube is a plugin for SonarQube . The plugin analyses SQL and PL/SQL code and calculates various metrics and checks the code for compliance of this coding guideline. A static code analysis is typically initiated as part of an continuous integration setup, e.g. at the end of a Jenkins or Hudson build job. SonarQube stores the result of the analysis in a relational database. Supported are PostgreSQL, Microsoft SQL Server and Oracle Database. For evaluation purposes, the embedded H2 database can also be used. Since every analysis is stored as a snapshot in the SonarQube repository the improvement or the decrease of the code quality may be monitored very well. Use SonarQube and the db* CODECOP plugin if you care about your PL/SQL code quality. Examples Run Code Analysis via SonarScanner You start an analysis from the command line as follows (see docs for more information): 1 sonar-scanner -Dsonar.projectKey=\"sample\" Here's an excerpt of the output: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 INFO: Scanner configuration file: /usr/local/opt/sonar-scanner/conf/sonar-scanner.properties INFO: Project root configuration file: NONE INFO: SonarQube Scanner 4.1.0.1829 ... INFO: Project configuration: INFO: 115 files indexed INFO: Quality profile for plsql: db* CODECOP INFO: ------------- Run sensors on module sample INFO: JavaScript/TypeScript frontend is enabled INFO: Define db* CODECOP PlugIn (Secondary) INFO: Load metrics repository INFO: Load metrics repository (done) | time=36ms INFO: PlSQL COP Sensor initializing INFO: Instantiate class: com.trivadis.sonar.plugin.TrivadisGuidelines3ValidatorConfig INFO: Sensor CSS Rules [cssfamily] INFO: No CSS, PHP, HTML or VueJS files are found in the project. CSS analysis is skipped. INFO: Sensor CSS Rules [cssfamily] (done) | time=1ms INFO: Sensor PL/SQL Sensor [plsql] INFO: 115 source files to be analyzed INFO: Load project repositories INFO: Load project repositories (done) | time=10ms ... INFO: Analysis report generated in 149ms, dir size=603 KB INFO: Analysis report compressed in 1101ms, zip size=264 KB INFO: Analysis report uploaded in 1858ms INFO: ANALYSIS SUCCESSFUL, you can browse http://localhost:9000/dashboard?id=sample INFO: Note that you will be able to access the updated dashboard once the server has processed the submitted analysis report INFO: More about the report processing at http://localhost:9000/api/ce/task?id=AXiSv3IJVMRTx5sCSVMo INFO: Analysis total time: 27.088 s INFO: ------------------------------------------------------------------------ INFO: EXECUTION SUCCESS INFO: ------------------------------------------------------------------------ INFO: Total time: 28.961s INFO: Final Memory: 40M/144M INFO: ------------------------------------------------------------------------ At the end of the run an URL to the scanner result is provided. Run Code Analyis with CI Environments You can call the SonarScanner also from Gradle, .NET projects, Maven, Ant, Jenkins, etc. Whichever method you use, in the end the analysis report will be uploaded to SonarQube. See SonarScanner for more information. View Code Analysis Result in SonarQube Here are the results of the previous analysis. Under Issues the following Blocker are shown: By clicking on the reddish box you can drill down to the source code. When clicking on Why is this an issue? the complete rule is shown in similar way as in these guidelines. See SonarQube documentation for more information.","title":"db* CODECOP for SonarQube"},{"location":"7-tool-support/2-db-codecop-sonarqube/#db-codecop-for-sonarqube","text":"","title":"db* CODECOP for SonarQube"},{"location":"7-tool-support/2-db-codecop-sonarqube/#introduction","text":"db* CODECOP for SonarQube is a plugin for SonarQube . The plugin analyses SQL and PL/SQL code and calculates various metrics and checks the code for compliance of this coding guideline. A static code analysis is typically initiated as part of an continuous integration setup, e.g. at the end of a Jenkins or Hudson build job. SonarQube stores the result of the analysis in a relational database. Supported are PostgreSQL, Microsoft SQL Server and Oracle Database. For evaluation purposes, the embedded H2 database can also be used. Since every analysis is stored as a snapshot in the SonarQube repository the improvement or the decrease of the code quality may be monitored very well. Use SonarQube and the db* CODECOP plugin if you care about your PL/SQL code quality.","title":"Introduction"},{"location":"7-tool-support/2-db-codecop-sonarqube/#examples","text":"","title":"Examples"},{"location":"7-tool-support/2-db-codecop-sonarqube/#run-code-analysis-via-sonarscanner","text":"You start an analysis from the command line as follows (see docs for more information): 1 sonar-scanner -Dsonar.projectKey=\"sample\" Here's an excerpt of the output: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 INFO: Scanner configuration file: /usr/local/opt/sonar-scanner/conf/sonar-scanner.properties INFO: Project root configuration file: NONE INFO: SonarQube Scanner 4.1.0.1829 ... INFO: Project configuration: INFO: 115 files indexed INFO: Quality profile for plsql: db* CODECOP INFO: ------------- Run sensors on module sample INFO: JavaScript/TypeScript frontend is enabled INFO: Define db* CODECOP PlugIn (Secondary) INFO: Load metrics repository INFO: Load metrics repository (done) | time=36ms INFO: PlSQL COP Sensor initializing INFO: Instantiate class: com.trivadis.sonar.plugin.TrivadisGuidelines3ValidatorConfig INFO: Sensor CSS Rules [cssfamily] INFO: No CSS, PHP, HTML or VueJS files are found in the project. CSS analysis is skipped. INFO: Sensor CSS Rules [cssfamily] (done) | time=1ms INFO: Sensor PL/SQL Sensor [plsql] INFO: 115 source files to be analyzed INFO: Load project repositories INFO: Load project repositories (done) | time=10ms ... INFO: Analysis report generated in 149ms, dir size=603 KB INFO: Analysis report compressed in 1101ms, zip size=264 KB INFO: Analysis report uploaded in 1858ms INFO: ANALYSIS SUCCESSFUL, you can browse http://localhost:9000/dashboard?id=sample INFO: Note that you will be able to access the updated dashboard once the server has processed the submitted analysis report INFO: More about the report processing at http://localhost:9000/api/ce/task?id=AXiSv3IJVMRTx5sCSVMo INFO: Analysis total time: 27.088 s INFO: ------------------------------------------------------------------------ INFO: EXECUTION SUCCESS INFO: ------------------------------------------------------------------------ INFO: Total time: 28.961s INFO: Final Memory: 40M/144M INFO: ------------------------------------------------------------------------ At the end of the run an URL to the scanner result is provided.","title":"Run Code Analysis via SonarScanner"},{"location":"7-tool-support/2-db-codecop-sonarqube/#run-code-analyis-with-ci-environments","text":"You can call the SonarScanner also from Gradle, .NET projects, Maven, Ant, Jenkins, etc. Whichever method you use, in the end the analysis report will be uploaded to SonarQube. See SonarScanner for more information.","title":"Run Code Analyis with CI Environments"},{"location":"7-tool-support/2-db-codecop-sonarqube/#view-code-analysis-result-in-sonarqube","text":"Here are the results of the previous analysis. Under Issues the following Blocker are shown: By clicking on the reddish box you can drill down to the source code. When clicking on Why is this an issue? the complete rule is shown in similar way as in these guidelines. See SonarQube documentation for more information.","title":"View Code Analysis Result in SonarQube"},{"location":"7-tool-support/3-db-codecop-cli/","text":"db* CODECOP Command Line Introduction Trivadis db* CODECOP is a command line utility to check Oracle SQL*Plus files for compliance violations of this coding guideline. Furthermore McCabe\u2019s cyclomatic complexity, Halstead\u2019s volume, the maintainability index and some other software metrics are calculated for each PL/SQL unit and aggregated on file level. The code checking results are stored in XML, HTML and Excel files for further processing. To get the most out of this command line utility you should make it part of your Continuous Integration environment by using the db* CODECOP for SonarQube plugin. This way you may control the quality of your code base over time. Have also a look at db* CODECOP for SQL Developer if you are interested to check the code quality of PL/SQL code within SQL Developer. It\u2019s a free extension. db* CODECOP supports custom validators. We provide some example validators in this GitHub repository . You may use these validators as is or amend/extend them to suit your needs. Examples Here are some screen shot taken from an of an HTML report based on the samples provided with db* CODECOP. These HTML and Excel reports have been created by db* CODECOP and are based on a simple set of good and bad example files distributed with db* CODECOP.","title":"db* CODECOP Command Line"},{"location":"7-tool-support/3-db-codecop-cli/#db-codecop-command-line","text":"","title":"db* CODECOP Command Line"},{"location":"7-tool-support/3-db-codecop-cli/#introduction","text":"Trivadis db* CODECOP is a command line utility to check Oracle SQL*Plus files for compliance violations of this coding guideline. Furthermore McCabe\u2019s cyclomatic complexity, Halstead\u2019s volume, the maintainability index and some other software metrics are calculated for each PL/SQL unit and aggregated on file level. The code checking results are stored in XML, HTML and Excel files for further processing. To get the most out of this command line utility you should make it part of your Continuous Integration environment by using the db* CODECOP for SonarQube plugin. This way you may control the quality of your code base over time. Have also a look at db* CODECOP for SQL Developer if you are interested to check the code quality of PL/SQL code within SQL Developer. It\u2019s a free extension. db* CODECOP supports custom validators. We provide some example validators in this GitHub repository . You may use these validators as is or amend/extend them to suit your needs.","title":"Introduction"},{"location":"7-tool-support/3-db-codecop-cli/#examples","text":"Here are some screen shot taken from an of an HTML report based on the samples provided with db* CODECOP. These HTML and Excel reports have been created by db* CODECOP and are based on a simple set of good and bad example files distributed with db* CODECOP.","title":"Examples"},{"location":"7-tool-support/4-db-codecop-validators/","text":"db* CODECOP Validators db* CODECOP supports custom validators. A validator must implement the PLSQLCopValidator Java interface and has to be a direct or indirect descendant of the PLSQLValidator class. Such a class can be used in the command line utility and the SQL Developer extension. For SonarQube a ValidationConfig is required. A config defines the validator with its rules and quality profile for SonarQube. See GLPValidatorConfig . The referenced XML files are generated based on the validator and the optional sample guidelines . You may use these validators as is or amend/extend them to suit your needs. Provided Validators The db* CODECOP Validators project provides the following custom validators in the package com.trivadis.tvdcc.validators : Class Description TrivadisPlsqlNaming Checks Naming Conventions of the Trivadis PL/SQL & SQL Coding Guidelines GLP Checks naming of global and local variables and parameters SQLInjection Looks for SQL injection vulnerabilities, e.g. unasserted parameters in dynamic SQL Hint Looks for unknown hints and invalid table references OverrideTrivadisGuidelines Extends TrivadisGuidelines3 and overrides check for G-1050 . TrivadisGuidelines3Plus Combines the validators TrivadisPlsqlNaming, SQLInjection and OverrideTrivadisGuidelines.","title":"db* CODECOP Validators"},{"location":"7-tool-support/4-db-codecop-validators/#db-codecop-validators","text":"db* CODECOP supports custom validators. A validator must implement the PLSQLCopValidator Java interface and has to be a direct or indirect descendant of the PLSQLValidator class. Such a class can be used in the command line utility and the SQL Developer extension. For SonarQube a ValidationConfig is required. A config defines the validator with its rules and quality profile for SonarQube. See GLPValidatorConfig . The referenced XML files are generated based on the validator and the optional sample guidelines . You may use these validators as is or amend/extend them to suit your needs.","title":"db* CODECOP Validators"},{"location":"7-tool-support/4-db-codecop-validators/#provided-validators","text":"The db* CODECOP Validators project provides the following custom validators in the package com.trivadis.tvdcc.validators : Class Description TrivadisPlsqlNaming Checks Naming Conventions of the Trivadis PL/SQL & SQL Coding Guidelines GLP Checks naming of global and local variables and parameters SQLInjection Looks for SQL injection vulnerabilities, e.g. unasserted parameters in dynamic SQL Hint Looks for unknown hints and invalid table references OverrideTrivadisGuidelines Extends TrivadisGuidelines3 and overrides check for G-1050 . TrivadisGuidelines3Plus Combines the validators TrivadisPlsqlNaming, SQLInjection and OverrideTrivadisGuidelines.","title":"Provided Validators"},{"location":"7-tool-support/5-plscope-utils/","text":"plscope-utils Introduction plscope-utils is based on PL/Scope which is available in the Oracle Database since version 11.1. It consists of the following two components: Core Database Objects Provides relational views and PL/SQL packages to simplify common source code analysis tasks. Requires a server side installation. SQL Developer Extension (plscope-utils for SQL Developer) Extends SQL Developer by a PL/Scope node in the database navigator tree, context menus, views shown for tables, views and PL/SQL nodes and some reports. Requires a client side installation only. Part of plscope-utils is a check of naming conventions according to this coding guideline - either as a database view or a Oracle SQL Developer report.","title":"plscope-utils"},{"location":"7-tool-support/5-plscope-utils/#plscope-utils","text":"","title":"plscope-utils"},{"location":"7-tool-support/5-plscope-utils/#introduction","text":"plscope-utils is based on PL/Scope which is available in the Oracle Database since version 11.1. It consists of the following two components: Core Database Objects Provides relational views and PL/SQL packages to simplify common source code analysis tasks. Requires a server side installation. SQL Developer Extension (plscope-utils for SQL Developer) Extends SQL Developer by a PL/Scope node in the database navigator tree, context menus, views shown for tables, views and PL/SQL nodes and some reports. Requires a client side installation only. Part of plscope-utils is a check of naming conventions according to this coding guideline - either as a database view or a Oracle SQL Developer report.","title":"Introduction"},{"location":"7-tool-support/6-formatter-settings/","text":"PL/SQL & SQL Formatter Settings Introduction This GitHub repository provides formatter settings that follow the Coding Style of these guidelines. Extensive settings using Arbori are provided for Oracle SQLcl Oracle SQL Developer Simple configuration files are also available for Allround Automations PL/SQL Developer JetBrains DataGrip Quest Toad for Oracle There is also a standalone formatter that can be used in a Git pre-commit Hook to automate the formatting process. By the way, the code blocks in these guidelines were formatted using this standalone formatter.","title":"PL/SQL & SQL Formatter Settings"},{"location":"7-tool-support/6-formatter-settings/#plsql-sql-formatter-settings","text":"","title":"PL/SQL & SQL Formatter Settings"},{"location":"7-tool-support/6-formatter-settings/#introduction","text":"This GitHub repository provides formatter settings that follow the Coding Style of these guidelines. Extensive settings using Arbori are provided for Oracle SQLcl Oracle SQL Developer Simple configuration files are also available for Allround Automations PL/SQL Developer JetBrains DataGrip Quest Toad for Oracle There is also a standalone formatter that can be used in a Git pre-commit Hook to automate the formatting process. By the way, the code blocks in these guidelines were formatted using this standalone formatter.","title":"Introduction"},{"location":"9-appendix/appendix/","text":"Appendix A - PL/SQL & SQL Coding Guidelines as PDF These guidelines are primarily produced in HTML using Material for MkDocs . However, we provide these guidelines also as PDF produced by wkhtmltopdf . The formatting is not perfect, but it should be adequate for those who want to work with offline documents. B - Mapping new guidelines to prior versions Old Id New Id Text Severity Change- ability Effi- ciency Maintain- ability Port- ability Reli- ability Reus- ability Secu- rity Test- ability 1 1010 Try to label your sub blocks. Minor \u2718 2 1020 Always have a matching loop or block label. Minor \u2718 3 1030 Avoid defining variables that are not used. Major \u2718 \u2718 4 1040 Avoid dead code. Major \u2718 5 1050 Avoid using literals in your code. Minor \u2718 6 1060 Avoid storing ROWIDs or UROWIDs in database tables. Blocker \u2718 7 1070 Avoid nesting comment blocks. Minor \u2718 n/a 1080 Avoid using the same expression on both sides of a relational comparison operator or a logical operator. Blocker \u2718 \u2718 \u2718 8 2110 Try to use anchored declarations for variables, constants and types. Major \u2718 \u2718 9 2120 Try to have a single location to define your types. Minor \u2718 10 2130 Try to use subtypes for constructs used often in your code. Minor \u2718 n/a 2135 Avoid assigning values to local variables that are not used by a subsequent statement. Major \u2718 \u2718 \u2718 11 2140 Never initialize variables with NULL. Minor \u2718 n/a 2145 Never self-assign a variable. Blocker \u2718 12 2150 Avoid comparisons with NULL value, consider using IS [NOT] NULL. Blocker \u2718 \u2718 13 2160 Avoid initializing variables using functions in the declaration section. Critical \u2718 14 2170 Never overload variables. Major \u2718 15 2180 Never use quoted identifiers. Major \u2718 16 2185 Avoid using overly short names for explicitly or implicitly declared identifiers. Major \u2718 17 2190 Avoid using ROWID or UROWID. Blocker \u2718 \u2718 18 2210 Avoid declaring NUMBER variables, constants or subtypes with no precision. Critical \u2718 19 2220 Try to use PLS_INTEGER instead of NUMBER for arithmetic operations with integer values. Critical \u2718 n/a 2230 Try to use SIMPLE_INTEGER datatype when appropriate. Critical \u2718 20 2310 Avoid using CHAR data type. Blocker \u2718 21 2320 Never use VARCHAR data type. Blocker \u2718 \u2718 22 2330 Never use zero-length strings to substitute NULL. Blocker \u2718 \u2718 23 2340 Always define your VARCHAR2 variables using CHAR SEMANTIC (if not defined anchored). Blocker \u2718 24 2410 Try to use boolean data type for values with dual meaning. Minor \u2718 25 2510 Avoid using the LONG and LONG RAW data types. Major \u2718 n/a 2610 Never use self-defined weak ref cursor types. Minor \u2718 \u2718 \u2718 \u2718 26 3110 Always specify the target columns when coding an insert statement. Blocker \u2718 \u2718 n/a 3115 Avoid self-assigning a column. Blocker \u2718 27 3120 Always use table aliases when your SQL statement involves more than one source. Blocker \u2718 28 3130 Try to use ANSI SQL-92 join syntax. Major \u2718 \u2718 29 3140 Try to use anchored records as targets for your cursors. Major \u2718 \u2718 n/a 3145 Avoid using SELECT * directly from a table or view. Blocker \u2718 \u2718 \u2718 \u2718 n/a 3150 Try to use identity columns for surrogate keys. Critical \u2718 \u2718 n/a 3160 Avoid visible virtual columns. Blocker \u2718 \u2718 n/a 3170 Always use DEFAULT ON NULL declarations to assign default values to table columns if you refuse to store NULL values. Blocker \u2718 n/a 3180 Always specify column names instead of positional references in ORDER BY clauses. Major \u2718 \u2718 n/a 3182 Always specify column names/aliases instead of positional references in GROUP BY clauses. Blocker \u2718 n/a 3183 Always specify column aliases instead of expressions in GROUP BY clauses. Minor \u2718 n/a 3185 Never use ROWNUM at the same query level as ORDER BY. Blocker \u2718 \u2718 n/a 3190 Avoid using NATURAL JOIN. Blocker \u2718 \u2718 n/a 3195 Always use wildcards in a LIKE clause. Blocker \u2718 30 3210 Always use BULK OPERATIONS (BULK COLLECT, FORALL) whenever you have to execute a DML statement for more than 4 times. Critical \u2718 n/a 3220 Always process saved exceptions from a FORALL statement. Critical \u2718 \u2718 n/a 3310 Never commit within a cursor loop. Blocker \u2718 \u2718 n/a 3320 Try to move transactions within a non-cursor loop into procedures. Major \u2718 \u2718 \u2718 n/a 3330 Avoid autonomous transactions. Blocker \u2718 \u2718 31 4110 Always use %NOTFOUND instead of NOT %FOUND to check whether a cursor returned data. Minor \u2718 32 4120 Avoid using %NOTFOUND directly after the FETCH when working with BULK OPERATIONS and LIMIT clause. Blocker \u2718 33 4130 Always close locally opened cursors. Blocker \u2718 \u2718 34 4140 Avoid executing any statements between a SQL operation and the usage of an implicit cursor attribute. Blocker \u2718 35 4210 Try to use CASE rather than an IF statement with multiple ELSIF paths. Minor \u2718 \u2718 36 4220 Try to use CASE rather than DECODE. Major \u2718 \u2718 37 4230 Always use a COALESCE instead of a NVL command, if parameter 2 of the NVL function is a function call or a SELECT statement. Critical \u2718 \u2718 38 4240 Always use a CASE instead of a NVL2 command if parameter 2 or 3 of NVL2 is either a function call or a SELECT statement. Critical \u2718 \u2718 n/a 4250 Avoid using identical conditions in different branches of the same IF or CASE statement. Blocker \u2718 \u2718 \u2718 n/a 4260 Avoid inverting boolean conditions with NOT. Minor \u2718 \u2718 n/a 4270 Avoid comparing boolean values to boolean literals. Minor \u2718 \u2718 39 4310 Never use GOTO statements in your code. Major \u2718 \u2718 40 4320 Always label your loops. Minor \u2718 n/a 4325 Never reuse labels in inner scopes. Major \u2718 \u2718 \u2718 41 4330 Always use a CURSOR FOR loop to process the complete cursor results unless you are using bulk operations. Major \u2718 42 4340 Always use a NUMERIC FOR loop to process a dense array. Major \u2718 43 4350 Always use 1 as lower and COUNT() as upper bound when looping through a dense array. Blocker \u2718 44 4360 Always use a WHILE loop to process a loose array. Critical \u2718 n/a 4365 Never use unconditional CONTINUE or EXIT in a loop. Major \u2718 \u2718 45 4370 Avoid using EXIT to stop loop processing unless you are in a basic loop. Major \u2718 46 4375 Always use EXIT WHEN instead of an IF statement to exit from a loop. Minor \u2718 47 4380 Try to label your EXIT WHEN statements. Minor \u2718 48 4385 Never use a cursor for loop to check whether a cursor returns data. Critical \u2718 n/a 4387 !!!CHARACTERISTIC ERROR!!! Blocker \u2718 \u2718 49 4390 Avoid use of unreferenced FOR loop indexes. Major \u2718 50 4395 Avoid hard-coded upper or lower bound values with FOR loops. Minor \u2718 \u2718 n/a 5010 Try to use a error/logging framework for your application. Critical \u2718 \u2718 \u2718 51 5020 Never handle unnamed exceptions using the error number. Critical \u2718 52 5030 Never assign predefined exception names to user defined exceptions. Blocker \u2718 \u2718 53 5040 Avoid use of WHEN OTHERS clause in an exception section without any other specific handlers. Critical \u2718 54 n/a Avoid use of EXCEPTION_INIT pragma for a 20nnn error. Major \u2718 55 5050 Avoid use of the RAISE_APPLICATION_ERROR built-in procedure with a hard-coded 20nnn error number or hard-coded message. Major \u2718 \u2718 56 5060 Avoid unhandled exceptions. Major \u2718 57 5070 Avoid using Oracle predefined exceptions. Blocker \u2718 n/a 5080 Always use FORMAT_ERROR_BACKTRACE when using FORMAT_ERROR_STACK or SQLERRM. Critical \u2718 \u2718 58 6010 Always use a character variable to execute dynamic SQL. Major \u2718 \u2718 59 6020 Try to use output bind arguments in the RETURNING INTO clause of dynamic DML statements rather than the USING clause. Minor \u2718 60 7110 Try to use named notation when calling program units. Major \u2718 \u2718 61 7120 Always add the name of the program unit to its end keyword. Minor \u2718 n/a 7125 Always use CREATE OR REPLACE instead of CREATE alone. Major \u2718 62 7130 Always use parameters or pull in definitions rather than referencing external variables in a local program unit. Major \u2718 \u2718 \u2718 63 7140 Always ensure that locally defined procedures or functions are referenced. Major \u2718 \u2718 64 7150 Try to remove unused parameters. Major \u2718 \u2718 68 7160 Always explicitly state parameter mode. Major \u2718 n/a 7170 Avoid using an IN OUT parameter as IN or OUT only. Major \u2718 \u2718 65 7210 Try to keep your packages small. Include only few procedures and functions that are used in the same context. Major \u2718 \u2718 66 7220 Always use forward declaration for private functions and procedures. Minor \u2718 67 7230 Avoid declaring global variables public. Major \u2718 n/a 7250 Never use RETURN in package initialization block. Major \u2718 69 7310 Avoid standalone procedures \u2013 put your procedures in packages. Minor \u2718 70 7320 Avoid using RETURN statements in a PROCEDURE. Major \u2718 \u2718 n/a 7330 Always assign values to OUT parameters. Blocker \u2718 \u2718 71 7410 Avoid standalone functions \u2013 put your functions in packages. Minor \u2718 73 7420 Always make the RETURN statement the last statement of your function. Major \u2718 72 7430 Try to use no more than one RETURN statement within a function. Major \u2718 \u2718 74 7440 Never use OUT parameters to return values from a function. Major \u2718 75 7450 Never return a NULL value from a BOOLEAN function. Blocker \u2718 \u2718 n/a 7460 Try to define your packaged/standalone function deterministic if appropriate. Major \u2718 76 7510 Always prefix Oracle supplied packages with owner schema name. Major \u2718 77 7710 Avoid cascading triggers. Major \u2718 \u2718 n/a 7720 Never use multiple UPDATE OF in trigger event clause. Blocker \u2718 \u2718 \u2718 n/a 7730 Avoid multiple DML events per trigger. Minor \u2718 \u2718 n/a 7740 Never handle multiple DML events per trigger if primary key is assigned in trigger. Critical \u2718 \u2718 n/a 7810 Never use SQL inside PL/SQL to read sequence numbers (or SYSDATE). Critical \u2718 \u2718 n/a 7910 Never use DML within a SQL macro. Blocker \u2718 \u2718 78 8110 Never use SELECT COUNT(*) if you are only interested in the existence of a row. Critical \u2718 n/a 8120 Never check existence of a row to decide whether to create it or not. Critical \u2718 \u2718 79 8210 Always use synonyms when accessing objects of another application schema. Minor \u2718 \u2718 n/a 8310 Always validate input parameter size by assigning the parameter to a size limited variable in the declaration section of program unit. Major \u2718 \u2718 \u2718 \u2718 n/a 8410 Always use application locks to ensure a program unit is only running once at a given time. Blocker \u2718 \u2718 n/a 8510 Always use dbms_application_info to track program process transiently. Critical \u2718 \u2718 n/a 9010 Always use a format model in string to date/time conversion functions. Blocker \u2718 \u2718 \u2718 \u2718 \u2718 n/a 9020 Try to use a format model and NLS_NUMERIC_CHARACTERS in string to number conversion functions. Blocker \u2718 \u2718 \u2718 \u2718 \u2718 n/a 9030 Try to define a default value on conversion errors. Major \u2718 \u2718 \u2718 n/a 9040 Try using FX in string to date/time conversion format model to avoid fuzzy conversion. Blocker \u2718 \u2718","title":"Appendix"},{"location":"9-appendix/appendix/#appendix","text":"","title":"Appendix"},{"location":"9-appendix/appendix/#a-plsql-sql-coding-guidelines-as-pdf","text":"These guidelines are primarily produced in HTML using Material for MkDocs . However, we provide these guidelines also as PDF produced by wkhtmltopdf . The formatting is not perfect, but it should be adequate for those who want to work with offline documents.","title":"A - PL/SQL & SQL Coding Guidelines as PDF"},{"location":"9-appendix/appendix/#b-mapping-new-guidelines-to-prior-versions","text":"Old Id New Id Text Severity Change- ability Effi- ciency Maintain- ability Port- ability Reli- ability Reus- ability Secu- rity Test- ability 1 1010 Try to label your sub blocks. Minor \u2718 2 1020 Always have a matching loop or block label. Minor \u2718 3 1030 Avoid defining variables that are not used. Major \u2718 \u2718 4 1040 Avoid dead code. Major \u2718 5 1050 Avoid using literals in your code. Minor \u2718 6 1060 Avoid storing ROWIDs or UROWIDs in database tables. Blocker \u2718 7 1070 Avoid nesting comment blocks. Minor \u2718 n/a 1080 Avoid using the same expression on both sides of a relational comparison operator or a logical operator. Blocker \u2718 \u2718 \u2718 8 2110 Try to use anchored declarations for variables, constants and types. Major \u2718 \u2718 9 2120 Try to have a single location to define your types. Minor \u2718 10 2130 Try to use subtypes for constructs used often in your code. Minor \u2718 n/a 2135 Avoid assigning values to local variables that are not used by a subsequent statement. Major \u2718 \u2718 \u2718 11 2140 Never initialize variables with NULL. Minor \u2718 n/a 2145 Never self-assign a variable. Blocker \u2718 12 2150 Avoid comparisons with NULL value, consider using IS [NOT] NULL. Blocker \u2718 \u2718 13 2160 Avoid initializing variables using functions in the declaration section. Critical \u2718 14 2170 Never overload variables. Major \u2718 15 2180 Never use quoted identifiers. Major \u2718 16 2185 Avoid using overly short names for explicitly or implicitly declared identifiers. Major \u2718 17 2190 Avoid using ROWID or UROWID. Blocker \u2718 \u2718 18 2210 Avoid declaring NUMBER variables, constants or subtypes with no precision. Critical \u2718 19 2220 Try to use PLS_INTEGER instead of NUMBER for arithmetic operations with integer values. Critical \u2718 n/a 2230 Try to use SIMPLE_INTEGER datatype when appropriate. Critical \u2718 20 2310 Avoid using CHAR data type. Blocker \u2718 21 2320 Never use VARCHAR data type. Blocker \u2718 \u2718 22 2330 Never use zero-length strings to substitute NULL. Blocker \u2718 \u2718 23 2340 Always define your VARCHAR2 variables using CHAR SEMANTIC (if not defined anchored). Blocker \u2718 24 2410 Try to use boolean data type for values with dual meaning. Minor \u2718 25 2510 Avoid using the LONG and LONG RAW data types. Major \u2718 n/a 2610 Never use self-defined weak ref cursor types. Minor \u2718 \u2718 \u2718 \u2718 26 3110 Always specify the target columns when coding an insert statement. Blocker \u2718 \u2718 n/a 3115 Avoid self-assigning a column. Blocker \u2718 27 3120 Always use table aliases when your SQL statement involves more than one source. Blocker \u2718 28 3130 Try to use ANSI SQL-92 join syntax. Major \u2718 \u2718 29 3140 Try to use anchored records as targets for your cursors. Major \u2718 \u2718 n/a 3145 Avoid using SELECT * directly from a table or view. Blocker \u2718 \u2718 \u2718 \u2718 n/a 3150 Try to use identity columns for surrogate keys. Critical \u2718 \u2718 n/a 3160 Avoid visible virtual columns. Blocker \u2718 \u2718 n/a 3170 Always use DEFAULT ON NULL declarations to assign default values to table columns if you refuse to store NULL values. Blocker \u2718 n/a 3180 Always specify column names instead of positional references in ORDER BY clauses. Major \u2718 \u2718 n/a 3182 Always specify column names/aliases instead of positional references in GROUP BY clauses. Blocker \u2718 n/a 3183 Always specify column aliases instead of expressions in GROUP BY clauses. Minor \u2718 n/a 3185 Never use ROWNUM at the same query level as ORDER BY. Blocker \u2718 \u2718 n/a 3190 Avoid using NATURAL JOIN. Blocker \u2718 \u2718 n/a 3195 Always use wildcards in a LIKE clause. Blocker \u2718 30 3210 Always use BULK OPERATIONS (BULK COLLECT, FORALL) whenever you have to execute a DML statement for more than 4 times. Critical \u2718 n/a 3220 Always process saved exceptions from a FORALL statement. Critical \u2718 \u2718 n/a 3310 Never commit within a cursor loop. Blocker \u2718 \u2718 n/a 3320 Try to move transactions within a non-cursor loop into procedures. Major \u2718 \u2718 \u2718 n/a 3330 Avoid autonomous transactions. Blocker \u2718 \u2718 31 4110 Always use %NOTFOUND instead of NOT %FOUND to check whether a cursor returned data. Minor \u2718 32 4120 Avoid using %NOTFOUND directly after the FETCH when working with BULK OPERATIONS and LIMIT clause. Blocker \u2718 33 4130 Always close locally opened cursors. Blocker \u2718 \u2718 34 4140 Avoid executing any statements between a SQL operation and the usage of an implicit cursor attribute. Blocker \u2718 35 4210 Try to use CASE rather than an IF statement with multiple ELSIF paths. Minor \u2718 \u2718 36 4220 Try to use CASE rather than DECODE. Major \u2718 \u2718 37 4230 Always use a COALESCE instead of a NVL command, if parameter 2 of the NVL function is a function call or a SELECT statement. Critical \u2718 \u2718 38 4240 Always use a CASE instead of a NVL2 command if parameter 2 or 3 of NVL2 is either a function call or a SELECT statement. Critical \u2718 \u2718 n/a 4250 Avoid using identical conditions in different branches of the same IF or CASE statement. Blocker \u2718 \u2718 \u2718 n/a 4260 Avoid inverting boolean conditions with NOT. Minor \u2718 \u2718 n/a 4270 Avoid comparing boolean values to boolean literals. Minor \u2718 \u2718 39 4310 Never use GOTO statements in your code. Major \u2718 \u2718 40 4320 Always label your loops. Minor \u2718 n/a 4325 Never reuse labels in inner scopes. Major \u2718 \u2718 \u2718 41 4330 Always use a CURSOR FOR loop to process the complete cursor results unless you are using bulk operations. Major \u2718 42 4340 Always use a NUMERIC FOR loop to process a dense array. Major \u2718 43 4350 Always use 1 as lower and COUNT() as upper bound when looping through a dense array. Blocker \u2718 44 4360 Always use a WHILE loop to process a loose array. Critical \u2718 n/a 4365 Never use unconditional CONTINUE or EXIT in a loop. Major \u2718 \u2718 45 4370 Avoid using EXIT to stop loop processing unless you are in a basic loop. Major \u2718 46 4375 Always use EXIT WHEN instead of an IF statement to exit from a loop. Minor \u2718 47 4380 Try to label your EXIT WHEN statements. Minor \u2718 48 4385 Never use a cursor for loop to check whether a cursor returns data. Critical \u2718 n/a 4387 !!!CHARACTERISTIC ERROR!!! Blocker \u2718 \u2718 49 4390 Avoid use of unreferenced FOR loop indexes. Major \u2718 50 4395 Avoid hard-coded upper or lower bound values with FOR loops. Minor \u2718 \u2718 n/a 5010 Try to use a error/logging framework for your application. Critical \u2718 \u2718 \u2718 51 5020 Never handle unnamed exceptions using the error number. Critical \u2718 52 5030 Never assign predefined exception names to user defined exceptions. Blocker \u2718 \u2718 53 5040 Avoid use of WHEN OTHERS clause in an exception section without any other specific handlers. Critical \u2718 54 n/a Avoid use of EXCEPTION_INIT pragma for a 20nnn error. Major \u2718 55 5050 Avoid use of the RAISE_APPLICATION_ERROR built-in procedure with a hard-coded 20nnn error number or hard-coded message. Major \u2718 \u2718 56 5060 Avoid unhandled exceptions. Major \u2718 57 5070 Avoid using Oracle predefined exceptions. Blocker \u2718 n/a 5080 Always use FORMAT_ERROR_BACKTRACE when using FORMAT_ERROR_STACK or SQLERRM. Critical \u2718 \u2718 58 6010 Always use a character variable to execute dynamic SQL. Major \u2718 \u2718 59 6020 Try to use output bind arguments in the RETURNING INTO clause of dynamic DML statements rather than the USING clause. Minor \u2718 60 7110 Try to use named notation when calling program units. Major \u2718 \u2718 61 7120 Always add the name of the program unit to its end keyword. Minor \u2718 n/a 7125 Always use CREATE OR REPLACE instead of CREATE alone. Major \u2718 62 7130 Always use parameters or pull in definitions rather than referencing external variables in a local program unit. Major \u2718 \u2718 \u2718 63 7140 Always ensure that locally defined procedures or functions are referenced. Major \u2718 \u2718 64 7150 Try to remove unused parameters. Major \u2718 \u2718 68 7160 Always explicitly state parameter mode. Major \u2718 n/a 7170 Avoid using an IN OUT parameter as IN or OUT only. Major \u2718 \u2718 65 7210 Try to keep your packages small. Include only few procedures and functions that are used in the same context. Major \u2718 \u2718 66 7220 Always use forward declaration for private functions and procedures. Minor \u2718 67 7230 Avoid declaring global variables public. Major \u2718 n/a 7250 Never use RETURN in package initialization block. Major \u2718 69 7310 Avoid standalone procedures \u2013 put your procedures in packages. Minor \u2718 70 7320 Avoid using RETURN statements in a PROCEDURE. Major \u2718 \u2718 n/a 7330 Always assign values to OUT parameters. Blocker \u2718 \u2718 71 7410 Avoid standalone functions \u2013 put your functions in packages. Minor \u2718 73 7420 Always make the RETURN statement the last statement of your function. Major \u2718 72 7430 Try to use no more than one RETURN statement within a function. Major \u2718 \u2718 74 7440 Never use OUT parameters to return values from a function. Major \u2718 75 7450 Never return a NULL value from a BOOLEAN function. Blocker \u2718 \u2718 n/a 7460 Try to define your packaged/standalone function deterministic if appropriate. Major \u2718 76 7510 Always prefix Oracle supplied packages with owner schema name. Major \u2718 77 7710 Avoid cascading triggers. Major \u2718 \u2718 n/a 7720 Never use multiple UPDATE OF in trigger event clause. Blocker \u2718 \u2718 \u2718 n/a 7730 Avoid multiple DML events per trigger. Minor \u2718 \u2718 n/a 7740 Never handle multiple DML events per trigger if primary key is assigned in trigger. Critical \u2718 \u2718 n/a 7810 Never use SQL inside PL/SQL to read sequence numbers (or SYSDATE). Critical \u2718 \u2718 n/a 7910 Never use DML within a SQL macro. Blocker \u2718 \u2718 78 8110 Never use SELECT COUNT(*) if you are only interested in the existence of a row. Critical \u2718 n/a 8120 Never check existence of a row to decide whether to create it or not. Critical \u2718 \u2718 79 8210 Always use synonyms when accessing objects of another application schema. Minor \u2718 \u2718 n/a 8310 Always validate input parameter size by assigning the parameter to a size limited variable in the declaration section of program unit. Major \u2718 \u2718 \u2718 \u2718 n/a 8410 Always use application locks to ensure a program unit is only running once at a given time. Blocker \u2718 \u2718 n/a 8510 Always use dbms_application_info to track program process transiently. Critical \u2718 \u2718 n/a 9010 Always use a format model in string to date/time conversion functions. Blocker \u2718 \u2718 \u2718 \u2718 \u2718 n/a 9020 Try to use a format model and NLS_NUMERIC_CHARACTERS in string to number conversion functions. Blocker \u2718 \u2718 \u2718 \u2718 \u2718 n/a 9030 Try to define a default value on conversion errors. Major \u2718 \u2718 \u2718 n/a 9040 Try using FX in string to date/time conversion format model to avoid fuzzy conversion. Blocker \u2718 \u2718","title":"B - Mapping new guidelines to prior versions"}]} \ No newline at end of file diff --git a/main/sitemap.xml b/main/sitemap.xml index ba82fec0..3620e860 100644 --- a/main/sitemap.xml +++ b/main/sitemap.xml @@ -2,692 +2,692 @@ https://trivadis.github.io/plsql-and-sql-coding-guidelines/main/ - 2024-03-18 + 2024-03-19 daily https://trivadis.github.io/plsql-and-sql-coding-guidelines/main/1-introduction/introduction/ - 2024-03-18 + 2024-03-19 daily https://trivadis.github.io/plsql-and-sql-coding-guidelines/main/2-naming-conventions/naming-conventions/ - 2024-03-18 + 2024-03-19 daily https://trivadis.github.io/plsql-and-sql-coding-guidelines/main/3-coding-style/coding-style/ - 2024-03-18 + 2024-03-19 daily https://trivadis.github.io/plsql-and-sql-coding-guidelines/main/4-language-usage/1-general/g-1010/ - 2024-03-18 + 2024-03-19 daily https://trivadis.github.io/plsql-and-sql-coding-guidelines/main/4-language-usage/1-general/g-1020/ - 2024-03-18 + 2024-03-19 daily https://trivadis.github.io/plsql-and-sql-coding-guidelines/main/4-language-usage/1-general/g-1030/ - 2024-03-18 + 2024-03-19 daily https://trivadis.github.io/plsql-and-sql-coding-guidelines/main/4-language-usage/1-general/g-1040/ - 2024-03-18 + 2024-03-19 daily https://trivadis.github.io/plsql-and-sql-coding-guidelines/main/4-language-usage/1-general/g-1050/ - 2024-03-18 + 2024-03-19 daily https://trivadis.github.io/plsql-and-sql-coding-guidelines/main/4-language-usage/1-general/g-1060/ - 2024-03-18 + 2024-03-19 daily https://trivadis.github.io/plsql-and-sql-coding-guidelines/main/4-language-usage/1-general/g-1070/ - 2024-03-18 + 2024-03-19 daily https://trivadis.github.io/plsql-and-sql-coding-guidelines/main/4-language-usage/1-general/g-1080/ - 2024-03-18 + 2024-03-19 daily https://trivadis.github.io/plsql-and-sql-coding-guidelines/main/4-language-usage/2-variables-and-types/1-general/g-2110/ - 2024-03-18 + 2024-03-19 daily https://trivadis.github.io/plsql-and-sql-coding-guidelines/main/4-language-usage/2-variables-and-types/1-general/g-2120/ - 2024-03-18 + 2024-03-19 daily https://trivadis.github.io/plsql-and-sql-coding-guidelines/main/4-language-usage/2-variables-and-types/1-general/g-2130/ - 2024-03-18 + 2024-03-19 daily https://trivadis.github.io/plsql-and-sql-coding-guidelines/main/4-language-usage/2-variables-and-types/1-general/g-2135/ - 2024-03-18 + 2024-03-19 daily https://trivadis.github.io/plsql-and-sql-coding-guidelines/main/4-language-usage/2-variables-and-types/1-general/g-2140/ - 2024-03-18 + 2024-03-19 daily https://trivadis.github.io/plsql-and-sql-coding-guidelines/main/4-language-usage/2-variables-and-types/1-general/g-2145/ - 2024-03-18 + 2024-03-19 daily https://trivadis.github.io/plsql-and-sql-coding-guidelines/main/4-language-usage/2-variables-and-types/1-general/g-2150/ - 2024-03-18 + 2024-03-19 daily https://trivadis.github.io/plsql-and-sql-coding-guidelines/main/4-language-usage/2-variables-and-types/1-general/g-2160/ - 2024-03-18 + 2024-03-19 daily https://trivadis.github.io/plsql-and-sql-coding-guidelines/main/4-language-usage/2-variables-and-types/1-general/g-2170/ - 2024-03-18 + 2024-03-19 daily https://trivadis.github.io/plsql-and-sql-coding-guidelines/main/4-language-usage/2-variables-and-types/1-general/g-2180/ - 2024-03-18 + 2024-03-19 daily https://trivadis.github.io/plsql-and-sql-coding-guidelines/main/4-language-usage/2-variables-and-types/1-general/g-2185/ - 2024-03-18 + 2024-03-19 daily https://trivadis.github.io/plsql-and-sql-coding-guidelines/main/4-language-usage/2-variables-and-types/1-general/g-2190/ - 2024-03-18 + 2024-03-19 daily https://trivadis.github.io/plsql-and-sql-coding-guidelines/main/4-language-usage/2-variables-and-types/2-numeric-data-types/g-2210/ - 2024-03-18 + 2024-03-19 daily https://trivadis.github.io/plsql-and-sql-coding-guidelines/main/4-language-usage/2-variables-and-types/2-numeric-data-types/g-2220/ - 2024-03-18 + 2024-03-19 daily https://trivadis.github.io/plsql-and-sql-coding-guidelines/main/4-language-usage/2-variables-and-types/2-numeric-data-types/g-2230/ - 2024-03-18 + 2024-03-19 daily https://trivadis.github.io/plsql-and-sql-coding-guidelines/main/4-language-usage/2-variables-and-types/3-character-data-types/g-2310/ - 2024-03-18 + 2024-03-19 daily https://trivadis.github.io/plsql-and-sql-coding-guidelines/main/4-language-usage/2-variables-and-types/3-character-data-types/g-2320/ - 2024-03-18 + 2024-03-19 daily https://trivadis.github.io/plsql-and-sql-coding-guidelines/main/4-language-usage/2-variables-and-types/3-character-data-types/g-2330/ - 2024-03-18 + 2024-03-19 daily https://trivadis.github.io/plsql-and-sql-coding-guidelines/main/4-language-usage/2-variables-and-types/3-character-data-types/g-2340/ - 2024-03-18 + 2024-03-19 daily https://trivadis.github.io/plsql-and-sql-coding-guidelines/main/4-language-usage/2-variables-and-types/4-boolean-data-types/g-2410/ - 2024-03-18 + 2024-03-19 daily https://trivadis.github.io/plsql-and-sql-coding-guidelines/main/4-language-usage/2-variables-and-types/5-large-objects/g-2510/ - 2024-03-18 + 2024-03-19 daily https://trivadis.github.io/plsql-and-sql-coding-guidelines/main/4-language-usage/2-variables-and-types/6-cursor-variables/g-2610/ - 2024-03-18 + 2024-03-19 daily https://trivadis.github.io/plsql-and-sql-coding-guidelines/main/4-language-usage/3-dml-and-sql/1-general/g-3110/ - 2024-03-18 + 2024-03-19 daily https://trivadis.github.io/plsql-and-sql-coding-guidelines/main/4-language-usage/3-dml-and-sql/1-general/g-3115/ - 2024-03-18 + 2024-03-19 daily https://trivadis.github.io/plsql-and-sql-coding-guidelines/main/4-language-usage/3-dml-and-sql/1-general/g-3120/ - 2024-03-18 + 2024-03-19 daily https://trivadis.github.io/plsql-and-sql-coding-guidelines/main/4-language-usage/3-dml-and-sql/1-general/g-3130/ - 2024-03-18 + 2024-03-19 daily https://trivadis.github.io/plsql-and-sql-coding-guidelines/main/4-language-usage/3-dml-and-sql/1-general/g-3140/ - 2024-03-18 + 2024-03-19 daily https://trivadis.github.io/plsql-and-sql-coding-guidelines/main/4-language-usage/3-dml-and-sql/1-general/g-3145/ - 2024-03-18 + 2024-03-19 daily https://trivadis.github.io/plsql-and-sql-coding-guidelines/main/4-language-usage/3-dml-and-sql/1-general/g-3150/ - 2024-03-18 + 2024-03-19 daily https://trivadis.github.io/plsql-and-sql-coding-guidelines/main/4-language-usage/3-dml-and-sql/1-general/g-3160/ - 2024-03-18 + 2024-03-19 daily https://trivadis.github.io/plsql-and-sql-coding-guidelines/main/4-language-usage/3-dml-and-sql/1-general/g-3170/ - 2024-03-18 + 2024-03-19 daily https://trivadis.github.io/plsql-and-sql-coding-guidelines/main/4-language-usage/3-dml-and-sql/1-general/g-3180/ - 2024-03-18 + 2024-03-19 daily https://trivadis.github.io/plsql-and-sql-coding-guidelines/main/4-language-usage/3-dml-and-sql/1-general/g-3182/ - 2024-03-18 + 2024-03-19 daily https://trivadis.github.io/plsql-and-sql-coding-guidelines/main/4-language-usage/3-dml-and-sql/1-general/g-3183/ - 2024-03-18 + 2024-03-19 daily https://trivadis.github.io/plsql-and-sql-coding-guidelines/main/4-language-usage/3-dml-and-sql/1-general/g-3185/ - 2024-03-18 + 2024-03-19 daily https://trivadis.github.io/plsql-and-sql-coding-guidelines/main/4-language-usage/3-dml-and-sql/1-general/g-3190/ - 2024-03-18 + 2024-03-19 daily https://trivadis.github.io/plsql-and-sql-coding-guidelines/main/4-language-usage/3-dml-and-sql/1-general/g-3195/ - 2024-03-18 + 2024-03-19 daily https://trivadis.github.io/plsql-and-sql-coding-guidelines/main/4-language-usage/3-dml-and-sql/2-bulk-operations/g-3210/ - 2024-03-18 + 2024-03-19 daily https://trivadis.github.io/plsql-and-sql-coding-guidelines/main/4-language-usage/3-dml-and-sql/2-bulk-operations/g-3220/ - 2024-03-18 + 2024-03-19 daily https://trivadis.github.io/plsql-and-sql-coding-guidelines/main/4-language-usage/3-dml-and-sql/3-transaction-control/g-3310/ - 2024-03-18 + 2024-03-19 daily https://trivadis.github.io/plsql-and-sql-coding-guidelines/main/4-language-usage/3-dml-and-sql/3-transaction-control/g-3320/ - 2024-03-18 + 2024-03-19 daily https://trivadis.github.io/plsql-and-sql-coding-guidelines/main/4-language-usage/3-dml-and-sql/3-transaction-control/g-3330/ - 2024-03-18 + 2024-03-19 daily https://trivadis.github.io/plsql-and-sql-coding-guidelines/main/4-language-usage/4-control-structures/1-cursor/g-4110/ - 2024-03-18 + 2024-03-19 daily https://trivadis.github.io/plsql-and-sql-coding-guidelines/main/4-language-usage/4-control-structures/1-cursor/g-4120/ - 2024-03-18 + 2024-03-19 daily https://trivadis.github.io/plsql-and-sql-coding-guidelines/main/4-language-usage/4-control-structures/1-cursor/g-4130/ - 2024-03-18 + 2024-03-19 daily https://trivadis.github.io/plsql-and-sql-coding-guidelines/main/4-language-usage/4-control-structures/1-cursor/g-4140/ - 2024-03-18 + 2024-03-19 daily https://trivadis.github.io/plsql-and-sql-coding-guidelines/main/4-language-usage/4-control-structures/2-case-if-decode-nvl-nvl2-coalesce/g-4210/ - 2024-03-18 + 2024-03-19 daily https://trivadis.github.io/plsql-and-sql-coding-guidelines/main/4-language-usage/4-control-structures/2-case-if-decode-nvl-nvl2-coalesce/g-4220/ - 2024-03-18 + 2024-03-19 daily https://trivadis.github.io/plsql-and-sql-coding-guidelines/main/4-language-usage/4-control-structures/2-case-if-decode-nvl-nvl2-coalesce/g-4230/ - 2024-03-18 + 2024-03-19 daily https://trivadis.github.io/plsql-and-sql-coding-guidelines/main/4-language-usage/4-control-structures/2-case-if-decode-nvl-nvl2-coalesce/g-4240/ - 2024-03-18 + 2024-03-19 daily https://trivadis.github.io/plsql-and-sql-coding-guidelines/main/4-language-usage/4-control-structures/2-case-if-decode-nvl-nvl2-coalesce/g-4250/ - 2024-03-18 + 2024-03-19 daily https://trivadis.github.io/plsql-and-sql-coding-guidelines/main/4-language-usage/4-control-structures/2-case-if-decode-nvl-nvl2-coalesce/g-4260/ - 2024-03-18 + 2024-03-19 daily https://trivadis.github.io/plsql-and-sql-coding-guidelines/main/4-language-usage/4-control-structures/2-case-if-decode-nvl-nvl2-coalesce/g-4270/ - 2024-03-18 + 2024-03-19 daily https://trivadis.github.io/plsql-and-sql-coding-guidelines/main/4-language-usage/4-control-structures/3-flow-control/g-4310/ - 2024-03-18 + 2024-03-19 daily https://trivadis.github.io/plsql-and-sql-coding-guidelines/main/4-language-usage/4-control-structures/3-flow-control/g-4320/ - 2024-03-18 + 2024-03-19 daily https://trivadis.github.io/plsql-and-sql-coding-guidelines/main/4-language-usage/4-control-structures/3-flow-control/g-4325/ - 2024-03-18 + 2024-03-19 daily https://trivadis.github.io/plsql-and-sql-coding-guidelines/main/4-language-usage/4-control-structures/3-flow-control/g-4330/ - 2024-03-18 + 2024-03-19 daily https://trivadis.github.io/plsql-and-sql-coding-guidelines/main/4-language-usage/4-control-structures/3-flow-control/g-4340/ - 2024-03-18 + 2024-03-19 daily https://trivadis.github.io/plsql-and-sql-coding-guidelines/main/4-language-usage/4-control-structures/3-flow-control/g-4350/ - 2024-03-18 + 2024-03-19 daily https://trivadis.github.io/plsql-and-sql-coding-guidelines/main/4-language-usage/4-control-structures/3-flow-control/g-4360/ - 2024-03-18 + 2024-03-19 daily https://trivadis.github.io/plsql-and-sql-coding-guidelines/main/4-language-usage/4-control-structures/3-flow-control/g-4365/ - 2024-03-18 + 2024-03-19 daily https://trivadis.github.io/plsql-and-sql-coding-guidelines/main/4-language-usage/4-control-structures/3-flow-control/g-4370/ - 2024-03-18 + 2024-03-19 daily https://trivadis.github.io/plsql-and-sql-coding-guidelines/main/4-language-usage/4-control-structures/3-flow-control/g-4375/ - 2024-03-18 + 2024-03-19 daily https://trivadis.github.io/plsql-and-sql-coding-guidelines/main/4-language-usage/4-control-structures/3-flow-control/g-4380/ - 2024-03-18 + 2024-03-19 daily https://trivadis.github.io/plsql-and-sql-coding-guidelines/main/4-language-usage/4-control-structures/3-flow-control/g-4385/ - 2024-03-18 + 2024-03-19 daily https://trivadis.github.io/plsql-and-sql-coding-guidelines/main/4-language-usage/4-control-structures/3-flow-control/g-4387/ - 2024-03-18 + 2024-03-19 daily https://trivadis.github.io/plsql-and-sql-coding-guidelines/main/4-language-usage/4-control-structures/3-flow-control/g-4390/ - 2024-03-18 + 2024-03-19 daily https://trivadis.github.io/plsql-and-sql-coding-guidelines/main/4-language-usage/4-control-structures/3-flow-control/g-4395/ - 2024-03-18 + 2024-03-19 daily https://trivadis.github.io/plsql-and-sql-coding-guidelines/main/4-language-usage/5-exception-handling/g-5010/ - 2024-03-18 + 2024-03-19 daily https://trivadis.github.io/plsql-and-sql-coding-guidelines/main/4-language-usage/5-exception-handling/g-5020/ - 2024-03-18 + 2024-03-19 daily https://trivadis.github.io/plsql-and-sql-coding-guidelines/main/4-language-usage/5-exception-handling/g-5030/ - 2024-03-18 + 2024-03-19 daily https://trivadis.github.io/plsql-and-sql-coding-guidelines/main/4-language-usage/5-exception-handling/g-5040/ - 2024-03-18 + 2024-03-19 daily https://trivadis.github.io/plsql-and-sql-coding-guidelines/main/4-language-usage/5-exception-handling/g-5050/ - 2024-03-18 + 2024-03-19 daily https://trivadis.github.io/plsql-and-sql-coding-guidelines/main/4-language-usage/5-exception-handling/g-5060/ - 2024-03-18 + 2024-03-19 daily https://trivadis.github.io/plsql-and-sql-coding-guidelines/main/4-language-usage/5-exception-handling/g-5070/ - 2024-03-18 + 2024-03-19 daily https://trivadis.github.io/plsql-and-sql-coding-guidelines/main/4-language-usage/5-exception-handling/g-5080/ - 2024-03-18 + 2024-03-19 daily https://trivadis.github.io/plsql-and-sql-coding-guidelines/main/4-language-usage/6-dynamic-sql/g-6010/ - 2024-03-18 + 2024-03-19 daily https://trivadis.github.io/plsql-and-sql-coding-guidelines/main/4-language-usage/6-dynamic-sql/g-6020/ - 2024-03-18 + 2024-03-19 daily https://trivadis.github.io/plsql-and-sql-coding-guidelines/main/4-language-usage/7-stored-objects/1-general/g-7110/ - 2024-03-18 + 2024-03-19 daily https://trivadis.github.io/plsql-and-sql-coding-guidelines/main/4-language-usage/7-stored-objects/1-general/g-7120/ - 2024-03-18 + 2024-03-19 daily https://trivadis.github.io/plsql-and-sql-coding-guidelines/main/4-language-usage/7-stored-objects/1-general/g-7125/ - 2024-03-18 + 2024-03-19 daily https://trivadis.github.io/plsql-and-sql-coding-guidelines/main/4-language-usage/7-stored-objects/1-general/g-7130/ - 2024-03-18 + 2024-03-19 daily https://trivadis.github.io/plsql-and-sql-coding-guidelines/main/4-language-usage/7-stored-objects/1-general/g-7140/ - 2024-03-18 + 2024-03-19 daily https://trivadis.github.io/plsql-and-sql-coding-guidelines/main/4-language-usage/7-stored-objects/1-general/g-7150/ - 2024-03-18 + 2024-03-19 daily https://trivadis.github.io/plsql-and-sql-coding-guidelines/main/4-language-usage/7-stored-objects/1-general/g-7160/ - 2024-03-18 + 2024-03-19 daily https://trivadis.github.io/plsql-and-sql-coding-guidelines/main/4-language-usage/7-stored-objects/1-general/g-7170/ - 2024-03-18 + 2024-03-19 daily https://trivadis.github.io/plsql-and-sql-coding-guidelines/main/4-language-usage/7-stored-objects/2-packages/g-7210/ - 2024-03-18 + 2024-03-19 daily https://trivadis.github.io/plsql-and-sql-coding-guidelines/main/4-language-usage/7-stored-objects/2-packages/g-7220/ - 2024-03-18 + 2024-03-19 daily https://trivadis.github.io/plsql-and-sql-coding-guidelines/main/4-language-usage/7-stored-objects/2-packages/g-7230/ - 2024-03-18 + 2024-03-19 daily https://trivadis.github.io/plsql-and-sql-coding-guidelines/main/4-language-usage/7-stored-objects/2-packages/g-7250/ - 2024-03-18 + 2024-03-19 daily https://trivadis.github.io/plsql-and-sql-coding-guidelines/main/4-language-usage/7-stored-objects/3-procedures/g-7310/ - 2024-03-18 + 2024-03-19 daily https://trivadis.github.io/plsql-and-sql-coding-guidelines/main/4-language-usage/7-stored-objects/3-procedures/g-7320/ - 2024-03-18 + 2024-03-19 daily https://trivadis.github.io/plsql-and-sql-coding-guidelines/main/4-language-usage/7-stored-objects/3-procedures/g-7330/ - 2024-03-18 + 2024-03-19 daily https://trivadis.github.io/plsql-and-sql-coding-guidelines/main/4-language-usage/7-stored-objects/4-functions/g-7410/ - 2024-03-18 + 2024-03-19 daily https://trivadis.github.io/plsql-and-sql-coding-guidelines/main/4-language-usage/7-stored-objects/4-functions/g-7420/ - 2024-03-18 + 2024-03-19 daily https://trivadis.github.io/plsql-and-sql-coding-guidelines/main/4-language-usage/7-stored-objects/4-functions/g-7430/ - 2024-03-18 + 2024-03-19 daily https://trivadis.github.io/plsql-and-sql-coding-guidelines/main/4-language-usage/7-stored-objects/4-functions/g-7440/ - 2024-03-18 + 2024-03-19 daily https://trivadis.github.io/plsql-and-sql-coding-guidelines/main/4-language-usage/7-stored-objects/4-functions/g-7450/ - 2024-03-18 + 2024-03-19 daily https://trivadis.github.io/plsql-and-sql-coding-guidelines/main/4-language-usage/7-stored-objects/4-functions/g-7460/ - 2024-03-18 + 2024-03-19 daily https://trivadis.github.io/plsql-and-sql-coding-guidelines/main/4-language-usage/7-stored-objects/5-oracle-supplied-packages/g-7510/ - 2024-03-18 + 2024-03-19 daily https://trivadis.github.io/plsql-and-sql-coding-guidelines/main/4-language-usage/7-stored-objects/6-object-types/object-types/ - 2024-03-18 + 2024-03-19 daily https://trivadis.github.io/plsql-and-sql-coding-guidelines/main/4-language-usage/7-stored-objects/7-triggers/g-7710/ - 2024-03-18 + 2024-03-19 daily https://trivadis.github.io/plsql-and-sql-coding-guidelines/main/4-language-usage/7-stored-objects/7-triggers/g-7720/ - 2024-03-18 + 2024-03-19 daily https://trivadis.github.io/plsql-and-sql-coding-guidelines/main/4-language-usage/7-stored-objects/7-triggers/g-7730/ - 2024-03-18 + 2024-03-19 daily https://trivadis.github.io/plsql-and-sql-coding-guidelines/main/4-language-usage/7-stored-objects/7-triggers/g-7740/ - 2024-03-18 + 2024-03-19 daily https://trivadis.github.io/plsql-and-sql-coding-guidelines/main/4-language-usage/7-stored-objects/8-sequences/g-7810/ - 2024-03-18 + 2024-03-19 daily https://trivadis.github.io/plsql-and-sql-coding-guidelines/main/4-language-usage/7-stored-objects/9-sql-macros/g-7910/ - 2024-03-18 + 2024-03-19 daily https://trivadis.github.io/plsql-and-sql-coding-guidelines/main/4-language-usage/8-patterns/1-checking-the-number-of-rows/g-8110/ - 2024-03-18 + 2024-03-19 daily https://trivadis.github.io/plsql-and-sql-coding-guidelines/main/4-language-usage/8-patterns/1-checking-the-number-of-rows/g-8120/ - 2024-03-18 + 2024-03-19 daily https://trivadis.github.io/plsql-and-sql-coding-guidelines/main/4-language-usage/8-patterns/2-access-objects-of-foreign-application-schemas/g-8210/ - 2024-03-18 + 2024-03-19 daily https://trivadis.github.io/plsql-and-sql-coding-guidelines/main/4-language-usage/8-patterns/3-validating-input-parameter-size/g-8310/ - 2024-03-18 + 2024-03-19 daily https://trivadis.github.io/plsql-and-sql-coding-guidelines/main/4-language-usage/8-patterns/4-ensure-single-execution-at-a-time-of-a-program-unit/g-8410/ - 2024-03-18 + 2024-03-19 daily https://trivadis.github.io/plsql-and-sql-coding-guidelines/main/4-language-usage/8-patterns/5-use-dbms-application-info-package-to-follow-progress-of-a-process/g-8510/ - 2024-03-18 + 2024-03-19 daily https://trivadis.github.io/plsql-and-sql-coding-guidelines/main/4-language-usage/9-function-usage/g-9010/ - 2024-03-18 + 2024-03-19 daily https://trivadis.github.io/plsql-and-sql-coding-guidelines/main/4-language-usage/9-function-usage/g-9020/ - 2024-03-18 + 2024-03-19 daily https://trivadis.github.io/plsql-and-sql-coding-guidelines/main/4-language-usage/9-function-usage/g-9030/ - 2024-03-18 + 2024-03-19 daily https://trivadis.github.io/plsql-and-sql-coding-guidelines/main/4-language-usage/9-function-usage/g-9040/ - 2024-03-18 + 2024-03-19 daily https://trivadis.github.io/plsql-and-sql-coding-guidelines/main/5-complexity-analysis/complexity-analysis/ - 2024-03-18 + 2024-03-19 daily https://trivadis.github.io/plsql-and-sql-coding-guidelines/main/6-code-reviews/code-reviews/ - 2024-03-18 + 2024-03-19 daily https://trivadis.github.io/plsql-and-sql-coding-guidelines/main/7-tool-support/1-db-codecop-sqldev/ - 2024-03-18 + 2024-03-19 daily https://trivadis.github.io/plsql-and-sql-coding-guidelines/main/7-tool-support/2-db-codecop-sonarqube/ - 2024-03-18 + 2024-03-19 daily https://trivadis.github.io/plsql-and-sql-coding-guidelines/main/7-tool-support/3-db-codecop-cli/ - 2024-03-18 + 2024-03-19 daily https://trivadis.github.io/plsql-and-sql-coding-guidelines/main/7-tool-support/4-db-codecop-validators/ - 2024-03-18 + 2024-03-19 daily https://trivadis.github.io/plsql-and-sql-coding-guidelines/main/7-tool-support/5-plscope-utils/ - 2024-03-18 + 2024-03-19 daily https://trivadis.github.io/plsql-and-sql-coding-guidelines/main/7-tool-support/6-formatter-settings/ - 2024-03-18 + 2024-03-19 daily https://trivadis.github.io/plsql-and-sql-coding-guidelines/main/9-appendix/appendix/ - 2024-03-18 + 2024-03-19 daily \ No newline at end of file diff --git a/main/sitemap.xml.gz b/main/sitemap.xml.gz index 58eb997fea01c29773d8963edaf2feebb543038b..9e7047f880957c62a198ebc6a2d444738aa1581a 100644 GIT binary patch delta 30 mcmey(`J0nnzMF%Cz3}Hm_8W|cHa-w$;kahxb9`3=0|NlEwhMCr delta 30 mcmey(`J0nnzMF$%h2W2g>^B&XY

JC7 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 z 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%0D)CfO&n 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