PROCEDIMIENTO ALMACENADO Y TRIGGER
Publicado por AYUDA A NOVATO (2 intervenciones) el 13/12/2020 21:07:26
Hola buenas, estoy empezando en el mundo de la programación y oracle SQL se me complica un poco jejeje.
Tengo un par de dudas estando haciendo unos ejercicios me encontre un par que se me atascan =(
El primero el mas sencillo, montar un trigger:
Tengo que montar un trigger que muestre por consola cuantos alumnos tengo en cada curso al modificar o alterar la tabla de alumnos.
Las tablas son dos una de cursos y otra de alumnos muy sencillas. Bien mi codigo quedo asi:
Podrian explicarme que tengo mal y porque creo que me lie un poco con el mysql =(
La otra es un procedimiento almacenado que permita introducir datos de un alumno donde es necesario controlar que no exista clave duplicada;
Y me lo crea pero me sale un error de comando no terminado apropiadamente y (Encountered the symbol "end-of-file"....
Muchas gracias por la ayuda de antemano =)
Tengo un par de dudas estando haciendo unos ejercicios me encontre un par que se me atascan =(
El primero el mas sencillo, montar un trigger:
Tengo que montar un trigger que muestre por consola cuantos alumnos tengo en cada curso al modificar o alterar la tabla de alumnos.
Las tablas son dos una de cursos y otra de alumnos muy sencillas. Bien mi codigo quedo asi:
1
2
3
4
5
6
7
8
9
10
11
12
CREATE OR REPLACE TRIGGER mostrarcuros ON ALUMNOS
AFTER INSERT OR UPDATE AS
DECLARE CURSOR
Total_alumnos IS SELECT numero_alumno,count(*) as total
FROM ALUMNOS
group by Nombre_alumno;
a_nombre ALUMNOS.nombre;
BEGIN
FOR ALUMNOS in Total_alumnos LOOP
SELECT numero_alumno,count(*) as total from ALUMNOS
end loop;
end;
La otra es un procedimiento almacenado que permita introducir datos de un alumno donde es necesario controlar que no exista clave duplicada;
1
2
3
4
5
6
7
8
9
CREATE PROCEDURE entrar_alumno(nombre ALUMNOS.nombre,numero_alumno ALUMNOS.numero_alumno,curso ALUMNOS.curso,fecha ALUMNOS.fecha_inscripcion)
IS
BEGIN
SELECT COUNT(numero_alumno) INTO entrar_alumno
FROM ALUMNOS
WHERE UPPER(NUMERO_ALUMNO)=UPPER(numero_alumno);
IF (ALUMNOS.numero_alumno=entrar_alumno.numero_alumno)THEN
DBMS_OUTPUT.PUT_LINE('clave duplicada');
END IF;
Y me lo crea pero me sale un error de comando no terminado apropiadamente y (Encountered the symbol "end-of-file"....
Muchas gracias por la ayuda de antemano =)
Valora esta pregunta
0