Pypypypypypyp
Pypypypypypyp
Pypypypypypyp
DECLARE
Sección de declaración
BEGIN
Sección ejecutable
EXCEPTION
Sección de manejo de excepciones
END;
Imprime:
Valor de a externa 10 Nota: Para ver los resultados de la
Valor de a interna 20 impresión en SQL*Plus se debe
Valor de a 10 ejecutar:
SQL> SET SERVEROUTPUT
ON
La sentencia IF tiene la sintaxis:
DECLARE
a NUMBER := NULL;
BEGIN
IF a = a THEN
DBMS_OUTPUT.PUT_LINE('O sea que NULL =
NULL');
ELSIF a <> a THEN
DBMS_OUTPUT.PUT_LINE('O sea que NULL <>
NULL');
ELSE
DBMS_OUTPUT.PUT_LINE('Indefinido, NULL no es
ni = ni <> a NULL');
END IF;
END;
/
Lo anterior también se puede escribir con CASE así:
DECLARE
a NUMBER := NULL;
BEGIN
CASE
WHEN a = a THEN
DBMS_OUTPUT.PUT_LINE('O sea que NULL =
NULL');
WHEN a <> a THEN
DBMS_OUTPUT.PUT_LINE('O sea que NULL <>
NULL');
ELSE
DBMS_OUTPUT.PUT_LINE('Indefinido, NULL no es ni
= ni <> a NULL');
END CASE;
END;
/
Ciclos o iteraciones
a) Ciclo simple sin límite: LOOP
LOOP
secuencia de instrucciones
END LOOP;
DECLARE
cont NUMBER(4) := 0;
BEGIN
DELETE plana;
LOOP
INSERT INTO plana VALUES(cont, 'No traer a
Ariana Grande '||
CEIL(DBMS_RANDOM.VALUE(1,5000)));
CEIL redondea hacia
cont := cont + 1; al próximo entero
EXIT WHEN cont = 1000;
END LOOP;
END;
b) Ciclo para: FOR
Permite repetir una secuencia de instrucciones un
número fijo de veces. Su sintaxis es:
BEGIN
DELETE plana;
FOR cont IN REVERSE 1..500 LOOP
INSERT INTO plana
VALUES (cont, 'Traer a Carmen Electra');
END LOOP;
END;
/
c) Ciclo mientras que: WHILE
WHILE repetirá una secuencia de instrucciones
hasta que la condición controladora del ciclo deje
de ser cierta. Su sintaxis es: