| From: | Jaime Casanova <systemguards(at)gmail(dot)com> | 
|---|---|
| To: | Luis Guevara <luis(dot)a(dot)guevara(at)gmail(dot)com> | 
| Cc: | postgresql <pgsql-es-ayuda(at)postgresql(dot)org> | 
| Subject: | Re: Cambiar valor de parametro en funcion | 
| Date: | 2005-10-05 20:20:56 | 
| Message-ID: | c2d9e70e0510051320n2e91cf19i1ebf0b577c4fb02c@mail.gmail.com | 
| Views: | Whole Thread | Raw Message | Download mbox | Resend email | 
| Thread: | |
| Lists: | pgsql-es-ayuda | 
On 10/5/05, Luis Guevara <luis(dot)a(dot)guevara(at)gmail(dot)com> wrote:
> Hola Amigos:
>
> Tengo la siguiente pequeña funcion:
>
> CREATE OR REPLACE FUNCTION "public"."my_addoperacion"
> (p_oper_idprocesado integer, p_archi_id integer) RETURNS boolean AS
> $body$
> DECLARE
>        v_forma numeric(1,0);
> BEGIN
>        SELECT INTO v_forma oper_forma FROM operacion
>        WHERE oper_id=p_oper_idprocesado;
>
>        IF v_forma = 0 AND p_archi_id = 2  THEN
>              p_oper_idprocesado = NULL;
>        END IF;
>
>     INSERT INTO "operacion" (oper_idprocesado,archi_id,)
>     VALUES (p_oper_idprocesado,p_archi_id);
>
>     RETURN TRUE;
> END;
>
>  y al momento de compilar me sale el siguiente error:
>
> ERROR:  "$1" is declared CONSTANT
>
> ¿ Significa que no puedo cambiar el valor de un parámetro dentro de la
> función tal como lo estoy haciendo?>
A menos que la definicion de CONSTANTE haya cambiado, asi parece
> ¿ Existe alguna solución ?
usar otra variable? por cierto es incorrecto esto: p_oper_idprocesado = NULL;
deberia ser: p_oper_idprocesado := NULL;  aunque en una variable no en
una constante.
en la version 8.1 habran parametros de salida y de entrada/salida
imagino que alli si podras hacer lo que planeabas ahorita... pero no
estoy seguro
--
Atentamente,
Jaime Casanova
(DBA: DataBase Aniquilator ;)
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Marcelo Retamal Vallejos | 2005-10-05 21:25:05 | Re: Poco espacio en el disco | 
| Previous Message | Jaime Casanova | 2005-10-05 20:07:31 | Re: Poco espacio en el disco |