Как я пишу хранимую процедуру пост-ГРЭС, которая ничего не возвращает?

Я посмотрел бы на noscript. Также люди поджигателя (Джон barton, я думаю, является именем парня) являются очень быстро реагирующими поэтому, если Вы хотите функцию, отправляют его на группе Google или средстве отслеживания ошибки/улучшения. Я не думаю, что это в настоящее время имеет эту функцию, но проверьте 1,4 ответвления (в настоящее время в Alpha), это могло бы (никакая идея) содержат что-то вроде этого.

12
задан Erwin Brandstetter 9 October 2011 в 05:43
поделиться

3 ответа

Это не функция, которая возвращает значение, это SELECT , который вы использовали чтобы назвать это. Если он не возвращает ни одной строки, он не запускает вашу функцию.

7
ответ дан 2 December 2019 в 19:31
поделиться

Вы можете добиться «ничего не возвращается», злоупотребляя функциями, возвращающими набор:

Простая функция:

create function x () returns setof record as $$
begin
return;
END;
$$ language plpgsql;

Теперь вы можете:

# select x();
 x
---
(0 rows)

Если это не работает для вас (извините, я использую 8.5), попробуйте следующий подход:

# create function x (OUT o1 bool, OUT o2 bool) returns setof record as $$
begin
return;
END;
$$ language plpgsql;
CREATE FUNCTION

Параметры не имеют значения, но:

  • Вам нужно> 1 из них
  • Им нужно дать имя

А теперь вы можете:

# select * from x();
 o1 | o2
----+----
(0 rows)
6
ответ дан 2 December 2019 в 19:31
поделиться

У вас все в порядке. Больше ничего добавлять не нужно.

Результат строки равен нулю, так что это пустой возврат.

Я не думаю, что вы что-то можете с этим поделать. Проверяю мои функции void, все они такие же, как и ваши.

возвращает void как $$ и не возвращает оператор возврата в блоке кода.

5
ответ дан 2 December 2019 в 19:31
поделиться
Другие вопросы по тегам:

Похожие вопросы: