PL/pgSQL: SELECT INTO EXACT
От | Matt Miller |
---|---|
Тема | PL/pgSQL: SELECT INTO EXACT |
Дата | |
Msg-id | 1122668294.3600.29.camel@dbamm01-linux обсуждение исходный текст |
Ответы |
Re: PL/pgSQL: SELECT INTO EXACT
Re: PL/pgSQL: SELECT INTO EXACT Re: PL/pgSQL: SELECT INTO EXACT |
Список | pgsql-patches |
This patch implements an optional EXACT keyword after the INTO keyword of the PL/pgSQL SELECT INTO command. The motivation is to come closer to Oracle's SELECT INTO behavior: when SELECTing INTO scalar targets, raise an exception and leave the targets untouched if the query does not return exactly one row. This patch does not go so far as to raise an exception, but it can simplify porting efforts from PL/SQL. I also feel that this EXACT behavior is overall a bit cleaner than the current PL/pgSQL behavior. Maybe I've just been brainwashed by years of Oracle'ing. Here are three excerpts from the patched PL/pgSQL documentation: "If the EXACT option is specified, then target will not be set unless the query returns exactly one row" "You can check the special FOUND variable after a SELECT INTO to determine whether the statement was successful. ... an EXACT query is successful only if exactly 1 row is returned." "...GET DIAGNOSTICS (see Section 35.6.6) to retrieve ROW_COUNT. After a SELECT INTO EXACT statement ROW_COUNT ... will be equal to 0, 1, or 2, indicating no matching rows, exactly one matching row, or greater than one matching row, respectively."
Вложения
В списке pgsql-patches по дате отправления: