Documentos de Académico
Documentos de Profesional
Documentos de Cultura
--Función
return NUMBER
--Declaraciones
AS
v_nF nota.nota1%TYPE := 0;
v_n1 nota.nota1%TYPE;
v_n2 nota.nota2%TYPE;
v_n3 nota.nota3%TYPE;
BEGIN
SELECT nota.nota1, nota.nota2, nota.nota3 INTO v_n1, v_n2, v_n3
FROM nota
WHERE nota.codigo = p_codE AND nota.idasignatura=p_codA;
--Cálculo
v_nF := v_n1*0.35 + v_n2*0.35+v_n3*0.30;
else
return v_nF;
end if;
EXCEPTION
when no_data_found then
return -1;
END;
2.
BEGIN
EXCEPTION
WHEN case_not_found THEN
DBMS_OUTPUT.PUT_LINE('El estudiante con código: '|| v_codE || 'NO EXISTE');
END ;
--Llamado
DECLARE
v_codEst estudiante.codigo%TYPE := &v_codE;
v_nombres estudiante.nombres%TYPE;
v_apellidos estudiante.apellidos%TYPE;
BEGIN
--Llamado al procedimiento
DBMS_OUTPUT.PUT_LINE('Nombres'|| v_nombres);
DBMS_OUTPUT.PUT_LINE('Apellidos'|| v_apellidos);
END IF;
END;
3-
v_numasi NUMBER := 0;
v_nf nota.nota1%TYPE;
--Registro de tipo notas-estudiante
TYPE tablanotasest IS
TABLE OF registronotasest;
IF v_numasi != 0 THEN
--BULK COLLECT RESERVA MEMORIA DE LA CANTIDAD DE FILAS QUE ME RETORNA LA CONSULTA
PARA EL TEMA DE MEMORIA
SELECT
asignatura.idasignatura,
asignatura.nombre
BULK COLLECT
INTO v_tablapa
FROM
asignatura
JOIN nota ON asignatura.idasignatura = nota.idasignatura
AND nota.codigo = codest;
END LOOP;
ELSE
RAISE no_data_found;
END IF;
EXCEPTION
WHEN no_data_found THEN
dbms_output.put_line('No existe resgistro para estudiante: ' || codest);
END;
DECLARE BEGIN
informenotasestudiantetable(&cod);
END;
--BLOQUE ANÓNIMO
DECLARE BEGIN
informenotasestudiante(&cod);
END;
4-
--Creando la tabla
TYPE tableestudiante IS
TABLE OF registroestudiante;
v_tableest tableestudiante;
v_nprog programa.nombre%TYPE;
BEGIN
SELECT
programa.nombre
INTO v_nprog
FROM
programa
WHERE
programa.idprograma = p_idp;
SELECT
estudiante.codigo,
estudiante.nombres,
estudiante.apellidos
BULK COLLECT
INTO v_tableest
FROM
estudiante
JOIN programa ON estudiante.idprograma = programa.idprograma
AND programa.idprograma = p_idp;
dbms_output.put_line('Programa:'
|| ' '
|| v_nprog);
IF v_tableest.count = 0 THEN
RAISE no_data_found;
END IF;
FOR i IN 1..v_tableest.count LOOP
dbms_output.put_line('INFORMACIÓN DEL ESTUDIANTE:');
dbms_output.put_line('['
|| i
|| ']'
|| ' '
|| 'Código:'
|| ' '
|| v_tableest(i).v_codest
|| ' '
|| 'Nombres:'
|| ' '
|| v_tableest(i).v_nombreest
|| ' '
|| 'Apellidos:'
|| ' '
|| v_tableest(i).v_apellidosest);
dbms_output.put_line('ASIGNATURAS REGISTRADAS:');
informenotasestudiantetable(v_tableest(i).v_codest);
END LOOP;
EXCEPTION
WHEN no_data_found THEN
dbms_output.put_line('No existe ningún programa con el código:'
|| ''
|| p_idp);
END;