Появляется ошибка Return type cannot be empty
впервые работал в pgAdmin 4. Пытался написать функцию, но я не могу ее даже сохранить, постгрес жалуется "Return type cannot be empty". Просил Гпт переписать, в итоге он тоже не помощник. Вот код функции. Помогите пожалуйста исправить ошибку.
CREATE OR REPLACE FUNCTION find_cheapest_pharmacy(
pdrugname VARCHAR(30),
pquantity INTEGER
)
RETURNS TABLE (
pharmacy_id INTEGER ,
pharmacyname VARCHAR(30) ,
pharmacyadress VARCHAR(30) ,
packprice INTEGER
) AS
$$
DECLARE
drug_id INTEGER;
min_price INTEGER;
BEGIN
-- Поиск DRUG_ID по названию лекарства
SELECT d.drug_id
INTO drug_id
FROM drug d
WHERE d.drugname = pdrugname;
-- Если лекарство не найдено, выбрасываем исключение
IF drug_id IS NULL THEN
RAISE EXCEPTION 'Drug not found';
END IF;
-- Поиск минимальной цены среди аптек с достаточным количеством лекарства
SELECT MIN(pd.packprice)
INTO min_price
FROM pharmacydrug pd
WHERE pd.drug_id = drug_id
AND pd.drugsamount >= pquantity;
-- Если минимальная цена не найдена, выводим сообщение
IF min_price IS NULL THEN
RAISE EXCEPTION 'No pharmacy found with enough quantity for the drug %', pdrugname;
END IF;
-- Поиск аптеки с минимальной ценой
RETURN QUERY
SELECT p.pharmacy_id, p.pharmacyname, p.pharmacyadress, pd.packprice
FROM pharmacydrug pd
JOIN pharmacy p ON pd.pharmacy_id = p.pharmacy_id
WHERE pd.drug_id = drug_id
AND pd.drugsamount >= pquantity
AND pd.packprice = min_price;
END;
$$ LANGUAGE plpgsql;
Ответы (1 шт):
Автор решения: user625044
→ Ссылка
Извините за такой дурацкий вопрос, я просто не посмотрел на еще одно поле куда надо вписывать тип возвращаемого результата... Вопрос закрыт