Thread: Passing a String with special character as an input

Passing a String with special character as an input

From
akp geek
Date:
Hi -

           This is related to my earlier post. For the function I am passing a string. But the string some time has a single quote inside the string like "IT's a String Test" , How can I handle that, can you please help?



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;

Re: Passing a String with special character as an input

From
Pavel Stehule
Date:
Hello

2010/11/23 akp geek <akpgeek@gmail.com>:
> Hi -
>            This is related to my earlier post. For the function I am passing
> a string. But the string some time has a single quote inside the string like
> "IT's a String Test" , How can I handle that, can you please help?

on stored procedure level you can do nothing

in SQL level, you have to duble quotes

like INSERT INTO data VALUES('Peter''s book');

regards

Pavel Stehule


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

Re: Passing a String with special character as an input

From
John R Pierce
Date:
On 11/23/10 12:34 PM, akp geek wrote:
> Hi -
>
>            This is related to my earlier post. For the function I am
> passing a string. But the string some time has a single quote inside
> the string like "IT's a String Test" , How can I handle that, can you
> please help?
>

at the SQL level, pass it as a parameter.

like, in perl...

my $sth = $dbh->prepare('select test_repl(?);');
$sth->execute("It's a String Test");

(or my $sth->execute('It\'s a String Test'); ...)