pl/pgSQL and escaping LIKE clauses - Mailing list pgsql-sql

From Robby Slaughter
Subject pl/pgSQL and escaping LIKE clauses
Date
Msg-id EPEHLKLEHAHLONFOKNHNCELODBAA.webmaster@robbyslaughter.com
Whole thread Raw
In response to select with multiple occurences in same table  ("William Herring" <wherring@mail.ifas.ufl.edu>)
List pgsql-sql
I'm having trouble getting LIKE clauses to work correctly inside a plpgSQL
function.

Here's my table:

 id |  val
----+-------------
  1 | hello
  2 | there
  3 | everyone


Here's my function:

CREATE FUNCTION intable(char)
RETURNS INTEGER
AS
'
DECLARE
  input ALIAS FOR $1;
  temp  INTEGER;
BEGIN
  SELECT INTO temp id FROM test WHERE val LIKE ''input%'';
  RAISE NOTICE ''Value of temp is %'',temp;
  RETURN temp;
END;
'
LANGUAGE 'plpgsql';

I should be able to SELECT('hello') and get back 1, correct?

No matter what I put in as a parameter, it always returns null.

If I change the LIKE clause to read "...LIKE ''hello%''" it does
in fact work. Or if I scrap the LIKE clause and have it
read something such as ".... id = input" (if input is an integer)
it also works fine.

Any thoughts?

Thanks,
Robby

pgsql-sql by date:

Previous
From: "Josh Berkus"
Date:
Subject: Re: select with multiple occurences in same table
Next
From: Markus Wagner
Date:
Subject: loosing connection after function call