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 )
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 |