urgente!!!! problema con stored procedure
Publicado por mikel (1 intervención) el 28/10/2008 05:56:30
hola, ojala puedan ayudarme , gracias de antemano.
-------------------------------------------------------------------------
tablas:
EVALUACION(ID_EVALUACION,FECHA,ID_AREA,.......)
AREA(ID_AREA,NOMBRE_AREA,...)
CURSO(ID_CURSO,NOMBRE,ID_AREA,....)
MATRICULA(ID_MATRICULA,ID_AREA,.....)
RESULTADO(ID_MATRICULA,ID_CURSO,ID_EVALUACION,NOTA)
-------------------------------------------------------------------------
lo que deseaba es que cuando le envie el parametro ID_AREA busque todos los registros de matricula que coysidan con ese ID_AREA (devolviendome cada ID_MATRICULA) y para cada ID_MATRICULA encontrado, le busque los ID_CURSO que tbm coysidan con el parametro de busca ID_AREA.
por ultimo para estos 2 claves (ID_MATRICULA y ID_AREA) los inserto en la tabla RESULTADO, junto con la otra clave que es .. ID_EVALUACION(la cual entra como parametro del procedimiento)
aca esta el codigo:
ALTER PROCEDURE "DBA"."crear_resultados"(in id_area_ integer, in id_evaluacion_ bigint)
begin
declare id_matricula_ bigint;
declare id_curso_ smallint;
declare crsr dynamic scroll cursor for select id_matricula from matricula where id_area = id_area_;
open crsr;
fetch next crsr into id_matricula_;
while sqlcode <> 100 loop
//--->
declare crsr2 dynamic scroll cursor for select id_curso from curso where id_area=id_area_;
open crsr2;
fetch next crsr2 into id_curso_;
while sqlcode <> 100 loop
//--->>
INSERT INTO resultado(id_matricula,id_curso,id_evaluacion)VALUES (id_matricula_,id_curso_,id_evaluacion_) ;
fetch next crsr2 into id_curso_;
//--->>
end loop;
close crsr2
fetch next crsr into id_matricula_;
//--->
end loop;
close crsr
end
EL MALDITO ERROR ES : syntaxis error near "declare" en linea 14.
La linea 14 equivale a este codigo:
declare crsr2 dynamic scroll cursor for select id_curso from curso where id_area=id_area_;
WENO ESPERO CORDIAL SU AYUDA ......CUIDENSE
NOTA: las funciones en el asa difieren un pococ del mismo power script, en el caso de lso cursores no se nesesita colocar los 2 puntos para usar el "into".
-------------------------------------------------------------------------
tablas:
EVALUACION(ID_EVALUACION,FECHA,ID_AREA,.......)
AREA(ID_AREA,NOMBRE_AREA,...)
CURSO(ID_CURSO,NOMBRE,ID_AREA,....)
MATRICULA(ID_MATRICULA,ID_AREA,.....)
RESULTADO(ID_MATRICULA,ID_CURSO,ID_EVALUACION,NOTA)
-------------------------------------------------------------------------
lo que deseaba es que cuando le envie el parametro ID_AREA busque todos los registros de matricula que coysidan con ese ID_AREA (devolviendome cada ID_MATRICULA) y para cada ID_MATRICULA encontrado, le busque los ID_CURSO que tbm coysidan con el parametro de busca ID_AREA.
por ultimo para estos 2 claves (ID_MATRICULA y ID_AREA) los inserto en la tabla RESULTADO, junto con la otra clave que es .. ID_EVALUACION(la cual entra como parametro del procedimiento)
aca esta el codigo:
ALTER PROCEDURE "DBA"."crear_resultados"(in id_area_ integer, in id_evaluacion_ bigint)
begin
declare id_matricula_ bigint;
declare id_curso_ smallint;
declare crsr dynamic scroll cursor for select id_matricula from matricula where id_area = id_area_;
open crsr;
fetch next crsr into id_matricula_;
while sqlcode <> 100 loop
//--->
declare crsr2 dynamic scroll cursor for select id_curso from curso where id_area=id_area_;
open crsr2;
fetch next crsr2 into id_curso_;
while sqlcode <> 100 loop
//--->>
INSERT INTO resultado(id_matricula,id_curso,id_evaluacion)VALUES (id_matricula_,id_curso_,id_evaluacion_) ;
fetch next crsr2 into id_curso_;
//--->>
end loop;
close crsr2
fetch next crsr into id_matricula_;
//--->
end loop;
close crsr
end
EL MALDITO ERROR ES : syntaxis error near "declare" en linea 14.
La linea 14 equivale a este codigo:
declare crsr2 dynamic scroll cursor for select id_curso from curso where id_area=id_area_;
WENO ESPERO CORDIAL SU AYUDA ......CUIDENSE
NOTA: las funciones en el asa difieren un pococ del mismo power script, en el caso de lso cursores no se nesesita colocar los 2 puntos para usar el "into".
Valora esta pregunta


0