SELECT INTO returning more than one row

Поиск
Список
Период
Сортировка
От Zac
Тема SELECT INTO returning more than one row
Дата
Msg-id d98o6p$i1p$1@news.hub.org
обсуждение исходный текст
Список pgsql-sql
Hi.

I have this problem in a plpgsql function:

SELECT INTO myvar col FROM table WHERE ...;

IF <query returns more than one row> THENdo something
ELSE IF <query returns no rows> THENdo something else
ELSEdo other things

If <query returns no rows> I know that myvar IS NULL OR GET DIAGNOSTICS 
ROW_COUNT is zero.

Is there a way to know if the query returned more than one row?
In Oracle PL/SQL I can catch the TOO_MANY_ROWS exception but in Postgres 
I found no way for doing it:

- myvar is correctly valued with the first occurrence of the result
- FOUND is TRUE
- GET DIAGNOSTICS ROW_COUNT is 1 (it counts only fetched rows)

I tried to use a cursor but the only way to know how many rows it 
returned is to fetch them all. (And I don't like this solution)

Thanks in advance.


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

Предыдущее
От: "Mukesh Ghatiya"
Дата:
Сообщение: cross-table reference
Следующее
От: Stefan Becker
Дата:
Сообщение: Re: customising serial type