Skip to content

Commit 5af501b

Browse files
committed
Fix #30 - Created rule G-7330: Always assign values to OUT parameters.
1 parent 7a6c975 commit 5af501b

File tree

1 file changed

+39
-0
lines changed
  • docs/4-language-usage/7-stored-objects/3-procedures

1 file changed

+39
-0
lines changed
Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
# G-7330: Always assign values to OUT parameters.
2+
3+
!!! tip "Major"
4+
Maintainability, Testability
5+
6+
## Reason
7+
8+
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.
9+
10+
## Example (bad)
11+
12+
``` sql
13+
create or replace package body my_package is
14+
procedure greet(
15+
in_name in varchar2
16+
, out_greeting out varchar2
17+
) is
18+
l_message varchar2(100);
19+
begin
20+
l_message := 'Hello, ' || in_name;
21+
end my_procedure;
22+
end my_package;
23+
/
24+
```
25+
26+
## Example (good)
27+
28+
``` sql
29+
create or replace package body my_package is
30+
procedure greet(
31+
in_name in varchar2
32+
, out_greeting out varchar2
33+
) is
34+
begin
35+
out_greeting := 'Hello, ' || in_name;
36+
end my_procedure;
37+
end my_package;
38+
/
39+
```

0 commit comments

Comments
 (0)