Re: sobre PL/pgSQL

From: Juanky Moral <juanky(dot)moral(at)gmail(dot)com>
To: Juan Pablo Espino <jp(dot)espino(at)gmail(dot)com>
Cc: pgsql-es postgresql <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Re: sobre PL/pgSQL
Date: 2005-01-28 22:55:50
Message-ID: 463a53a4050128145550ea1d3c@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

x no es una variable, sino tu parámetro de entrada. Para la función es
una constante, por lo que no puedes realizar ninguna asignación.
Un adp

On Fri, 28 Jan 2005 16:40:22 -0500, Juan Pablo Espino
<jp(dot)espino(at)gmail(dot)com> wrote:
> Saludos a todos, me pasó la siguiente situación trabajando con
> PL/pgSQL. La siguiente función es experimentación personal para
> convertir un numero entero
> < 2^8 en su correspondiente binario en formato texto
>
> CREATE FUNCTION int_to_bin(integer)
> RETURNS TEXT AS
> $$
> DECLARE
> b7 TEXT;
> x ALIAS FOR $1;
> BEGIN
> IF x >= 128 THEN
> x:=x-128; -- esta línea me da problemas
> b7 := '1';
> ELSE b7 := '0';
> END IF;
> RETURN b7;
> END;
> $$
> LANGUAGE plpgsql;
>
> cuando intento cargarla me sale el siguiente error
> ERROR: "$1" is declared CONSTANT
> CONTEXT: compile of PL/pgSQL function "int_to_bin" near line 6
>
> pero si cambio a algo así
> CREATE FUNCTION int_to_bin(integer)
> RETURNS TEXT AS
> $$
> DECLARE
> b7 TEXT;
> x ALIAS FOR $1;
> y integer;
> BEGIN
> IF x >= 128 THEN
> y:=x-128;
> b7 := '1';
> ELSE b7 := '0';
> END IF;
> RETURN b7;
> END;
> $$
> LANGUAGE plpgsql;
>
> listo! desaparece el error, al utilizar la variable auxiliar "y", no
> se por qué no me acepta x:=x-128, si alguno tiene conocimiento de qué
> puede estar pasando le agradezco mucho cualquier información, saludos.
>
> ---------------------------(fin del mensaje)---------------------------
> TIP 8: explain analyze es tu amigo
>

--
Juanky Moral
"Tendré que moverme más rapido: el horizonte brilla eléctrico."
(Horizonte Eléctrico - www.losdeltonos.com )

In response to

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Alvaro Herrera 2005-01-28 23:06:45 Re: Reuso de SYSID
Previous Message Juan Pablo Espino 2005-01-28 21:40:22 sobre PL/pgSQL