Re: Problem with replace function in postgres - Mailing list pgsql-general

From akp geek
Subject Re: Problem with replace function in postgres
Date
Msg-id AANLkTi=vuY57MiLN-rudrWhZxOht0F-WuoCqviDuwQ39@mail.gmail.com
Whole thread Raw
In response to Re: Problem with replace function in postgres  (Pavel Stehule <pavel.stehule@gmail.com>)
List pgsql-general

CREATE OR REPLACE FUNCTION test_repl(x character varying)
  RETURNS character varying AS
$BODY$ 
DECLARE
ret_var varchar(4000);
a record;
begin
ret_var := x;

for a in select * from lookup  
loop
  ret_var := replace(ret_var,a.code,a.codeword);
end loop;
return ret_var;
END;
$BODY$
  LANGUAGE 'plpgsql' VOLATILE
  COST 100;
ALTER FUNCTION test_repl(character varying) OWNER TO postgres;


On Tue, Nov 23, 2010 at 3:07 PM, Pavel Stehule <pavel.stehule@gmail.com> wrote:
Hello

please, can you send a source code of your function?

Regards

Pavel Stehule

2010/11/23 akp geek <akpgeek@gmail.com>:
> Dear all -
>                 I am having trouble with replace function inside a function.
>  If I do the same replace function outside it works fine, Following example
> clearly explains my problem. Can you please help?
>
> create table str_table
> ( mystr varchar(1000));
> insert into str_table values ( 'This road is INDEFLY CLSD');
> insert into str_table values('That is INDEFLY open');
> insert into str_table values('That is a CLSD road');
>
> select * from str_table;
> create table lookup
> ( code varchar(100),
>   codeword varchar(100));
>
> insert into lookup values(  'INDEFLY','indefinitely');
> insert into lookup values(  'CLSD','closed');
> select 'This road is INDEFLY CLSD', test_repl('This road is INDEFLY CLSD
> INDEFLY') replaced_str
> from str_table;
> RESULT SET "  This road is INDEFLY CLSD;This road is indefinitely closed
> INDEFLY  "
> Regards

pgsql-general by date:

Previous
From: Pavel Stehule
Date:
Subject: Re: Problem with replace function in postgres
Next
From: Dmitriy Igrishin
Date:
Subject: Re: Escaping string for LIKE