powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Хранимые процедуры. ПОМОГИТЕ!!!
4 сообщений из 4, страница 1 из 1
Хранимые процедуры. ПОМОГИТЕ!!!
    #32589285
Rumata
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Передо мной стоит следующая задача, хранимая процедура должна возвращать определенную выборку из базы данных. Ну если взять простейший вариант:

CREATE FUNCTION f() RETURNS RECORD AS '

SELECT * FROM users;

' LANGUAGE 'sql';

при попытки создания вылетает ошибка

function declared to return record returns multiple columns in final SELECT

Несложно понять, что я не верно задаю возвращаемый тип, но Я НИКАК НЕ МОГУ НАЙТИ ПРАВИЛЬНУЮ АЛЬТЕРНАТИВУ. Помогите понять, как заставить работать этот пример.
...
Рейтинг: 0 / 0
Хранимые процедуры. ПОМОГИТЕ!!!
    #32589766
mik_s
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ну, если выборка определенная, тогда создай свой тип который будет состоять из предполагаемого набора полей ( например create type lala as ( id int4, name text ).
Потом соотв. делаешь функцию:
create function () return setof lala as
'declare
myvar record;
begin
for myvar in select id, name from mytable loop
return myvar;
end loop;
end;
' language 'plpgsql'
...
Рейтинг: 0 / 0
Хранимые процедуры. ПОМОГИТЕ!!!
    #32590273
centur
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
в доке описано детально..


Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
create function () return setof lala as
'declare
myvar record;
begin
for myvar in select id, name from mytable loop
return myvar; <<<<<--- return next myvar;
end loop;

<<<<----RETURN;

end;
' language 'plpgsql'


тут косячокс ,см <<<<---


выбор из функции select * from myfunc() as (перечисляем через запятую все имена полей и типов возвращаемых полей. напрbмер id int, name varchar);
...
Рейтинг: 0 / 0
Хранимые процедуры. ПОМОГИТЕ!!!
    #32590781
Rumata
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Странно, у меня почему-то вылетает ошибка при попытке определения типа:

Код: plaintext
CREATE TYPE t1 AS (id int4, name text)

может это из-за версии постгресса? у меня 7.2
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Хранимые процедуры. ПОМОГИТЕ!!!
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]