Identifier Naming Standards
Think of all identifiers as consisting of 4 parts: <Scope><Type><Descriptive Identifier><Usage>.
Of the 4 elements only the descriptive identifier is required by Oracle. However, the other elements serve to make the name better self-documenting code. At UNF, the first three should always be used. The usage element need only be used when appropriate.
Scope
Scope is the locality of reference within a package, procedure, or function. Knowing this is invaluable to the maintenance programmer. We keep this simple with only three designations: global (g), local (l), and parameter (p).
Examples:
Code | Scope | Example |
---|---|---|
g | Global | g_temp |
l | Local | l_temp |
p | Parameter | p_param |
Type
The type portion of the name describes the identifier's structure. There are simple types, such as constants and variables. In addition, there are more complex, aggregate types, such as records, tables, and cursors.
Type | Structure |
---|---|
c | Constant |
v | Variable |
e | Exception |
cur | Cursor |
rec | Record |
tbl | Table |
There are also special constructs that are available in PL/SQL. They are Type, Subtype and Cursor Variables.
Type | Structure |
---|---|
cvr | Cursor Variable |
typ | Type |
stp | Sub-type |
Examples:
Notice that we combine the scope with the type as the first portion of the identifier name.
Example | Description |
---|---|
lc_tax_rate | Local constant |
gv_counter | Global variable |
lrec_spriden | Local record type |
pv_student_id | Parameter variable |
prow_sprtele | Parameter of ROWTYPE |
Descriptive Identifier
The Descriptive Identifier is the most important part of a name. This can be a single word or a phrase. Deciding the lengths of names is always a trade off between length for documentation and brevity for typing purposes. So we want to be optimal. The name should pretty much tell the reader the purpose of the identifier. In most cases, the descriptive portion of the identifier should be comprised of a primary area such as student, address, or employee and a modifier that makes it more readable. The modifier(s) may precede and/or follow the primary area.
Examples:
mailing_address
student_last_name
employee_number
Usage
In certain cases, a suffix should be used to qualify the identifier further to document the usage of the variable. For example, a suffix is used to denote the type of parameter, as in IN, OUT, or IN OUT or to indicate that the variable is a FOR .. LOOP index (which is not declared).
Usage | Description | Example |
---|---|---|
i | Input only parameter | pv_years_service_i |
o | Output only parameter | pv_max_salary_o |
io | Both input and output | pv_student_class_io |
idx | FOR .. LOOP index | lv_employee_idx |