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.steh...@gmail.com>wrote: > Hello > > please, can you send a source code of your function? > > Regards > > Pavel Stehule > > 2010/11/23 akp geek <akpg...@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 >