array in function

Поиск
Список
Период
Сортировка
От Pena Kupen
Тема array in function
Дата
Msg-id 1750529416.3096311393231340773.JavaMail.kupen@wippies.fi
обсуждение исходный текст
Ответы Re: array in function  (Pavel Stehule <pavel.stehule@gmail.com>)
Список pgsql-sql
Hi,

I have a problem with function, where I want to use execute and create sql for it.

My table is:
create table types (
id integer,
type_id character varying,
explain character varying
);

And function:
CREATE or REPLACE FUNCTION hasType(_list character varying[]) RETURNS integer   LANGUAGE plpgsql   AS $$

DECLARE hasValue integer;
BEGINEXECUTE 'SELECT 1 FROM types WHERE type_id ANY('|| _list ||') ' INTO hasValue;IF hasValue IS NULL THEN    RETURN
0;ELSE   RETURN 1;END IF;                             
END;
$$;

Executing function with array parameter:
select hasType(ARRAY['E','F','','']);

I got error:
SQL error:
ERROR:  operator is not unique: unknown || character varying[] at character 49
HINT:  Could not choose a best candidate operator. You might need to add explicit type casts.
QUERY:  SELECT  'SELECT 1 FROM types WHERE type_id ANY('||  $1  ||') '
CONTEXT:  PL/pgSQL function "hastype" line 4 at EXECUTE statement
In statement:
select hasType(ARRAY['E','F','','']);

How to add array in parameter list to sql-sentence?

-kupen


--
Wippies-vallankumous on täällä! Varmista paikkasi vallankumouksen eturintamassa ja liity Wippiesiin heti!
http://www.wippies.com/





В списке pgsql-sql по дате отправления:

Предыдущее
От: amul sul
Дата:
Сообщение: SRF_RETURN_NEXT Error: rows returned by function are not all of the same row type
Следующее
От: Pavel Stehule
Дата:
Сообщение: Re: array in function