
Inline adoc files when they are included exactly once. Also fix language tags because this inlining gives us better information on what language the code is written in.
54 lines
930 B
Plaintext
54 lines
930 B
Plaintext
== Why is this an issue?
|
|
|
|
Having a bunch of standalone functions or procedures reduces maintainability because it becomes harder to find them and to see how they are related. Instead, they should be logically grouped into meaningful packages.
|
|
|
|
|
|
=== Noncompliant code example
|
|
|
|
[source,sql]
|
|
----
|
|
CREATE PROCEDURE show_name(name VARCHAR2) AS -- Non-Compliant
|
|
BEGIN
|
|
DBMS_OUTPUT.PUT_LINE('Name: ' || name);
|
|
END;
|
|
/
|
|
|
|
DROP PROCEDURE show_name;
|
|
----
|
|
|
|
|
|
=== Compliant solution
|
|
|
|
[source,sql]
|
|
----
|
|
CREATE PACKAGE employee AS
|
|
PROCEDURE show_name;
|
|
END;
|
|
/
|
|
|
|
CREATE PACKAGE BODY employee AS
|
|
name VARCHAR2(42);
|
|
|
|
PROCEDURE show_name AS -- Compliant
|
|
BEGIN
|
|
DBMS_OUTPUT.PUT_LINE('Name: ' || name);
|
|
END;
|
|
END;
|
|
/
|
|
|
|
DROP PACKAGE employee;
|
|
----
|
|
|
|
ifdef::env-github,rspecator-view[]
|
|
|
|
'''
|
|
== Implementation Specification
|
|
(visible only on this page)
|
|
|
|
=== Message
|
|
|
|
Move this (function|procedure) to a package.
|
|
|
|
|
|
endif::env-github,rspecator-view[]
|