--creación de objetos
create table numeros(numero number);
delete from numeros;
insert into numeros values(1);
insert into numeros values(2);
insert into numeros values(3);
--Mostrar los números del 1 al parametro
CREATE OR REPLACE PROCEDURE mostrarNumeros1Ub (
Ub number
) IS
vCont number;
BEGIN
-- vContamos de 1 a Ub
vCont := 0;
loop
vCont := vCont + 1;
exit when vCont > Ub;
insert into numeros values(vCont);
--dbms_output.put_line('Iteración número ' || vCont);
end loop;
END;
/
show errors
set serveroutput on;
EXEC mostrarNumeros1Ub(5);
lunes, 10 de abril de 2017
Procedimiento que inserte en una tabla desde 1 hasta valor pasado por parámetro | Oracle
Procedimiento que muestra números desde valor mínimo hasta máximo con saltos pasado por parámetros | Oracle
CREATE OR REPLACE PROCEDURE mostrarNumerosLbUbStep (
pLb IN number,
pUb IN number,
pStep IN number DEFAULT 1
) IS
vCont number;
BEGIN
-- contamos de pLb a pUb
vCont := pLb-pStep;
loop
vCont := vCont + pStep;
exit when vCont > pUb;
dbms_output.put_line('Iteración número ' ||
to_char((vCont-pLb+pStep)/pStep));
end loop;
END;
/
show errors
set serveroutput on;
EXEC mostrarNumerosLbUbStep(1990,1995,0.5);
EXEC mostrarNumerosLbUbStep(1990,1995,0.1);
EXEC mostrarNumerosLbUbStep(1990,1995,2);
Procedimiento PL/SQL para mostrar desde 1 hasta valor pasado por parámetro | Oracle
--Mostrar los números del 1 al parametro
CREATE OR REPLACE PROCEDURE mostrarNumeros1Ub (
Ub number
) IS
vCont number;
BEGIN
-- vContamos de 1 a Ub
vCont := 0;
loop
vCont := vCont + 1;
exit when vCont > Ub;
dbms_output.put_line('Iteración número ' || vCont);
end loop;
END;
/
show errors
set serveroutput on;
EXEC mostrarNumeros1Ub(5);
Ejemplo de Cursor | Oracle
CREATE OR REPLACE
PROCEDURE P_2
AS
--Creamos cursor con sentencia dentro
CURSOR CUR_1 IS
SELECT DISTINCT APELLIDO,ESTADO
FROM PERSONA P
INNER JOIN EMPLEADO EM ON EM.CODEMP = P.CODPER
INNER JOIN ORDENMEDICA O ON O.CODMED = EM.CODEMP
ORDER BY APELLIDO;
--Creamos variables
APEL VARCHAR2(25);
ESTAD VARCHAR2(1);
BEGIN
--Abrimos el cursor
OPEN CUR_1;
/* Recorremos a primera posición y
almacenamos en las variables */
FETCH CUR_1 INTO APEL,ESTAD;
--Creamos bucle mientras haya loop
WHILE CUR_1 % FOUND LOOP
--Mostramos por pantalla
DBMS_OUTPUT.PUT_LINE(APEL||'*'||ESTAD);
/* Recorremos a siguiente posicion y
almacenamos en las variables */
FETCH CUR_1 INTO APEL,ESTAD;
--Terminamos loop
END LOOP;
--Cerramos cursor
CLOSE CUR_1;
--Cerramos procedimiento
END;
Diagrama:
Suscribirse a:
Entradas (Atom)