| 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: | Whole Thread | Raw Message | 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 |