Si lo que quieres es almacenar dentro de una variable el valor de un campo de
una tabla, puedes mirar este procedimiento que utilizo para una tarea
especifica de mi proyecto, pero tiene lo que necesitas. Espero te sirva.
Saludos.
CREATE OR REPLACE FUNCTION "public"."fun_cita_listar_dias_disp" (
"seccion_trabajo" integer,
"serial_tramite" varchar
)
RETURNS SETOF "public"."tbl_cita_dia" AS
$body$
DECLARE
dia tbl_cita_dia%ROWTYPE;
cuposSeccion ct_cita_seccion_cupos;
totalTurnosReservados integer;
BEGIN
IF (upper(substr($2,1,1)) LIKE 'P' ) THEN
FOR dia IN SELECT * FROM tbl_cita_dia WHERE tbl_cita_dia.fecha >=
(CURRENT_DATE)
Loop
SELECT tbl_cita_seccion.pk_cita_dia, tbl_cita_seccion.pk_tipo_seccion,
tbl_cita_seccion_documento.cupos INTO cuposSeccion FROM
tbl_cita_seccion INNER JOIN tbl_cita_seccion_documento
ON tbl_cita_seccion.pk_cita_dia = tbl_cita_seccion_documento.pk_cita_dia
AND
tbl_cita_seccion.pk_tipo_seccion =
tbl_cita_seccion_documento.pk_tipo_seccion
WHERE tbl_cita_seccion.pk_cita_dia = dia.pk_cita_dia AND
tbl_cita_seccion.pk_tipo_seccion = $1
AND tbl_cita_seccion_documento.pk_tipo_documento = 1;
SELECT count(*) INTO totalTurnosReservados FROM tbl_tramite_pasaporte_cita
WHERE tbl_tramite_pasaporte_cita.pk_cita_dia = cuposSeccion.pk_cita_dia
AND tbl_tramite_pasaporte_cita.pk_tipo_seccion =
cuposSeccion.pk_tipo_seccion;
IF ( cuposSeccion.cupos > totalTurnosReservados) THEN
RETURN NEXT dia;
END IF;
END Loop;
ELSE
FOR dia IN SELECT * FROM tbl_cita_dia WHERE tbl_cita_dia.fecha >=
(CURRENT_DATE)
Loop
SELECT tbl_cita_seccion.pk_cita_dia, tbl_cita_seccion.pk_tipo_seccion,
tbl_cita_seccion_documento.cupos INTO cuposSeccion FROM
tbl_cita_seccion INNER JOIN tbl_cita_seccion_documento
ON tbl_cita_seccion.pk_cita_dia = tbl_cita_seccion_documento.pk_cita_dia
AND
tbl_cita_seccion.pk_tipo_seccion =
tbl_cita_seccion_documento.pk_tipo_seccion
WHERE tbl_cita_seccion.pk_cita_dia = dia.pk_cita_dia AND
tbl_cita_seccion.pk_tipo_seccion = $1
AND tbl_cita_seccion_documento.pk_tipo_documento = 2;
SELECT count(*) INTO totalTurnosReservados FROM
tbl_tramite_acreditacion_cita
WHERE tbl_tramite_acreditacion_cita.pk_cita_dia = cuposSeccion.pk_cita_dia
AND tbl_tramite_acreditacion_cita.pk_tipo_seccion =
cuposSeccion.pk_tipo_seccion;
IF ( cuposSeccion.cupos > totalTurnosReservados) THEN
RETURN NEXT dia;
END IF;
END Loop;
END IF;
END;
$body$
LANGUAGE 'plpgsql';
________________________________________
De: [email protected] [[email protected]]
En nombre de [email protected] [[email protected]]
Enviado el: viernes, 03 de junio de 2011 15:41
Para: [email protected]
Asunto: [pgsql-es-ayuda] Valores por referencia Postgres
Saludos al grupo!
En algunos lenguajes de programacion puedo hacer lo siguiente:
lnCantidad = 1
valor = "cantidad"+ str(lnCantidad)
valor2 = &valor
No puedo hacer lo mismo en plsql? No puedo hacer referencia a un campo de una
tabla de esta manera, en vez de preguntar uno por uno?
Gracias mil!
[cid:F016596C-EBBD-48B5-B586-9D1D09DE8FFA]
Eris J. Gómez
ADGSystems, EIRL
Gestor de Proyectos
Tel. 809.241.7309
[email protected]<mailto:[email protected]>
http://www.adgsystems.com.do<http://www.adgsystems.com.do/>
-
Enviado a la lista de correo pgsql-es-ayuda ([email protected])
Para cambiar tu suscripción:
http://www.postgresql.org/mailpref/pgsql-es-ayuda