42 lines
880 B
Plaintext
42 lines
880 B
Plaintext
In a CREATE PACKAGE BODY, the purpose of the initialization section is to set the initial values of the package's global variables. It is therefore surprising to find a RETURN statement there, as all its following statements will be unreachable.
|
|
|
|
|
|
== Noncompliant Code Example
|
|
|
|
----
|
|
SET SERVEROUTPUT ON
|
|
|
|
CREATE OR REPLACE PACKAGE foo AS
|
|
FUNCTION getBar RETURN PLS_INTEGER;
|
|
bar PLS_INTEGER;
|
|
END;
|
|
/
|
|
|
|
CREATE OR REPLACE PACKAGE BODY foo AS
|
|
FUNCTION getBar RETURN PLS_INTEGER AS
|
|
BEGIN
|
|
RETURN bar; -- Compliant
|
|
END;
|
|
BEGIN
|
|
bar := 42;
|
|
DBMS_OUTPUT.PUT_LINE('package loaded');
|
|
RETURN; -- Noncompliant
|
|
DBMS_OUTPUT.PUT_LINE('this is unreachable code');
|
|
END;
|
|
/
|
|
|
|
DROP PACKAGE BODY foo;
|
|
|
|
DROP PACKAGE foo;
|
|
----
|
|
|
|
ifdef::env-github,rspecator-view[]
|
|
|
|
'''
|
|
== Implementation Specification
|
|
(visible only on this page)
|
|
|
|
include::message.adoc[]
|
|
|
|
endif::env-github,rspecator-view[]
|