Coding Style
Formatting
Rules
Rule | Description |
---|---|
1 | Keywords are written uppercase, names are written in lowercase. |
2 | 3 space indention. |
3 | One command per line. |
4 | Keywords LOOP , ELSE , ELSIF , END IF , WHEN on a new line. |
5 | Commas in front of separated elements. |
6 | Call parameters aligned, operators aligned, values aligned. |
7 | SQL keywords are right aligned within a SQL command. |
8 | Within a program unit only line comments -- are used. |
9 | Brackets 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
Tag | Meaning | Example |
---|---|---|
param |
Description of a parameter. | @param in_string input string |
return |
Description of the return value of a function. | @return result of the calculation |
throws |
Describe 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>
*/