Passing arrays to stored procedures

Поиск
Список
Период
Сортировка
От William Garrison
Тема Passing arrays to stored procedures
Дата
Msg-id 46294DD5.40905@mobydisk.com
обсуждение исходный текст
Ответы Re: Passing arrays to stored procedures
Список pgsql-general
I have a stored procedure that takes a list of IDs and uses the ANY
operator:

CREATE OR REPLACE FUNCTION CalculateTotals(
    customerList bytea[],
    out total bigint,
    out most_recent_login_date date)
AS $$
BEGIN
    SELECT
        SUM(totalsize), MAX(last_login)
    INTO
        $2,$3
    FROM
        customer
    WHERE
        customerid = ANY($1);
END;
$$ LANGUAGE 'plpgsql' STABLE;


I'm using npgsql and C#, and I've realized it doesn't support passing
arrays.  Barring things like updating npgsql, what form of hackiness
would work best here?

The customerIDs are GUIDs represented as 16-byte arrays.  I can pass
them as encoded strings separated by commas or some such silliness.  But
I don't see a nice clean split() function that returns me an array. :-(

I'm trying to find some way to pass a postgres array constructor syntax
and have that evaluated, like ARRAY['binary':bytea,...,...] or
{...,...,...} something like that.

Does anyone have any suggestions?

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

Предыдущее
От: Jeff Davis
Дата:
Сообщение: Re: unique constraint on 2 columns
Следующее
От: Tom Lane
Дата:
Сообщение: Re: Passing arrays to stored procedures