PL/SQL

El lenguaje propietario de Oracle es el que vamos a ver en éste y en próximos posts para conocer cómo interactuar a nivel de código con nuestro Oracle SQL Developer, es decir, desarrollar programas que accedan a nuestras bases de datos Oracle. Para ver la salida de la ejecución de dichos programas iremos antes de nada al menú "Ver" de nuestro entorno Oracle SQL Developer, y haremos visible la ventana "Salida de DBMS" (en esta ventana pulsaremos sobre el botón "Activar DBMS_OUTPUT para la conexión que tengamos abierta).

La estructura de todo programa PL/SQL contiene estos 4 bloques:
DECLARE   
-- Aquí declaramos nuestras variables
BEGIN
-- sentencias
EXCEPTION
-- Manejadores de errores
END;
/

Nota.-  Los bloques DECLARE y EXCEPTION son opcionales.

Los principales tipos de datos que podemos definir para nuestras variables son:
NUMBER(longitud total, nº decimales) : datos numéricos
CHAR : strings de longitud fija
VARCHAR2(longitud máxima) : strings de longitud variable (hasta "n" caracteres)
DATE : valores Fecha (formato por defecto DD-MMM-AA)
BOOLEAN : valores True, False o NULL

Veamos un sencillo ejemplo para visualizar la suma de dos variables numéricas:
DECLARE
N1 NUMBER;
N2 NUMBER;
RESULT NUMBER;
BEGIN
N1:=4;
N2:=5;
RESULT:=N1+N2;
DBMS_OUTPUT.PUT_LINE(RESULT);
END;

/

Y ahora otro ejemplo, incluyendo un manejador de errores en el caso de una división por cero:
DECLARE
N1 NUMBER:=20;
N2 NUMBER:=0;
RESULT NUMBER;
BEGIN
RESULT:=N1/N2;
DBMS_OUTPUT.PUT_LINE(RESULT);
EXCEPTION
WHEN ZERO_DIVIDE THEN
DBMS_OUTPUT.PUT_LINE('ERROR: División por cero!');
END;

/

Así concatenaríamos constantes y/o variables strings, usando el constructor "||":
DECLARE
nombre varchar2(50):='JOSE GAITAN';
BEGIN
DBMS_OUTPUT.PUT_LINE('Hola, me llamo ' || nombre);
END;

/
Para visualizar variables numéricas concatenadas con strings debemos hacer una conversión a texto, usando el comando to_char(variable). También es posible declarar constantes, es decir, variables que no cambiarán su valor en el transcurso del programa. Para ello usaremos la palabra reservada Constant. Un ejemplo:
mi_cumple Constant DATE:='23-NOV-1973';

Podemos declarar variables, de igual modo que lo hacemos con columnas en una tabla SQL, para que no admitan valores nulos (lógicamente haríamos siempre una inicialización). Ejemplo:
saldo numeric NOT NULL:=200;
Para concluir este primer post de introducción os diré que también es posible editar vuestro código desde SQL Plus directamente (sin usar el IDE). Para ello usad el comando ed nombre_fichero , así como para ejecutar dicho fichero hay que usar @nombre_fichero. Hasta la próxima.

7 comentarios :

  1. soy nuevo en pl/sql si tendrias manuales
    desde cero te agradeceria mucho
    mas qeu todo procedimientos

    ResponderEliminar
  2. Hola Anónimo, y gracias ante todo por visitar éste, tu Blog. Mi respuesta es sí, en breve tengo previsto compartir aquí código y ejemplos de PL/SQL para que así entre todos podamos aprender aún más, unos de otros. Seguro que tú podrás aportar también aquí mucho de tu conocimiento sobre ésta u otra tecnología. Espero tus ideas, comentarios, etc. ¡Un saludo!.

    ResponderEliminar
  3. hola José A.
    estuve ojean tu BLOGS para aprender un poco de este lenguaje d programación, y no encuentro los manuales que prometiste al Sr anónimo, por fa si puedes ayudarme con eso te lo agradecería un chorroooo...

    ResponderEliminar
  4. Hola Kelly. Gracias por visitar mi Blog. Respecto a tu consulta puedes ver en mis recientes posts que aparece ya información básica de fundamentos de PL/SQL. Por falta de tiempo no sé cuando podré sacar alguna guia que reúna todo ello, pero espero que te sirva para repasar y practicar. Si quieres que compartamos algún ejemplo o duda concreta que tengas, por mi parte encantando de colaborar. ¡Nos vemos!.

    ResponderEliminar
  5. tengo el sql developer y se desaparecio la salida dbms

    ResponderEliminar
  6. tengo el sql developer y se desaparecio la salida dbms que puedo hacer para que vuelva aparecer

    ResponderEliminar
  7. Anónimo tienes que activarlo haciendo click en menu ver salida de dbms. jose en estos ejemplos asignas un valor a una variable pero si dentro de begin tengo un select como harías

    ResponderEliminar

Buscar en el Blog: