Coding Style

Formatting

Rules

RuleDescription
1Keywords are written uppercase, names are written in lowercase.
23 space indention.
3One command per line.
4KeywordsLOOP,ELSE,ELSIF,END IF,WHEN on a new line.
5Commas in front of separated elements.
6Call parameters aligned, operators aligned, values aligned.
7SQL keywords are right aligned within a SQL command.
8Within a program unit only line comments-- are used.
9Brackets are used when needed or when helpful to clarify a construct.

Example

PROCEDURE set_salary(in_employee_id IN employees.employee_id%TYPE) IS   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 => in_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;

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

TagMeaningExample
paramDescription of a parameter.@param in_string input string
returnDescription of the return value of a function.@return result of the calculation
throwsDescribe 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.

/**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 <b>Call Example:</b><pre>   SELECT TVDAssert.valid_sql_name('TEST') from dual;   SELECT TVDAssert.valid_sql_name('123') from dual</pre>*/