sobre PL/pgSQL

From: Juan Pablo Espino <jp(dot)espino(at)gmail(dot)com>
To: pgsql-es postgresql <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: sobre PL/pgSQL
Date: 2005-01-28 21:40:22
Message-ID: 3e7daec1050128134011b9be47@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

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.

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Juanky Moral 2005-01-28 22:55:50 Re: sobre PL/pgSQL
Previous Message Ariel Romero 2005-01-28 21:10:32 RE: Problema con conexion desde delphi