PostgreSQL | Как создать переменную в теле функции? — efim360.ru

PostgreSQL | Как создать переменную в теле функции?

Для создания переменной внутри тела функции нужно использовать конструкцию DECLARE

Выглядеть это будет так:

-- Функция с переменной через оператор DECLARE и :=

CREATE FUNCTION test1.aa23()

RETURNS bigint

LANGUAGE 'plpgsql'

AS $BODY$

    DECLARE ss bigint := 10;

    BEGIN -- Обязательно BEGIN

        RETURN ss;

    END -- Обязательно END

$BODY$;

 

-- вызов

SELECT test1.aa23();

 

После первого тега $BODY$ нужно записать ключевое слово DECLARE. После него нужно записать название переменной (идентификатор привязки), которая будет работать внутри этой функции.

Мы назовём новую переменную ss. После этого нужно явно указать тип переменной, которую мы создали. Мы выбираем тип bigint

Следующим шагом после объявления переменной мы ПРИСВАИВАЕМ для неё значение. Делается это при помощи конструкции двоеточие и символ равенства :=

В качестве значения присваиваем число 10. У нас самая простая функция.

 

Далее начинается сама логика работы функции по языку 'plpgsql'. Ключевые слова BEGIN и END обязательны. Между ними пишем команду RETURN, которая должна вернуть значение присвоенной переменной ss.

 

Вызов функции осуществляем через оператор SELECT. Функция ничего не принимает, а просто возвращает 10.

Функция с объявленной переменной внутри своего тела через DECLARE - PostgreSQL
Функция с объявленной переменной внутри своего тела через DECLARE - PostgreSQL

 

Информационные ссылки

PostgreSQL | Как вернуть из функции идентификатор вставки записи в таблицу?

PostgreSQL | Функция проверки наличия пробелов в строке данных или строке запроса с клиента

Официальный сайт PostgreSQL - https://www.postgresql.org

Команды SQL - https://postgrespro.ru/docs/postgresql/14/sql-commands

Команда CREATE FUNCTION - https://postgrespro.ru/docs/postgresql/14/sql-createfunction

Команда SELECT - https://postgrespro.ru/docs/postgresql/14/sql-select

Раздел "43.3.6. Упорядочение переменных PL/pgSQL" - https://postgrespro.ru/docs/postgresql/14/plpgsql-declarations#PLPGSQL-DECLARATION-COLLATION

Раздел "43.6. Управляющие структуры" - https://postgrespro.ru/docs/postgresql/14/plpgsql-control-structures

Графический интерфейс pgAdmin - https://www.pgadmin.org