PL/pgSQL

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.

Responses

  • Re: PL/pgSQL at 2007-09-19 14:06:12 from Sebastián Villalba

Browse pgsql-es-ayuda by date

  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