Re: [pgsql-ru-general] Хранимая процедура: возврат строки разного формата

Поиск
Список
Период
Сортировка
От Dmitriy Igrishin
Тема Re: [pgsql-ru-general] Хранимая процедура: возврат строки разного формата
Дата
Msg-id AANLkTinkQBkR8RnPDE4oXR6ijTNfWA-g9T7N_UbD8aaf@mail.gmail.com
обсуждение исходный текст
Ответ на Re: [pgsql-ru-general] Хранимая процедура: возврат строки разного формата  (Dmitriy Igrishin <dmitigr@gmail.com>)
Ответы Re: Хранимая процедура: возврат строки разного формата  ("Dmitry E. Oboukhov" <unera@debian.org>)
Список pgsql-ru-general


7 марта 2011 г. 22:56 пользователь Dmitry E. Oboukhov <unera@debian.org> написал:

DI> Используйте SELECT * FROM foo();

в приведенном примере SELECT foo() работает,
а вот про
SELECT * FROM foo()

говорит ошибка:

ERROR:  a column definition list is required for functions returning "record"
SELECT * FROM foo()
             ^

понятное дело что определить column definition list заранее я не могу,
поскольку дочерние таблицы - разные.

и как быть?
Так псевдотип RECORD по своей сути не имеет предопределённой структуры,
то необходимо явно её указывать (включая точный тип данных каждого столбца)
в момент выборки.
Можно использовать hstore, который, начиная с 9.0,
может конструироваться из RECORD.



DI> Если функции quote_ident(), quote_literal() и quote_nullable(). Первая
DI> принимает в кач-ве аргумента только текст, а вторая и третья перегружены.
DI> Проверьте аргумент какого типа Вы указываете при вызове.

ага поставил ::text и заработало, спасибо!
--

. ''`.                               Dmitry E. Oboukhov
: :’  :   email: unera@debian.org jabber://UNera@uvw.ru
`. `~’              GPGKey: 1024D / F8E26537 2006-11-21
 `- 1B23 D4F8 8EC0 D902 0555  E438 AB8C 00CF F8E2 6537



--
// Dmitriy.


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

Предыдущее
От: "Dmitry E. Oboukhov"
Дата:
Сообщение: Re: Pg documentation in russian
Следующее
От: "Dmitry E. Oboukhov"
Дата:
Сообщение: Re: хранимая процедура: как вернуть NOT FOUND?