Я пробую примеры для циклов FOR с веб-сайта PostgreSQLTutorial по этой ссылке и , это - это образец базы данных, который используется. Проблема в том, что я не могу приступить к работе, это следующий пример for-l oop:
CREATE OR REPLACE FUNCTION for_loop_through_query(
n INTEGER DEFAULT 10
)
RETURNS VOID AS $$
DECLARE
rec RECORD;
BEGIN
FOR rec IN SELECT title
FROM film
ORDER BY title
LIMIT n
LOOP
RAISE NOTICE '%', rec.title;
END LOOP;
END;
$$ LANGUAGE plpgsql;
Когда я запускаю select for_loop_through_query(5);
, я не получаю никакого результата! Я пробовал запускать его в DataGrip, а также в pgAdmin4, и PostgreSQL версия - 11.8 на Fedora 30 OS. Также я попытался заменить тип аргумента n на int
вместо INTEGER
. Я что-то упустил ( команда / дополнительная настройка )? Любая помощь / совет приветствуются.
PS На их веб-сайте указано, что PostgreSQL 11.3 был установлен, поэтому я предполагаю, что их примеры должны быть запущены на не намного более старой версии PostgreSQL, чем моя.
UPDATE1: Исключенный вывод должен быть:
ПРИМЕЧАНИЕ: Academy Dinosaur ВНИМАНИЕ: Ace Goldfinger ВНИМАНИЕ: Отверстия для адаптации ВНИМАНИЕ: предубеждение в отношении романа ВНИМАНИЕ: African Egg
Результат, который я получаю:
postgres=# select * FROM version();
version
--------------------------------------------------------------------------------------------------------
PostgreSQL 11.8 on x86_64-pc-linux-gnu, compiled by gcc (GCC) 9.3.1 20200408 (Red Hat 9.3.1-2), 64-bit
(1 row)
... и когда я выполняю 2 следующие команды sudo su - postgres
и psql dvdrental postgres
, я получаю следующий результат:
dvdrental=# select for_loop_through_query(5);
NOTICE: Academy Dinosaur
NOTICE: Ace Goldfinger
NOTICE: Adaptation Holes
NOTICE: Affair Prejudice
NOTICE: African Egg
for_loop_through_query
------------------------
(1 row)
В чем проблема при вызове этой функции в DataGrip и pgAdmin4 ... есть идеи?