subzero
29-01-2004, 16:37:53
Tengo la siguiente consulta que debe actulizar una tabla después de haber ejecutado dos consultas posteriormente, la primera es para ubicar los campos que serán comparados con la segunda, y la segunda para hacer la actualización.
SET TERM ^;
CREATE PROCEDURE ACTUA_ANEXO1
AS
DECLARE VARIABLE COD_DANE VARCHAR(12);
DECLARE VARIABLE COD_DANE2 VARCHAR(12);
DECLARE VARIABLE JORNADA VARCHAR(1);
BEGIN
FOR SELECT CODIGO_DANE FROM TEMP_ANEXO1_1
INTO :COD_DANE DO
BEGIN
FOR SELECT I.INS_CODIGO, J.JOR_COD_R166
FROM INSTITUCION I, PERFIL_EDUCATIVO PE, GRADO_ESPECIALIDAD GE, GRUPO G, JORNADA J
WHERE I.INS_CODIGO_DANE=:COD_DANE
AND I.INS_ID=PE.INS_ID
AND PE.PER_EDU_ID=GE.PER_EDU_ID
AND GE.GRA_ESP_ID=G.GRA_ESP_ID
AND G.JOR_ID=J.JOR_ID
GROUP BY I.INS_CODIGO_DANE, J.JOR_COD_R166
INTO :COD_DANE2,:JORNADA DO
IF(JORNADA='1')THEN
BEGIN
UPDATE TEMP_ANEXO1_1
SET JOR_COMPLETA='S'
WHERE CODIGO_DANE=:COD_DANE2
END
IF(JORNADA='2')THEN
BEGIN
UPDATE TEMP_ANEXO1_1
SET JOR_MANNANA='S'
WHERE CODIGO_DANE=:COD_DANE2
END
IF(JORNADA='3')THEN
BEGIN
UPDATE TEMP_ANEXO1_1
SET JOR_TARDE='S'
WHERE CODIGO_DANE=:COD_DANE2
END
IF(JORNADA='4')THEN
BEGIN
UPDATE TEMP_ANEXO1_1
SET JOR_NOCTURNA='S'
WHERE CODIGO_DANE=:COD_DANE2
END
IF(JORNADA='5')THEN
BEGIN
UPDATE TEMP_ANEXO1_1
SET JOR_FINSEMANA='S'
WHERE CODIGO_DANE=:COD_DANE2
END
END
END^
SET TERM;^
El error que me arroja es:
"Dynamic SQL Error
SQL error code = -104
Token unknown - line 24, char 9
END"
Que estoy haciendo mal???, agradesco a quien me pueda ayudar
SET TERM ^;
CREATE PROCEDURE ACTUA_ANEXO1
AS
DECLARE VARIABLE COD_DANE VARCHAR(12);
DECLARE VARIABLE COD_DANE2 VARCHAR(12);
DECLARE VARIABLE JORNADA VARCHAR(1);
BEGIN
FOR SELECT CODIGO_DANE FROM TEMP_ANEXO1_1
INTO :COD_DANE DO
BEGIN
FOR SELECT I.INS_CODIGO, J.JOR_COD_R166
FROM INSTITUCION I, PERFIL_EDUCATIVO PE, GRADO_ESPECIALIDAD GE, GRUPO G, JORNADA J
WHERE I.INS_CODIGO_DANE=:COD_DANE
AND I.INS_ID=PE.INS_ID
AND PE.PER_EDU_ID=GE.PER_EDU_ID
AND GE.GRA_ESP_ID=G.GRA_ESP_ID
AND G.JOR_ID=J.JOR_ID
GROUP BY I.INS_CODIGO_DANE, J.JOR_COD_R166
INTO :COD_DANE2,:JORNADA DO
IF(JORNADA='1')THEN
BEGIN
UPDATE TEMP_ANEXO1_1
SET JOR_COMPLETA='S'
WHERE CODIGO_DANE=:COD_DANE2
END
IF(JORNADA='2')THEN
BEGIN
UPDATE TEMP_ANEXO1_1
SET JOR_MANNANA='S'
WHERE CODIGO_DANE=:COD_DANE2
END
IF(JORNADA='3')THEN
BEGIN
UPDATE TEMP_ANEXO1_1
SET JOR_TARDE='S'
WHERE CODIGO_DANE=:COD_DANE2
END
IF(JORNADA='4')THEN
BEGIN
UPDATE TEMP_ANEXO1_1
SET JOR_NOCTURNA='S'
WHERE CODIGO_DANE=:COD_DANE2
END
IF(JORNADA='5')THEN
BEGIN
UPDATE TEMP_ANEXO1_1
SET JOR_FINSEMANA='S'
WHERE CODIGO_DANE=:COD_DANE2
END
END
END^
SET TERM;^
El error que me arroja es:
"Dynamic SQL Error
SQL error code = -104
Token unknown - line 24, char 9
END"
Que estoy haciendo mal???, agradesco a quien me pueda ayudar