powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / unnest(composite_type[])
4 сообщений из 4, страница 1 из 1
unnest(composite_type[])
    #38943576
VanillaNInja
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Никак не пойму, как можно работать с массивами композитных типов

Хочу сделать unnest, а потом вытащить по полю значение, а не получается :-/

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
[SQL]BEGIN;

drop type if exists typing_resources_test;
CREATE  TYPE typing_resources_test AS (
	resource_id integer,
	group_id integer
);

-- plpgsql:
DO
$$
DECLARE
	_resources typing_resources_test[];
BEGIN
	
	
	_resources[0]:=(1,2)::typing_resources_test;
	_resources[1]:=(3,4)::typing_resources_test;
	RAISE NOTICE ' %' , (select resource_id from (select unnest(_resources))x where group_id= 4  );
	--


END;
$$;

NOTICE:  type "typing_resources_test" does not exist, skipping

[Err] ERROR:  column "resource_id" does not exist
LINE 1: SELECT (select resource_id from (select unnest(_resources))x...
                       ^
QUERY:  SELECT (select resource_id from (select unnest(_resources))x where group_id= 4  )
CONTEXT:  PL/pgSQL function inline_code_block line 9 at RAISE



посоветуйте ,как это лучше провернуть, пжл?
...
Рейтинг: 0 / 0
unnest(composite_type[])
    #38943587
qwwq
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VanillaNInja,

а так ?
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
BEGIN;

drop type if exists typing_resources_test;
CREATE  TYPE typing_resources_test AS (
	resource_id integer,
	group_id integer
);

-- plpgsql:
DO
$$
DECLARE
	_resources typing_resources_test[];
BEGIN
	
	
	_resources[0]:=(1,2)::typing_resources_test;
	_resources[1]:=(3,4)::typing_resources_test;
	RAISE NOTICE ' %' , (select resource_id from (select * FROM unnest(_resources)) x where group_id= 4  );
	--


END;
$$;
rollback;

...
Рейтинг: 0 / 0
unnest(composite_type[])
    #38943590
Фотография Maxim Boguk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VanillaNInja,

Код: plaintext
1.
2.
- 	RAISE NOTICE ' %' , (select resource_id from (select unnest(_resources))x where group_id= 4  );
+      RAISE NOTICE ' %' , (select resource_id from (select * FROM unnest(_resources))x where group_id= 4);


--
Maxim Boguk
www.postgresql-consulting.ru
...
Рейтинг: 0 / 0
unnest(composite_type[])
    #38943610
VanillaNInja
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Читая магия! Работает!
Спасибо вам большое еще раз!
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / unnest(composite_type[])
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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