powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Объекты, коллекции (массивы), курсоры...
5 сообщений из 5, страница 1 из 1
Объекты, коллекции (массивы), курсоры...
    #34119110
howarn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А у меня вот вопрос. Я только на этой неделе столкнулся с постгресом, а заклинание "rtfm" не помогает, поэтому спрашиваю сюда.

Вот есть такое:

1 CREATE OR REPLACE FUNCTION register.tst(OUT cur refcursor) AS
2 $BODY$declare
3 v register.tmp_;
4 begin
5 v[1] := (2,'qwe');
6 v[1] := (13,'zxc');
7 open cur for select * from cast(v as register.tmp);
8 end;$BODY$
9 LANGUAGE 'plpgsql' VOLATILE;

Знаю, что неправильно всё, но как правильно, нигде не найду. Чего хочу?
Короче, создал тип:

CREATE TYPE register.tmp AS
(id numeric,
name numeric(128));

А the fucking manual, который я должен read, говорит, что "When you define a new base type, PostgreSQL automatically provides support for arrays of that type. For historical reasons, the array type has the same name as the base type with the underscore character (_) prepended." Врёт, мне компилятор на строку 3 ругается, что нет такого типа. Далее, в строках 5 и 6 я пытаюсь присвоить элементам массива значения. Разумеется, это я выдумал сам, ибо в the fucking manual, который я должен read, вообще нет объяснения, как с этими массивами и прочими внутренними переменными работать. Ну а в строке 7 я просто хочу из массива сделать полноценный курсор.

Может быть то, что я хочу, невозможно в принципе? Может быть, мне надо сразу всё делать через ж... анус? Вот так, к примеру:

CREATE OR REPLACE FUNCTION register.tst(OUT cur refcursor) AS
$BODY$
begin
delete from tbl.tmp;
insert into tbl.tmp values (2,'qwe');
insert into tbl.tmp values (13,'zxc');
open cur for select * from tbl.tmp;
end;$BODY$
LANGUAGE 'plpgsql' VOLATILE;

Что скажете?
...
Рейтинг: 0 / 0
Объекты, коллекции (массивы), курсоры...
    #34119310
Serik Akhmetov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1) более уважительное отношение к уважаемому в данном месте (и вообще в мире) продукту, с которым вы изволили столкнуться на этой неделе
2) используйте тэг SRC и форматирование
3) что вы собственно хотите ? сформулируйте четко вопросы, а он тут не один
...
Рейтинг: 0 / 0
Объекты, коллекции (массивы), курсоры...
    #34119614
Jelis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
prepend = присоединять спереди
а у вас register.tmp_
...
Рейтинг: 0 / 0
Объекты, коллекции (массивы), курсоры...
    #34119805
.gc
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
.gc
Гость
ну нет такой фичи как массивы для составныхтипов(composite: CREATE TYPE ... AS)
...
Рейтинг: 0 / 0
Объекты, коллекции (массивы), курсоры...
    #34122644
howarn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Jelisprepend = присоединять спереди
а у вас register.tmp_

А я по-всякому пробовал. В общем, похоже, придётся изворачиваться с вставками в таблицу. Бедные винчестеры...
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Объекты, коллекции (массивы), курсоры...
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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