|
|
|
select Переменая составного типа в in select...
|
|||
|---|---|---|---|
|
#18+
PG 9.5 Переменные doc и res имеют один и тот же составной тип В функции хочется не расписывая состав переменной (там порядка сотни полей) получить возвращаемые значения в конструкции IN SELECT for doc in SELECT sp.res FROM report.main_list(in_dtbeg, in_dtend, in_orguuid, in_with_children) sp loop ....................... end loop ОШИБКА: столбец sp.res не существует Подскажите правильный синтаксис для данной конструкции ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.06.2016, 13:27 |
|
||
|
select Переменая составного типа в in select...
|
|||
|---|---|---|---|
|
#18+
shaposh, шапку report.main_list() приведите -- будем посмотреть. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.06.2016, 13:37 |
|
||
|
select Переменая составного типа в in select...
|
|||
|---|---|---|---|
|
#18+
CREATE OR REPLACE FUNCTION report.main_list ( in_dtbeg timestamp, in_dtend timestamp, in_orguuid uuid, in_with_children boolean ) RETURNS TABLE ( res report.type_main_list_result ) AS ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.06.2016, 18:00 |
|
||
|
select Переменая составного типа в in select...
|
|||
|---|---|---|---|
|
#18+
CREATE TYPE report.type_main_list_result AS ( id BIGINT, org_uuid UUID, org_name VARCHAR(255), org_department_name VARCHAR(255), org_subdepartment_name VARCHAR(255), kt_id INTEGER, kt_count INTEGER, kt_uuid UUID, kt_number VARCHAR(50), ............. Ну и так далее.... ); ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.06.2016, 18:01 |
|
||
|
select Переменая составного типа в in select...
|
|||
|---|---|---|---|
|
#18+
Вот так-то работает: for doc in SELECT * FROM report.main_list(in_dtbeg, in_dtend, in_orguuid, in_with_children) sp но как то некошерно оно.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.06.2016, 18:02 |
|
||
|
select Переменая составного типа в in select...
|
|||
|---|---|---|---|
|
#18+
shaposhCREATE TYPE report.type_main_list_result AS ( id BIGINT, org_uuid UUID, org_name VARCHAR(255), org_department_name VARCHAR(255), org_subdepartment_name VARCHAR(255), kt_id INTEGER, kt_count INTEGER, kt_uuid UUID, kt_number VARCHAR(50), ............. Ну и так далее.... ); а в этом "и так далее" есть поле под названием res? в этом и была суть вопроса qwwq, так что вы на него ещё не ответили. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.06.2016, 22:27 |
|
||
|
select Переменая составного типа в in select...
|
|||
|---|---|---|---|
|
#18+
CREATE OR REPLACE FUNCTION report.main_list ( in_dtbeg timestamp, in_dtend timestamp, in_orguuid uuid, in_with_children boolean ) RETURNS TABLE ( -- ВНИМАТЕЛЬНО ЧИТАЕМ.... НЕ ТОРОПЯСЬ.... RES -- ВОТ ОНО! report.type_main_list_result ) AS ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.06.2016, 08:27 |
|
||
|
select Переменая составного типа в in select...
|
|||
|---|---|---|---|
|
#18+
shaposh, Запрос `SELECT sp.res FROM report.main_list(in_dtbeg, in_dtend, in_orguuid, in_with_children) sp` (с нужными аргументами) отрабатывает как SQL (вне PL/pgSQL)? И какая шапка у запроса `SELECT * FROM report.main_list(in_dtbeg, in_dtend, in_orguuid, in_with_children) sp`? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.06.2016, 08:33 |
|
||
|
select Переменая составного типа в in select...
|
|||
|---|---|---|---|
|
#18+
Тема закрыта - Вопрос переформулирован с приложением тестового скрипта ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.06.2016, 08:57 |
|
||
|
select Переменая составного типа в in select...
|
|||
|---|---|---|---|
|
#18+
shaposh, так делайте Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.06.2016, 09:07 |
|
||
|
select Переменая составного типа в in select...
|
|||
|---|---|---|---|
|
#18+
Ну это решение как то очевидно и не интересно. Если делать так, то не совсем непонятно зачем было огород городить с реализацией составных типов.... Точно так же могу по отдельности эти переменные как выходные параметры в исходной функции объявить. 100 полей в составном типе... Хочется полаконичнее конструкцию ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.06.2016, 09:14 |
|
||
|
select Переменая составного типа в in select...
|
|||
|---|---|---|---|
|
#18+
shaposh, тогда просто Код: sql 1. который и есть ваш композит. а объявить как исходные параметры (часть RETURNS если правильно вас понял) возможно только с 8.4 версии постгреса, т.е. такая возможность была не всегда. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.06.2016, 09:27 |
|
||
|
select Переменая составного типа в in select...
|
|||
|---|---|---|---|
|
#18+
shaposh не совсем непонятно зачем было огород городить с реализацией составных типов.... сделайте ,OUT rec "составной тип" ) RETURNS Setof "составной тип" и пользуйтесь. SLECT (rec).* FROM fun() т.е. тут приходится работать с тем, что дают, а не с интуициями. там много где с синтакс конструкциями наваяли поперек интуитивных ожиданий. азия-с(с). привыкайте. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.06.2016, 10:26 |
|
||
|
|

start [/forum/topic.php?fid=53&msg=39252449&tid=1997181]: |
0ms |
get settings: |
12ms |
get forum list: |
21ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
202ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
49ms |
get tp. blocked users: |
1ms |
| others: | 249ms |
| total: | 553ms |

| 0 / 0 |
