From: | "juan barletta" <barlettajuan(at)hotmail(dot)com> |
---|---|
To: | pgsql-es-ayuda(at)postgresql(dot)org |
Subject: | PL/pgSQL |
Date: | 2007-09-19 13:49:27 |
Message-ID: | BAY137-F26E17EDAF3C4AC50C1C55BC6B90@phx.gbl |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
Hola! tengo que pasar el siguiente procedimiento que esta en SQL/Informix a
PL/pgSQL.
Ya tengo todo solucionado; el problema es que no se como hacer con el RETURN
vcRegular WITH RESUME;
ya que no tengo un WITH RESUME; en PL/pgSQL
Si alguno tiene alguna idea me ayudaría muchisimo!!
Gracias!!
Saludos!!
Juan
-- DROP PROCEDURE sp_carreraspersona;
CREATE PROCEDURE sp_carreraspersona( pUnidadAcademica LIKE
sga_personas.unidad_academica,
pNroInscripcion LIKE
sga_personas.nro_inscripcion)
RETURNING varchar(5), -- 0 unidad academica
varchar(5), -- 1 carrera
varchar(15), -- 2 legajo
varchar(5), -- 3 plan
varchar(255), -- 4 carrera nombre
char(1), -- 5 calidad
char(1); -- 6 regular
-- vars para el manejo de excepciones
DEFINE SQLErr ,ISAMError integer;
DEFINE errorInfo varchar(76);
-- vars locales
DEFINE vcUnidadAcademica LIKE sga_unidades_acad.unidad_academica;
DEFINE vcCarrera LIKE sga_alumnos.carrera;
DEFINE vcCarreraNombre LIKE sga_carreras.nombre;
DEFINE vcLegajo LIKE sga_alumnos.legajo;
DEFINE vcPlan LIKE sga_alumnos.plan;
DEFINE vcCalidad LIKE sga_alumnos.calidad;
DEFINE vcRegular LIKE sga_alumnos.regular;
DEFINE vc_filtra_voc, vc_tipoCarrera CHAR(1);
-- si hay algun error
ON EXCEPTION SET SQLErr, ISAMError, errorInfo
RAISE EXCEPTION SQLErr, SQLErr, errorInfo ;
END EXCEPTION;
BEGIN
LET vc_filtra_voc = '';
EXECUTE PROCEDURE sp_param_sistema('filtra_carrera_vocacional') INTO
vc_filtra_voc;
LET vcUnidadAcademica = NULL;
LET vcCarrera = NULL;
LET vcCarreraNombre = NULL;
LET vcLegajo = NULL;
LET vcPlan = NULL;
LET vcCalidad = NULL;
LET vcRegular = NULL;
FOREACH
SELECT sga_alumnos.unidad_academica,
sga_alumnos.carrera,
sga_alumnos.legajo,
sga_alumnos.plan,
sga_carreras.nombre,
sga_alumnos.calidad,
sga_alumnos.regular,
sga_carreras.tipo_de_carrera
INTO vcUnidadAcademica,
vcCarrera,
vcLegajo,
vcPlan,
vcCarreraNombre,
vcCalidad,
vcRegular,
vc_tipoCarrera
FROM sga_alumnos,
sga_carreras,
sga_planes
WHERE sga_alumnos.unidad_academica = sga_carreras.unidad_academica
AND sga_alumnos.carrera = sga_carreras.carrera
AND sga_planes.unidad_academica = sga_alumnos.unidad_academica
AND sga_planes.carrera = sga_alumnos.carrera
AND sga_planes.plan = sga_alumnos.plan
AND sga_alumnos.unidad_academica = pUnidadAcademica
AND sga_alumnos.nro_inscripcion = pNroInscripcion
ORDER BY sga_alumnos.unidad_academica, sga_alumnos.carrera,
sga_carreras.nombre, sga_alumnos.legajo
IF (vc_filtra_voc = 'N' OR ( vc_filtra_voc = 'S' AND vc_TipoCarrera
<> 'E' )) THEN
-- devueve la lista de las carreras de una persona
RETURN vcUnidadAcademica,
vcCarrera,
vcLegajo,
vcPlan,
vcCarreraNombre,
vcCalidad,
vcRegular WITH RESUME;
END IF;
END FOREACH;
END;
END PROCEDURE;
_________________________________________________________________
Grandes éxitos, superhéroes, imitaciones, cine y TV...
http://es.msn.kiwee.com/ Lo mejor para tu móvil.
From | Date | Subject | |
---|---|---|---|
Next Message | Guillermo Muñoz | 2007-09-19 13:53:03 | Re: timestamp out of range |
Previous Message | Calabaza Calabaza | 2007-09-19 13:46:24 | Re: timestamp out of range |