Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Объекты, коллекции (массивы), курсоры... / 5 сообщений из 5, страница 1 из 1
10.11.2006, 12:37
    #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
10.11.2006, 13:16
    #34119310
Serik Akhmetov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Объекты, коллекции (массивы), курсоры...
1) более уважительное отношение к уважаемому в данном месте (и вообще в мире) продукту, с которым вы изволили столкнуться на этой неделе
2) используйте тэг SRC и форматирование
3) что вы собственно хотите ? сформулируйте четко вопросы, а он тут не один
...
Рейтинг: 0 / 0
10.11.2006, 14:26
    #34119614
Jelis
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Объекты, коллекции (массивы), курсоры...
prepend = присоединять спереди
а у вас register.tmp_
...
Рейтинг: 0 / 0
10.11.2006, 15:09
    #34119805
.gc
.gc
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Объекты, коллекции (массивы), курсоры...
ну нет такой фичи как массивы для составныхтипов(composite: CREATE TYPE ... AS)
...
Рейтинг: 0 / 0
13.11.2006, 08:18
    #34122644
howarn
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Объекты, коллекции (массивы), курсоры...
Jelisprepend = присоединять спереди
а у вас register.tmp_

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


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