powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Не понимаю как вызвать функцию
3 сообщений из 3, страница 1 из 1
Не понимаю как вызвать функцию
    #39302807
alexkayzer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
есть функция
CREATE FUNCTION add_sip(pname integer, psecret integer)
RETURNS integer
AS $BODY$
BEGIN SELECT * FROM sip WHERE name = 'pname';
IF secret NOTNULL THEN UPDATE cds.sip SET secret = psecret WHERE name = pname;
ELSE INSERT INTO cds.sip(name, secret) VALUES('pname', 'psecret');
END IF;
END;

$BODY$
LANGUAGE plpgsql;

пытаюсь ее вызвать
SELECT add_sip('111111', '222222');
ошибка
ERROR: query has no destination for result data
SQL-состояние: 42601
Подсказка: If you want to discard the results of a SELECT, use PERFORM instead.
Контекст: PL/pgSQL function add_sip(integer,integer) line 2 at SQL statement

Делаю через PERFORM add_sip('111111', '222222');

ERROR: syntax error at or near "PERFORM"
SQL-состояние: 42601
Символ: 1


Все мануалы уже перечитал по 20 раз менял вывод функции через ретурны... ни чего не срабатывает(((
...
Рейтинг: 0 / 0
Не понимаю как вызвать функцию
    #39302815
Фотография vyegorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alexkayzerе
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
CREATE FUNCTION add_sip(pname integer, psecret integer) 
RETURNS integer
  AS $BODY$
 BEGIN SELECT * FROM sip WHERE name = 'pname';
IF secret NOTNULL THEN 	UPDATE cds.sip SET secret = psecret WHERE name = pname;
ELSE INSERT INTO cds.sip(name, secret) VALUES('pname', 'psecret');
END IF;
END;

$BODY$
  LANGUAGE plpgsql;


Вы выбираете все колонки из таблицы. В ... куда?
Ошибка говорит же -- либо укажите куда (переменную), либо SELECT на PERFORM замените.
...
Рейтинг: 0 / 0
Не понимаю как вызвать функцию
    #39302819
alexkayzer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
vyegorov,
Спасибо огромное! не на тот селект грешил!!!!!!!
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Не понимаю как вызвать функцию
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]