En este apartado nos vamos a centrar en conocer cuáles son las unidades léxicas que podemos utilizar para escribir código en PL/SQL. Al igual que en nuestra lengua podemos distinguir diferentes unidades léxicas como palabras, signos de puntuación, etc. En los lenguajes de programación también existen diferentes unidades léxicas que definen los elementos más pequeños que tienen sentido propio y que al combinarlos de manera adecuada, siguiendo las reglas de sintaxis, dan lugar a sentencias válidas sintácticamente.
PL/SQL es un lenguaje no sensible a las mayúsculas, por lo que será equivalente escribir en mayúsculas o minúsculas, excepto cuando hablemos de literales de tipo cadena o de tipo carácter.
Cada unidad léxica puede estar separada por espacios (debe estar separada por espacios si se trata de 2 identificadores), por saltos de línea o por tabuladores para aumentar la legibilidad del código escrito.
IF A=CLAVE THEN ENCONTRADO:=TRUE;ELSE ENCONTRADO:=FALSE;END IF;
Sería equivalente a escribir la siguiente línea:
if a=clave then encontrado:=true;else encontrado:=false;end if;
Y también sería equivalente a este otro fragmento, mucho más fácil de interpretar:
IF a = clave THEN
encontrado := TRUE;
ELSE
encontrado := FALSE;
END IF;
Las unidades léxicas se pueden clasificar en:
- Delimitadores.
- Identificadores.
- Literales.
- Comentarios.
Delimitadores
PL/SQL tiene un conjunto de símbolos denominados delimitadores utilizados para representar operaciones entre tipos de datos, delimitar comentarios, etc. En la siguiente tabla puedes ver un resumen de los mismos.
Delimitadores Simples. | Delimitadores Compuestos. | ||
---|---|---|---|
Símbolo. | Significado. | Símbolo. | Significado. |
+ | Suma. | ** | Exponenciación. |
% | Indicador de atributo. | <> | Distinto. |
. | Selector. | ¡= | Distinto. |
/ | División. | <= | Menor o igual. |
( | Delimitador de lista. | >= | Mayor o igual. |
) | Delimitador de lista. | .. | Rango. |
: | Variable host. | || | Concatenación. |
, | Separador de elementos. | << | Delimitador de etiquetas. |
* | Producto. | >> | Delimitador de etiquetas. |
" | Delimitador de identificador acotado. | -- | Comentario de una línea. |
= | Igual relacional. | /* | Comentario de varias líneas. |
< | Menor. | */ | Comentario de varias líneas. |
> | Mayor. | := | Asignación. |
@ | Indicador de acceso remoto. | => | Selector de nombre de parámetro. |
; | Terminador de sentencias. | ||
- | Resta/negación. |
Identificadores
Los identificadores en PL/SQL, como en cualquier otro lenguaje de programación, son utilizados para nombrar elementos de nuestros programas. A la hora de utilizar los identificadores debemos tener en cuenta los siguientes aspectos:
- Un identificador es una letra seguida opcionalmente de letras, números, $, _, #.
- No podemos utilizar como identificador una palabra reservada.
- Ejemplos válidos: X, A1, codigo_postal.
- Ejemplos no válidos: rock&roll, on/off.
- PL/SQL nos permite además definir los identificadores acotados, en los que podemos usar cualquier carácter con una longitud máxima de 30 y deben estar delimitados por ". Ejemplo: "X*Y".
- En PL/SQL existen algunos identificadores predefinidos y que tienen un significado especial ya que nos permitirán darle sentido sintáctico a nuestros programas. Estos identificadores son las palabras reservadas y no las podemos utilizar como identificadores en nuestros programas. Ejemplo: IF, THEN, ELSE ...
- Algunas palabras reservadas para PL/SQL no lo son para SQL, por lo que podríamos tener una tabla con una columna llamada 'type' por ejemplo, que nos daría un error de compilación al referirnos a ella en PL/SQL. La solución sería acotarlos. SELECT "TYPE" …
Literales
Los literales se utilizan en las comparaciones de valores o para asignar valores concretos a los identificadores que actúan como variables o constantes. Para expresar estos literales tendremos en cuenta que:
- Los literales numéricos se expresarán por medio de notación decimal o de notación exponencial. Ejemplos: 234, +341, 2e3, -2E-3, 7.45, 8.1e3.
- Los literales tipo carácter y tipo cadena se deben delimitar con unas comillas simples.
- Los literales lógicos son TRUE y FALSE.
- El literal NULL que expresa que una variable no tiene ningún valor asignado.
Comentarios
En los lenguajes de programación es muy conveniente utilizar comentarios en mitad del código. Los comentarios no tienen ningún efecto sobre el código pero sí ayudan mucho al programador o la programadora a recordar qué se está intentando hacer en cada caso (más aún cuando el código es compartido entre varias personas que se dedican a mejorarlo o corregirlo).
En PL/SQL podemos utilizar dos tipos de comentarios:
- Los comentarios de una línea se expresaran por medio del delimitador --. Ejemplo:
a:=b; --asignación
- Los comentarios de varias líneas se acotarán por medio de los delimitadores /* y */. Ejemplo:
/* Primera línea de comentarios.
Segunda línea de comentarios. */