Обсуждение: cast bytea to text

Поиск
Список
Период
Сортировка

cast bytea to text

От
"Willy-Bas Loos"
Дата:
Dear List,

How can i cast bytea to text?
I´ve read about the DECODE function, but my 8.1 backend doesn´t recognize it.
I´m trying to create an implicit cast using the function:

create or replace function bytea2text(bytea) returns text as
$$
select DECODE($1, 'escape');
$$
language sql strict;

Answer:
ERROR: function decode(bytea, "unknown") does not exist
SQL state: 42883
Hint: No function matches the given name and argument types. You may need to add explicit type casts.
Context: SQL function "bytea2text"


Re: cast bytea to text

От
Raymond O'Donnell
Дата:
Willy-Bas Loos wrote:

> ERROR: function decode(bytea, "unknown") does not exist
> SQL state: 42883
> Hint: No function matches the given name and argument types. You may
> need to
> add explicit type casts.
> Context: SQL function "bytea2text"

That's because the first parameter of decode() should be of type TEXT,
not bytea:

http://www.postgresql.org/docs/8.1/static/functions-binarystring.html#FUNCTIONS-BINARYSTRING-OTHER

Ray.

---------------------------------------------------------------
Raymond O'Donnell, Director of Music, Galway Cathedral, Ireland
rod@iol.ie
---------------------------------------------------------------

Re: cast bytea to text

От
Peter Eisentraut
Дата:
Willy-Bas Loos wrote:
> How can i cast bytea to text?
> I´ve read about the DECODE function, but my 8.1 backend doesn´t
> recognize it.

You want to use encode() in that direction.

--
Peter Eisentraut
http://developer.postgresql.org/~petere/

Re: cast bytea to text

От
"Albe Laurenz"
Дата:
> How can i cast bytea to text?
> I´ve read about the DECODE function, but my 8.1 backend
> doesn´t recognize it.
> I´m trying to create an implicit cast using the function:
>
> create or replace function bytea2text(bytea) returns text as
> $$
> select DECODE($1, 'escape');
> $$
> language sql strict;
>
> Answer:
> ERROR: function decode(bytea, "unknown") does not exist

Try ENCODE instead of DECODE ...

Yours,
Laurenz Albe

Re: cast bytea to text

От
"Willy-Bas Loos"
Дата:
yep, sry it took me a while to answer. It works now.
here´s my code:
-- start code --
create or replace function bytea2text(bytea) returns text as
$$
select ENCODE($1, 'escape');
$$
language sql strict;

create cast (bytea as text)
    with function bytea2text(bytea)
    as implicit;
-- end code --

thanks!

Willy-Bas Loos

On 3/1/07, Albe Laurenz <all@adv.magwien.gv.at> wrote:
> How can i cast bytea to text?
> I´ve read about the DECODE function, but my 8.1 backend
> doesn´t recognize it.
> I´m trying to create an implicit cast using the function:
>
> create or replace function bytea2text(bytea) returns text as
> $$
> select DECODE($1, 'escape');
> $$
> language sql strict;
>
> Answer:
> ERROR: function decode(bytea, "unknown") does not exist

Try ENCODE instead of DECODE ...

Yours,
Laurenz Albe