martes, 13 de noviembre de 2018

bloques anonimos

Uso y ejemplo de bloques anónimos 

Bloques anónimos

Los bloques anónimos no tienen nombre.Se suelen crear y ejecutar desde SQL*Plus. Oracle reconoce el comienzo del bloque cuando encuentra DECLARE o BEGIN.El bloque del buffer se puede guardar en un fichero con la orden.

SQL>SAVE nombrefichero [REPLACE].

Para cargar un bloque de un fichero en el buffer SQL se hará:

SQL>GET nombrefichero,una vez cargado se puede ejecutar con RUN

También se puede cargar y ejecutar con una sola orden:

SQL>START nombrefichero

Estos son algunos ejemplos de bloques PL/SQL anónimos:

1.El siguiente bloque no hace nada:

Script

SET SERVEROUTPUT ON
 BEGIN
NULL;
END;
/

2.El siguiente bloque escribe "HOLA MUNDO".


Script

BEGIN
 DBMS_OUTPUT.PUT_LINE('HOLA MUNDO');
END;
/

3. El bloque siguiente muestra la descripción de un articulo: 

Script

DECLARE
v_descrip varchar(30);
BEGIN
  SELECT descrip INTO v_descrip
FROM product
WHERE prodid=100860;
 DBMS_OUTPUT.PUT_LINE(v_descrip);
END;
/

En los bloques se pueden utilizar variables de sustitución anteponiendo el a la variable. Antes de ejecutar el bloque se solicitará el valor de la variable:

Script


DECLARE


 v_nom CUSTOMER.NAME%TYPE;

BEGIN
  SELECT name INTO v_nom
  FROM customer
  WHERE custid=&v_id;
 DBMS_OUTPUT.PUT_LINE(v_nom);
END;
/

Uso de procedimientos



El procedimiento se encuentra almacenado en el servidor de base de datos y puede ser invocado mediante la orden EXECUTE

SET SERVEROUTPUT ON
EXECUTE ver_cliente('JOCKSPORT')


SCRIPT COMPLETO

CREATE OR REPLACE
  PROCEDURE ver_cliente(nomcli VARCHAR2)
  AS
  idcli NUMBER(6);
  domcli VARCHAR2(40);
 BEGIN
  SELECT custid,address INTO idcli,domcli
   FROM customer
   WHERE name=nomcli;
 DBMS_OUTPUT.PUT_LINE('Nombre: '||nomcli||'Nif: '||idcli||'Domicilio: '||domcli);

 EXCEPTION

  WHEN NO_DATA_FOUND THEN
  DBMS_OUTPUT.PUT_LINE('No se encontro cliente'||nomcli);

END ver_cliente;


No hay comentarios:

Publicar un comentario