Convenio de codificación del lenguaje PL/SQL
- Área: Convenios de Codificación Generales
- Tipo de pauta: Directriz
- Carácter de la pauta: Obligatoria
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ítulo | Carácter |
---|---|
Formato del código | Obligatoria |
Caracteres no permitidos | Obligatoria |
Estructura de la línea | Obligatoria |
Alienación y sangrado. | Obligatoria |
Bloque anónimo | Obligatoria |
Condiciones | Obligatoria |
Bucles | Obligatoria |
Sentencia Select | Obligatoria |
Sentencias Insert/Delete/Update | Obligatoria |
Expresiones Largas | Obligatoria |
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.