Convenio de codificación del lenguaje PL/SQL

LIBP-0009 (Libro de pautas)

Las convenciones a la hora de codificar ayudan a la uniformidad y legibilidad del código fuente, facilitando su mantenimiento por terceros y eliminando la dependencia del desarrollador. 

A continuación se ofrece una convención de código de los diferentes elementos que componen el lenguaje PL/SQL.

Pautas

TítuloCarácter
Formato del código Obligatoria
Caracteres no permitidosObligatoria
Estructura de la líneaObligatoria
Alienación y sangrado.Obligatoria
Bloque anónimoObligatoria
Condiciones Obligatoria
BuclesObligatoria
Sentencia SelectObligatoria
Sentencias Insert/Delete/UpdateObligatoria
Expresiones LargasObligatoria

Formato del código

Algunas de las directrices marcadas para el formato del código pueden estar automatizadas a través de la herramienta utilizada para el desarrollo, por lo que pueden “pasar a un segundo plano” durante la construcción del componente. Es recomendable seguir las directrices marcadas en aquellos casos que no estén automatizadas para conseguir un código con un formato correcto, legible y eficiente.

Caracteres no permitidos

No se usará ni la letra ñ ni las vocales con tilde, salvo en comentarios.

Estructura de la línea

No están permitidas más de dos líneas en blanco consecutivas, así como líneas con una longitud mayor a 120 caracteres por línea.

Alienación y sangrado.

Se establece una tabulación de tres caracteres. Estos deben ser espacios en blanco y no el carácter de tabulador.

Bloque anónimo

Las palabras clave Begin, Exception y End se encontrarán alineadas, teniendo una tabulación en las líneas internas. Dentro del bloque de excepciones, la sentencia When aparece desplazada a la derecha respecto a Exception y las sentencias incluidas se desplazan a la derecha respecto a la palabra When.

BEGIN
   NULL;
EXCEPTION
   WHEN THE OTHERS THEN
      NULL;
END;

Condiciones

Las palabras claves If, Else, Elseif, End If se encuentran alineadas en la misma columna para la misma sentencia, teniendo un desplazamiento a la derecha con las palabras internas. La palabra reservada Then se pondrá a continuación de la condición.

IF <condiciones> THEN
   <sentencias>
ELSIF <condiciones> THEN
   <sentencias>
ELSE
   <sentencias>
END IF;

Bucles

Las palabras claves Loop y End Loop se encuentran alineadas en la misma columna para la misma sentencia, teniendo un desplazamiento a la derecha en las líneas siguientes. Las palabras claves While/For y End Loop se encontrarán en la misma columna para la misma sentencia, teniendo un desplazamiento a la derecha en las líneas internas, la palabra clave Loop se pondrá a continuación de la condición.

Sentencia Select

Las distintas cláusulas (Into, From, Where, Orde By, Start With, Connect, Having, Group By..) irán siempre al comienzo de una nueva línea de la misma manera que los operadores lógicos (OPE).

SELECT <campos>,
           <campos>
      INTO <variables>,
           <variables>
      FROM <tablas>,
           <tablas>
     WHERE <condiciones>
       OPE <condiciones>
START WITH <expresión>
CONNECT BY <expresión>
  ORDER BY <campos>

Sentencias Insert/Delete/Update

Se deberá comenzar en una nueva línea (Where, Set, Values) de forma análoga a la sentencia Select.

// Ejemplo Insert

INSERT INTO empleados
       VALUES ('D1','Director',null);

// Ejemplo Delete
DELETE FROM empleados
       WHERE Salario > 3000;

// Ejemplo Update
UPDATE empleados
   SET First_Name = UPPER(First_Name)
   WHERE ID = '01';

Expresiones Largas

Si una expresión es excesivamente larga se ha de cortar en líneas, de forma que el comienzo de todas las líneas esté en la misma columna. El corte ha de ser tal que no se pierda la legibilidad.