Re: Parametros en Procedimientos almacenados

From: Alvaro Herrera <alvherre(at)surnet(dot)cl>
To: Ricardo Fuentes Pereira <rfuentesp(at)gmail(dot)com>
Cc: "'pgsql-es-ayuda(at)postgresql(dot)org'" <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Re: Parametros en Procedimientos almacenados
Date: 2005-05-13 21:02:09
Message-ID: 20050513210209.GA17830@surnet.cl
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

On Thu, May 12, 2005 at 05:58:32PM -0400, Ricardo Fuentes Pereira wrote:

> CREATE OR REPLACE FUNCTION insertMiTabla(int4, varchar)
> RETURNS int4 AS

> He aqui el problema. Deseo pasar solo un parametro en el procedimiento
> almacenado, algo que sea analogo a mi_tabla, para seguir utilizando el
> patron de diseño

Hola,

Entiendo que esto lo puedes hacer en 8.0 pero no en versiones
anteriores. La idea es declarar la funcion como

create function insertMiTabla(record) returns ...

o bien

create function insertMiTabla(miTabla) returns ...

y tienes que pasar el tipo exacto de la forma

select insertMiTabla(ROW(42, 'the answer to the final question'));

Aun no me queda claro como se construiria el cuerpo de la funcion;
quizas puedas descubrirlo en la documentacion. A continuacion mi
experimento fallido por si te sirve de algo:

alvherre=# create table mitabla (a int, b text);
CREATE TABLE
alvherre=# create or replace function inserta(mitabla) returns int language
plpgsql as 'begin insert into mitabla select $1; end';
CREATE FUNCTION
alvherre=# select inserta(row(1, 'foo'));
ERROR: la columna «a» es de tipo integer pero la expresión es de tipo mitabla
HINT: Necesitará reescribir la expresión o aplicarle una conversión de tipo.
CONTEXT: sentencia SQL: «insert into mitabla select $1 »
PL/pgSQL function "inserta" line 1 at SQL statement

--
Alvaro Herrera (<alvherre[a]surnet.cl>)
"Acepta los honores y aplausos y perderás tu libertad"

In response to

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Ricardo Fuentes Pereira 2005-05-13 22:06:10 Re: Parametros en Procedimientos almacenados
Previous Message Mario Soto Cordones 2005-05-13 20:41:17 Re: USOS DE POSTGRESQL