Добро пожаловать в форум, Guest >> Войти | Регистрация | Поиск | Правила | | В избранное | Подписаться | ||
Все форумы / PostgreSQL |
![]() ![]() |
Cola Member Откуда: Сообщений: 425 |
Это не функция. а запрос с использованием PLSQL. Что не так, подскажите - плииз. do $$ DECLARE cnt INTEGER :=30; BEGIN cnt:=50; Select cnt; END $$; Всем за ранее благодарна. |
21 фев 21, 15:44 [22284420] Ответить | Цитировать Сообщить модератору |
Maxim Boguk Member Откуда: Melbourne, Австралия Сообщений: 4571 |
Cola, А что значит "запрос с использованием PLSQL" и куда он должен деть результат Select cnt; ? -- Maxim Boguk лучшая поддержка PostgreSQL: dataegret.ru |
21 фев 21, 16:31 [22284442] Ответить | Цитировать Сообщить модератору |
Cola Member Откуда: Сообщений: 425 |
при попытках добавить RETURNS и RETURN - ошибка. Это работает только в функциях. А у меня запрос. Как это сделать в запрос без создания функции? В Документации - пусто, только функции рассматривают. |
||||
21 фев 21, 16:35 [22284444] Ответить | Цитировать Сообщить модератору |
Maxim Boguk Member Откуда: Melbourne, Австралия Сообщений: 4571 |
Объясните русским языком что именно вы пытаетесь сделать. -- Maxim Boguk лучшая поддержка PostgreSQL: dataegret.ru |
||||||||
21 фев 21, 16:59 [22284451] Ответить | Цитировать Сообщить модератору |
Cola Member Откуда: Сообщений: 425 |
У меня есть большой запрос, объединено много других запросов, которые возвращают данные в едином формате (отчет собираю). так вот есть необходимость получить результаты из объединенных запросов в виде переменных для формирования других результатов в этот же отчет. Запрос-1 union Запрос-2 union Запрос-N union (Запрос-1 * Запрос-2/Запрос-5) и так далее. Для переменных достаточно агрегированных значений (не требуется получать массив записей). Вот такая задача. Она сложная, поэтому я собираю этот отчет в виде запроса, а не в виде функции. Потом из него сделаю функцию, но сейчас это неудобно - постоянно изменять ее.. |
||||||||
21 фев 21, 17:48 [22284472] Ответить | Цитировать Сообщить модератору |
Maxim Boguk Member Откуда: Melbourne, Австралия Сообщений: 4571 |
DO оператор НЕ МОЖЕТ возвращать результат... никакой. -- Maxim Boguk лучшая поддержка PostgreSQL: dataegret.ru |
||||||||
21 фев 21, 17:56 [22284474] Ответить | Цитировать Сообщить модератору |
Cola Member Откуда: Сообщений: 425 |
это я и сама знаю, в этом и заключается вопрос. |
||||||||
21 фев 21, 20:50 [22284550] Ответить | Цитировать Сообщить модератору |
Maxim Boguk Member Откуда: Melbourne, Австралия Сообщений: 4571 |
Если вы сами знаете то зачем вопрос задаете? -- Maxim Boguk лучшая поддержка PostgreSQL: dataegret.ru |
||||||||
21 фев 21, 21:07 [22284555] Ответить | Цитировать Сообщить модератору |
mayton Member Откуда: loopback Сообщений: 51136 |
Нужна функция. |
21 фев 21, 21:34 [22284566] Ответить | Цитировать Сообщить модератору |
Cola Member Откуда: Сообщений: 425 |
А без функции - никак? |
||||
21 фев 21, 22:10 [22284573] Ответить | Цитировать Сообщить модератору |
Cola Member Откуда: Сообщений: 425 |
То есть в простых запросах нельзя использовать полноценно PL\SQL, обязательно нужно функцию в БД создавать? |
21 фев 21, 22:12 [22284575] Ответить | Цитировать Сообщить модератору |
Maxim Boguk Member Откуда: Melbourne, Австралия Сообщений: 4571 |
именно так pl/pgsql - язык для написания хранимых процедур никак не связанный напрямую с sql базы и ничем не отличающийся от того же pl/perl или pl/v8 -- Maxim Boguk лучшая поддержка PostgreSQL: dataegret.ru |
||||
22 фев 21, 00:00 [22284599] Ответить | Цитировать Сообщить модератору |
Swa111 Member Откуда: Сообщений: 227 |
Cola, На крайний случай создавать временную функцию в pg_temp схеме, но вернуть результат сможет только функция. Если не считать извратные методы через временные таблицы или переменные среды, когда do блок побочно изменяет значение в временной таблице и следующим запросом уже читаем значение. |
22 фев 21, 11:58 [22284666] Ответить | Цитировать Сообщить модератору |
Все форумы / PostgreSQL | ![]() |