You are on page 1of 3

--- SECUENCIAS-CREATE SEQUENCE "GERALD".

"SEC_COURSE" MINVALUE 1 MAXVALUE 99999999999999999


99999999999 INCREMENT BY 1 START WITH 1 CACHE 20 NOORDER NOCYCLE ;
CREATE SEQUENCE "GERALD"."SEC_FAC" MINVALUE 1 MAXVALUE 99999999999999999999
99999999 INCREMENT BY 1 START WITH 1 CACHE 20 NOORDER NOCYCLE ;
CREATE SEQUENCE "GERALD"."SEC_GROUP" MINVALUE 1 MAXVALUE 999999999999999999
9999999999 INCREMENT BY 1 START WITH 21 CACHE 20 NOORDER NOCYCLE ;
CREATE SEQUENCE "GERALD"."SEC_PAYMENT" MINVALUE 1 MAXVALUE 9999999999999999
999999999999 INCREMENT BY 1 START WITH 21 CACHE 20 NOORDER NOCYCLE ;
CREATE SEQUENCE "GERALD"."SEC_SCH" MINVALUE 1 MAXVALUE 99999999999999999999
99999999 INCREMENT BY 1 START WITH 1 CACHE 20 NOORDER NOCYCLE ;
CREATE SEQUENCE "GERALD"."SEC_STUD" MINVALUE 1 MAXVALUE 9999999999999999999
999999999 INCREMENT BY 1000 START WITH 1000 CACHE 20 NOORDER NOCYCLE ;
CREATE SEQUENCE "GERALD"."SEC_TEACH" MINVALUE 1 MAXVALUE 999999999999999999
9999999999 INCREMENT BY 1 START WITH 100 CACHE 20 NOORDER NOCYCLE ;
--PROCEDIMIENTOS ALMACENADOS---PROCEDIMIENTO PARA AGREGAR CURSOS-CREATE OR REPLACE PROCEDURE ADD_COURSE (
P_NAME COURSE.NAME%TYPE,
P_CREDITS COURSE.CREDITS%TYPE
)
IS
BEGIN
INSERT INTO COURSE VALUES(SEC_COURSE.NEXTVAL,P_NAME,P_CREDITS);
END;
--PROCEDIMIENTO PARA AGREGAR NUEVOS GRUPOS-CREATE OR REPLACE PROCEDURE ADD_GROUPS (
P_ID_COURSE GROUPS_COURSE.ID_COURSE%TYPE,
P_ID_TEACHER GROUPS_COURSE.ID_TEACHER%TYPE,
P_NUMBER_GROUP GROUPS_COURSE.NUMBER_GROUP%TYPE,
P_DAY GROUPS_COURSE.DAY%TYPE,
P_HOUR GROUPS_COURSE.HOUR%TYPE,
P_CLASSROOM GROUPS_COURSE.CLASSROOM%TYPE,
P_MAX_STUDENT GROUPS_COURSE.MAX_STUDENT%TYPE,
P_YEAR_ACADEMY GROUPS_COURSE.YEAR_ACADEMY%TYPE
)IS
BEGIN
INSERT INTO GROUPS_COURSE (ID_GROUP,ID_COURSE,ID_TEACHER,NUMBER_GROUP,DAY,HOUR,C
LASSROOM,MAX_STUDENT,YEAR_ACADEMY,NUMBER_STUDENT)
VALUES(SEC_GROUP.NEXTVAL,P_ID_COURSE,P_ID_TEACHER,P_NUMBER_GROUP,P_DAY,P_HOUR,P_
CLASSROOM,P_MAX_STUDENT,P_YEAR_ACADEMY,0);
END;
--PROCEDIMIENTO PARA AUMENTAR LAS VACANTES EN UN GRUPO--

CREATE OR REPLACE PROCEDURE INC_VAC_GROUP (P_ID_GROUP IN NUMBER,P_INC IN NUMBER)


IS
BEGIN
UPDATE GROUPS_COURSE SET MAX_STUDENT=MAX_STUDENT+P_INC WHERE ID_GROUP=P_ID_GROU
P;
END;
--PROCEDIMIENTO PARA AGREGAR PAGOS-CREATE OR REPLACE PROCEDURE INSERT_PAYMENT (P_NAME PAYMENT.NAME_PAYMENT%TYPE)
IS
BEGIN
INSERT INTO PAYMENT VALUES (SEC_PAYMENT.NEXTVAL,P_NAME);
END;
--PROCEDIMINENTO PARA AGREGAR ESTUDIANTE-CREATE OR REPLACE PROCEDURE INSERT_STUDENT (
s_name STUDENT.NAME%type,
s_lastname STUDENT.LASTNAME%TYPE,
S_DNI STUDENT.DNI%TYPE,
S_SEX STUDENT.SEX%TYPE,
S_BIRTHDATE STUDENT.BIRTHDATE%TYPE,
S_ADDRESS STUDENT.ADDRESS%TYPE,
S_TELEPHONE STUDENT.TELEPHONE%TYPE,
S_MAIL STUDENT.MAIL%TYPE,
S_ID_SCHOOL STUDENT.ID_SCHOOL%TYPE)
AS
BEGIN
INSERT INTO STUDENT VALUES (SEC_STUD.NEXTVAL,s_name,s_lastname,S_DNI,S_SEX,S_BIR
THDATE,S_ADDRESS,S_TELEPHONE,S_MAIL,S_ID_SCHOOL);
END;
--PROCEDIMINENTO PARA AGREGAR PROFESOR-CREATE OR REPLACE PROCEDURE INSERT_TEACHER (
T_name TEACHER.NAME%type,
T_lastname TEACHER.LASTNAME%TYPE,
T_DNI TEACHER.DNI%TYPE,
T_SEX TEACHER.SEX%TYPE,
T_RUC TEACHER.RUC%TYPE,
T_ESPECIALITY TEACHER.ESPECIALITY%TYPE,
T_GRADE TEACHER.GRADE%TYPE,
T_BIRTHDATE TEACHER.BIRTHDATE%TYPE,
T_ADDRESS TEACHER.ADDRESS%TYPE,
T_TELEPHONE TEACHER.TELEPHONE%TYPE,
T_MAIL TEACHER.MAIL%TYPE
)
AS
BEGIN
INSERT INTO TEACHER VALUES (SEC_TEACH.NEXTVAL,T_name,T_lastname,T_DNI,T_SEX,T_RU
C,T_ESPECIALITY,T_GRADE,T_BIRTHDATE,T_ADDRESS,T_TELEPHONE,T_MAIL);
END;
--PROCEDIMIENTO PARA MATRICULAR A UN ALUMNO EN UN CURSO---ESTE PROCEDIMIENTO VERIFICA QUE EL ESTUDIANTE NO TENGA DEUDAS PARA PODER HACER
LA MATRICULA-CREATE OR REPLACE PROCEDURE P_ENROLL (
E_ID_STUDENT STUDENT.ID_STUDENT%TYPE,
E_ID_GROUP GROUPS_COURSE.ID_GROUP%TYPE)
IS

P_STATE NUMBER;
BEGIN
SELECT STATE_PAYMENT INTO P_STATE FROM DEBT WHERE ID_STUDENT=E_ID_STUDENT;
IF P_STATE = 1 THEN
INSERT INTO ENROLL VALUES(E_ID_STUDENT,E_ID_GROUP,SYSDATE);
ELSE
DBMS_OUTPUT.PUT_LINE('MANTIENE DEUDA');
END IF;
END;
--PROCEDIMIENTO PARA RETIRAR ALUMNO DE UN CURSO---AL RETIRAR A UN ALUMNO EL NUMERO DE ESTUDIANTES DE EL GRUPO EN EL QUE ESTABA S
E ACTUALIZA-CREATE OR REPLACE PROCEDURE REMOVE_STUDENT_COURSE (ID_STUD IN NUMBER,ID_GR IN
NUMBER)
IS
BEGIN
DELETE FROM ENROLL WHERE ID_STUDENT=ID_STUD AND ID_GROUP=ID_GR;
UPDATE GROUPS_COURSE SET NUMBER_STUDENT=NUMBER_STUDENT+1 WHERE ID_GROUP=ID_GR;
END;
--PROCEDIMIENTO PARA RETIRAR A UN ALUMNO DEL CICLO-CREATE OR REPLACE PROCEDURE REMOVE_STUDENT_ENROLL (ID_STUD IN NUMBER)
IS
BEGIN
DELETE FROM ENROLL WHERE ID_STUDENT=ID_STUD;
--AL MOMENTO DE RETIRAR A UN ALUMNO DEL CICLO , DEBERIAN ACTUALIZARSE EL CAMPO N
UMERO DE LOS ESTUDIANTES
--EN TODOS LOS GRUPOS EN LOS QUE HAYA ESTADO MATRICULADO
UPDATE GROUPS_COURSE SET NUMBER_STUDENT=NUMBER_STUDENT-1 WHERE ID_GROUP = (SELEC
T ID_GROUP FROM ENROLL WHERE ID_STUDENT=ID_STUD);
END;
--TRIGERS---TRIGER PARA ACTUALIZAR EL NUMERO DE ESTUDIANTES QUE HAY EN UN GRUPO
LUEGO DE MATRICULAR A UN ALUMNO -CREATE OR REPLACE TRIGGER STUDENTS_GROUP
AFTER INSERT ON ENROLL
BEGIN
UPDATE GROUPS_COURSE SET NUMBER_STUDENT=NUMBER_STUDENT+1;
END;

You might also like