[pgsql-jp: 30439] Re: PL/pgSQL内でのLIKE 節の使用法
Jun Kitamura
kitamura @ zoozee.jp
2003年 7月 12日 (土) 17:25:15 JST
北村です。
> PL/pgSQL内でのLIKE節の使用法について質問させて下さい。
(略)
> 変数strを使って同じ意味をもたせたいと思っています。
> *********************************************************
> DROP TABLE testrel;
> CREATE TABLE testrel (string TEXT);
> INSERT INTO testrel VALUES ('testdayo');
> CREATE OR REPLACE FUNCTION testlike() RETURNS TEXT AS '
> DECLARE
> str TEXT;
> result TEXT;
> BEGIN
> str := ''test'';
> result := ''initialize'';
>
> SELECT string
> FROM testrel
> INTO result
> WHERE string LIKE ''%test%''; -- <- Here!
> RETURN result;
> END;
> ' LANGUAGE 'plpgsql';
> *********************************************************
WHERE string LIKE ''%'' || str || ''%''; -- <- Here!
としてやればOKです。
str は変数です。引数の ALIAS にするおつもりだと思いますが、
ちゃんと動きます。
CREATE OR REPLACE FUNCTION testlike(text) RETURNS TEXT AS '
DECLARE
str ALIAS FOR $1;
result TEXT;
BEGIN
result := ''initialize'';
SELECT string
FROM testrel
INTO result
WHERE string LIKE ''%'' || str || ''%''; -- <- Here!
RETURN result;
END;
' LANGUAGE 'plpgsql';
結果
test=# select testlike('dayo');
testlike
----------
testdayo
(1 row)
でわ。
pgsql-jp メーリングリストの案内