С SQL Server я могу выполнить код ad hoc T-SQL с полной процедурной логикой через SQL Server Management Studio или любой другой клиент. Я начал работать с PostgreSQL и столкнулся с некоторой разницей в том, что PGSQL требует, чтобы какая-либо логика была встроена в функцию.Как я могу выполнить код pl/pgsql без создания функции?
Есть ли способ выполнить код PL/PGSQL без создания функции?
Для тех, кто нашел этот ответ и попробовал его только для получения« ОШИБКИ: синтаксис ошибка в точке «SELECT» или рядом с ней, вам нужны BEGIN и END. DO $$ BEGIN/* pl/pgsql здесь */END $$ –
Но как этот код может вернуть результат запроса? Если я поставлю SELECT в части pl/pgsql, я получаю 'ERROR: запрос не имеет адресата для данных результата' – isapir
@Igal: Он не может. Вы ничего не можете вернуть из инструкции 'DO'. Вы можете поднимать уведомления или записывать во временную таблицу или открывать курсор как возможные обходные пути. –