Re: Catch multiple records when doing Select Into

Поиск
Список
Период
Сортировка
От Ketema
Тема Re: Catch multiple records when doing Select Into
Дата
Msg-id 1162393768.645248.3340@b28g2000cwb.googlegroups.com
обсуждение исходный текст
Ответ на Catch multiple records when doing Select Into  ("SunWuKung" <Balazs.Klein@t-online.hu>)
Ответы Re: Catch multiple records when doing Select Into  ("SunWuKung" <Balazs.Klein@t-online.hu>)
Список pgsql-general
It would be easier if we could see the context in which you are doing
the select into.  However I think this may help.  Try putting the
select into in a loop:

declare
     _result record;
     _rows integer;
begin
     _rows := 0;
     for _result in select statement here loop
           in here put logic to raise your exception if you get more
than one result
          _rows := _rows + 1;
          if _rows > 1 then raise exception 'Hey too many rows';
          return next _result;
     end loop;
end;

On Oct 31, 4:15 am, "SunWuKung" <Balazs.Kl...@t-online.hu> wrote:
> I have a SELECT INTO varname columname FROM ... statement and I would
> like to raise an exception when that returns more than one record.
> GET DIAGNOSTICS rowcount = ROW_COUNT seems to return always one for
> this. Currently I find no other way to do that than to run this
> statement twice - first to see how many records it returns, which seems
> very inefficient.
>
> I can see that this will be handled for 8.2, but for 8.1 what is the
> best practice to do this?
>
> Thanks.
> SWK


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

Предыдущее
От: "Ketema"
Дата:
Сообщение: Select permissions on System tables
Следующее
От: "Mike G"
Дата:
Сообщение: Cannot rename file pg_xlog\0000.....