== Why is this an issue? Each function and procedure should be documented with a comment either just before or right after the ``++IS++`` or ``++AS++`` keyword it to explain its goal and how it works. === Noncompliant code example [source,sql] ---- CREATE FUNCTION my_function RETURN PLS_INTEGER AS BEGIN RETURN 42; END; / CREATE PACKAGE my_package AS PROCEDURE my_procedure; FUNCTION my_function RETURN PLS_INTEGER; END my_package; / ---- === Compliant solution [source,sql] ---- CREATE FUNCTION my_function RETURN PLS_INTEGER AS -- Computes the meaning of life BEGIN RETURN 42; END; / CREATE PACKAGE my_package AS -- This is documentation PROCEDURE my_procedure; /* This is documentation */ FUNCTION my_function RETURN PLS_INTEGER; END my_package; / ---- === Exceptions Functions are procedures declared in package bodies, and anonymous PL/SQL blocks do not have to be documented. [source,sql] ---- DECLARE PROCEDURE helper_procedure AS BEGIN NULL; END; BEGIN helper_procedure; END; / CREATE PACKAGE my_package AS -- This is documentation PROCEDURE public_procedure; END my_package; / CREATE PACKAGE BODY my_package AS PROCEDURE helper_procedure AS BEGIN NULL; END; PROCEDURE public_procedure AS BEGIN helper_procedure; END; END my_package; / ---- ifdef::env-github,rspecator-view[] ''' == Implementation Specification (visible only on this page) === Message Add a documenting comment to this [function|procedure] "{XXX}". endif::env-github,rspecator-view[]