Re: Scaler forms as function arguments

Поиск
Список
Период
Сортировка
От Joe Conway
Тема Re: Scaler forms as function arguments
Дата
Msg-id 3FC6E15E.2030300@joeconway.com
обсуждение исходный текст
Ответ на Re: Scaler forms as function arguments  (Richard Huxton <dev@archonet.com>)
Ответы Re: Scaler forms as function arguments
Список pgsql-sql
Richard Huxton wrote:
> On Wednesday 26 November 2003 15:40, Andreas Tille wrote:
>>I want to write a function of the following type
>>
>>   CREATE FUNCTION test ( <scalar form type> )
>>         RETURNS setof MyTable
>>         AS
>>         'SELECT * FROM MyTable WHERE id IN $1'
>>         LANGUAGE 'SQL' ;
> 
> Not as you've done it. You could pass in text "(1,2,3)", build your query and 
> use EXECUTE to execute it. Alternatively, you might be able to do it with an 
> array parameter (sorry, I don't use arrays, so I can't be sure).

In 7.4 you could use an array. It would look like this:

CREATE TABLE mytable (id int, idval text);
INSERT INTO mytable VALUES (1,'a');
INSERT INTO mytable VALUES (2,'b');
INSERT INTO mytable VALUES (3,'c');

CREATE FUNCTION test (int[]) RETURNS setof MyTable AS '
SELECT * FROM mytable WHERE id = ANY ($1)
' LANGUAGE 'SQL' ;

regression=# SELECT * FROM test(ARRAY[1,3]); id | idval
----+-------  1 | a  3 | c
(2 rows)

HTH,

Joe




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

Предыдущее
От: Richard Huxton
Дата:
Сообщение: Re: Scaler forms as function arguments
Следующее
От: Greg Stark
Дата:
Сообщение: Re: Scaler forms as function arguments