Você está na página 1de 7

JUAN CAMILO PINTO CAMARGO 67000092

ALTER USER BD401A18 IDENTIFIED "BD401A18" REPLACE "BD401A18"

create table tbmultiplicar (numero int , funcion varchar(20));

select*FROM tbmultiplicar;

SET SERVEROUTPUT ON ;

///////////////////////////////////////////////////////////////////////////////////////////

DECLARE

1// DECLARACION DE VARIABLES PARA INGRESAR UN NUMERO Y REALICE SU TABLA DE


MULTIPLICAR

NRO INTEGER;

TAB_MULT INTEGER;

tab_num INTEGER;

-------------------------------------------------------------------------------------------

2//creacion de la funcion que ingrese 2 numeros y determinar el multiplo

CREATE OR REPLACE FUNTION "MULTIPLOS"."NUMEROS"(MULT_NUM INT) RETURN INT

AS

MULTIPLOS INT;

NUM INT;

MULT INT;

2 // crear el cursor para la funcion de que retorne el numero que sea multiplo

cursor c_num is select NUM,MULT FROM MULTIPLOS.EXECUTE NUM_MULT M INNER JOIN


MULTIPLOS.EXECUTE N ON M.EXECUTE_NUM=MULT_NUM;

---------------------------------------------------------------------------------------------------

3// declaracion de variables ingresar un numero y determinar si es primo o no

NUM INTEGER ;

MULTPLO INTEGER;

N INTEGER;
cont integer;

3// crear el cursor para digitar un numero y determinar si es primo o no

cursor c_prim is select NUM,MULT FROM MULTIPLOS.EXECUTE NUM_MULT M INNER JOIN


MULTIPLOS.EXECUTE N ON M.EXECUTE_NUM=MULT_NUM;

------------------------------------------------------------------------------------------------------------------------------
--

4// creacion de funcion que recibe un entero y retorne la suma de sus digitos

CREATE OR REPLACE FUNTION "ENTEROS"."SUMA"(SUM_NUM INTEGER) RETURN INTEGER

AS

ENTERO INTEGER;

NUM INTEGER;

SUMA INTEGER;

RESULTADO, A,B,C INTEGER;

4// crear el cursor para la funcion que reciba un entero y retorne la suma del mismo

cursor c_entero is select NUM,ENTERO FROM SUMA_ENTERA .EXECUTE NUM_ENT E INNER


JOIN NUM_ENTERA.EXECUTE N ON E.EXECUTE_NUM=ENT_NUM;

------------------------------------------------------------------------------------------------------------------------------
------

5// crear el cursor para llenar la matriz

cursor c_matriz is select NUM,MULT FROM MULTIPLOS.EXECUTE NUM_MULT M INNER JOIN


MULTIPLOS.EXECUTE N ON M.EXECUTE_NUM=MULT_NUM;

5// crear variables para llenar la matriz

m_paises varchar (25);

m_colombia varchar (25);

m_brasil varchar (25);

m_chile varchar (25);


m_argentina varchar (25);

m_uruguay varchar (25);

m_bolivia varchar (25);

m_paraguay varchar (25);

m_peru varchar (25);

m_venezuela varchar (25);

m_ecuador varchar (25);

contador [100] integer ;

5// declaracion de un array para llenar un arreglo e imprimirlo en orden

CREATE OR REPLACE completar llenando_arreglo

AS

TYPE matriz_paises IS TABLE OF paises;

TYPE matriz_colombia IS TABLE OF suramerica.colombia%TYPE;

TYPE matriz_brasil IS TABLE OF suramerica.brasil%TYPE;

TYPE matriz_chile IS TABLE OF suramerica.chile%TYPE;

TYPE matriz_argentina IS TABLE OF suramerica.argentina%TYPE;

TYPE matriz_uruguay IS TABLE OF suramerica.uruguay%TYPE;

TYPE matriz_bolivia IS TABLE OF suramerica.bolivia%TYPE;

TYPE matriz_paraguay IS TABLE OF suramerica.venezuela%TYPE;

TYPE matriz_peru IS TABLE OF suramerica.peru%TYPE;

TYPE matriz_venezuela IS TABLE OF suramerica.venezuela%TYPE;

TYPE matriz_ecuador IS TABLE OF suramerica.ecuador%TYPE;

5// creando el cursor para llenar un arreglo e imprimir su contenido ordenadamente

CURSOR c_paises IS SELECT paises, colombia,brasil, chile, argentina, uruguay, bolivia,


paraguay, peru, venezuela, ecuador

FROM suramerica;

m_paises matriz_paises;
m_colombia matriz_colombia;

m_brasil matriz_brasil;

m_chile matriz_chile;

m_argentina matriz_argentina;

m_uruguay matriz_uruguay;

m_bolivia matriz_bolivia;

m_paraguay matriz_paraguay;

m_peru matriz_peru;

m_venezuela matriz_venezuela;

m_ecuador matriz_ecuador;

contador NUMBER := 100;

///////////////////////////////////////////////////////////////////////////////////////////////////

BEGIN

1* NRO:=&digite_numero;

3* NUM:=&ingresar_numero;

1 // tabla de multiplicar de un numero ingresado

select count (*) INTO TAB_MULT FROM tbmultiplicar WHERE tab_num=NRO;

DBMS_OUTPUT.PUT_LINE ('tabla de multiplicar del numero ingresado'= ||TAB_MULT);

2 //ejecutando el cursor de la funcion multiplos determinando el multiplo

NUM:=',';

SELECT MULT.NUM INTO MULT FROM MULTIPLOS.EXECUTE M WHERE MULT_NUM =NUM;

open c_num;
loop

fetch c_num INTO NUM,MULT;

DBMS_OUTPUT.PUT_LINE (NUM||','||MULT);

EXIT WHEN c_num%NOTFOUND;

if NUM = MULT THEN

if OPCN !='' THEN

MULTIPLOS:= MULTIPLOS|| MULT ||'EL NUMERO ES UN MULTIPLO DE N NUMERO';

END IF;

END IF;

ELSE

MULTIPLOS:= MULTIPLOS|| MULT ||'EL NUMERO NO ES MULTIPLO DE N NUMERO';

END IF;

end loop;

close c_num;

3// ejecutando el cursor para digitar si un numero es primo o no

SELECT MULTPLO.NRO INTO NRO FROM MULTIPLOS.EXECUTE ML WHERE MLPLO_NMRO


=NRO;

open c_prim;

loop

fetch c_prim INTO NRO,MULTPLO;

DBMS_OUTPUT.PUT_LINE (NRO||','||MULTPLO);

EXIT WHEN c_prim%NOTFOUND;

if cont < 2 THEN

MULTPLO:= MULTPLO|| MULTPLO ||'EL NUMERO ES PRIMO';

END IF;

ELSE
MULTPLO:= MULTPLO|| MULTPLO ||'EL NUMERO ES PRIMO';

END IF;

end loop;

close c_prim;

4// ejecutando el cursor para recibir un entero y retorne su suma

ENTERO:=&ingresar_entero;

SELECT ENTERO.NRO INTO ENTERO FROM ENTEROS.EXECUTE ET WHERE ENTERO_NUM


=NUM;

open c_entero;

loop

fetch c_entero INTO NUM,ENTERO;

DBMS_OUTPUT.PUT_LINE (NUM||','||ENTERO);

EXIT WHEN c_entero%NOTFOUND;

if NUM =ENTERO THEN

MULTPLO:= MULTPLO|| MULTPLO ||'EL NUMERO ES UN ENTERO';

RETURN RESULTADO=A+B+C;

END IF;

end loop;

close c_entero;

5// ejecutando el cursor para llenar la matriz y imprimirla en orden

OPEN c_matriz;

loop

fetch c_matriz BULL COLLECT INTO m_paises m_colombia matriz_colombia; m_brasil


matriz_brasil; m_chile matriz_chile; m_argentina matriz_argentina m_uruguay
matriz_uruguay; m_bolivia matriz_bolivia; m_paraguay matriz_paraguay; m_peru matriz_peru;
m_venezuela matriz_venezuela; m_ecuador matriz_ecuador;LIMIT contador NUMBER := 100;

FOR i IN 1 m_paises.count , m_colombia count; m_brasil count; m_chile count;


m_argentina count; m_uruguay count; m_bolivia count; m_paraguay count; m_peru count;
m_venezuela count; m_ecuador count;LIMIT contador NUMBER := 100;
loop

m_colombia(i):= matriz(m_colombia(i),
m_brasil(i),m_chile(i),m_argentina(i),m_uruguay(i),m_bolivia(i), m_paraguay(i),m_peru(i),
m_venezuela(i), m_ecuador(i) contador NUMBER := 100;

end loop;

FORALL i IN 1 ..m_paises.count

UPDATE matriz_paises;

SET colombia = m_colombia(i);

WHERE rowid = m_paises(i);

EXIT WHEN c_matriz%NOTFOUND;

end loop;

CLOSE c_matriz;

END;

Você também pode gostar