Перейти к содержимому

Фотография
- - - - -

Функции на языке PL/pgSQL для выборки данных из таблицы


  • Вы не можете создать новую тему
  • Авторизуйтесь для ответа в теме
Сообщений в теме: 2

#1 VladimirBuzin

VladimirBuzin

    Прохожий

    Топикстартер
  • Участник
  • 0
    6 сообщ.

Отправлено 01 Апрель 2018 в 17:43

Добрый день! Нужно вывести пациентов из таблицы patient_new с идентификатором patient_id, большим нижней границы. Я написал функцию:

CREATE FUNCTION patient_id_search_plpgsql(patnum int)
RETURNS TABLE(patient_id int, surname CHAR(30), name CHAR(30), temperament CHAR(30)) AS $$
BEGIN
RETURN QUERY SELECT patient_id, surname, name, temperament
FROM patient_mew WHERE patient_id > patnum;
END;
$$ LANGUAGE plpgsql;

Как вызвать эту функцию? Я пытался писать:

SELECT * FROM patient_id_search_plpgsql(11);

и ничего не вышло. Сможете указать ошибки? Как подключить язык PL/pgSQL в pgadmin 4?


  • 0

Спонсор

#2 VladimirBuzin

VladimirBuzin

    Прохожий

    Топикстартер
  • Участник
  • 0
    6 сообщ.

Отправлено 02 Апрель 2018 в 11:05

Там опечатка. Имя таблицы - patient_new. Но всё равно высветились ошибки:

ERROR: column reference "patient_id" is ambiguous
LINE 1: SELECT patient_id, surname, name, temperament 
^
DETAIL: It could refer to either a PL/pgSQL variable or a table column.
QUERY: SELECT patient_id, surname, name, temperament 
FROM patient_new WHERE patient_id > patnum
CONTEXT: PL/pgSQL function patient_id_search_plpgsql(integer) line 3 at RETURN QUERY
SQL state: 42702

  • 0

#3 Volly

Volly

    Увлеченный

  • Участник
  • 110
    528 сообщ.

Отправлено 02 Апрель 2018 в 15:23

Сможете указать ошибки?

А сервер вам не указывает ошибки?


Сообщение отредактировал Volly: 02 Апрель 2018 в 15:24

  • 0



Похожие темы Свернуть

Статистика

Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 скрытых пользователей