Вопрос:
Я пытаюсь объявить переменную в таком коде, но это не сработает. Можете ли вы сказать мне, в чем проблема?
ERROR: syntax error at or near «VARCHAR» LINE 2: p_country VARCHAR; DECLARE p_country VARCHAR; p_country : = »; SELECT p_country; Ответ №1
Создайте новый параметр в postgresql.conf для custom_variable_classes:
custom_variable_classes = ‘var’
Перезагрузите конфигурацию, теперь у вас есть переменная “var”, доступная во всех ваших базах данных.
Чтобы создать переменную p_country, просто используйте SET:
SET var.p_country = ‘US’; SELECT current_setting(‘var.p_country’) AS p_country;
Это не красота, но она работает.
Ответ №2
В функции PL/pgSQL вы можете объявить такие переменные:
CREATE FUNCTION identifier (arguments) RETURNS type AS ‘ DECLARE — Declare an integer. subject_id INTEGER; — Declare a variable length character. book_title VARCHAR(10); — Declare a floating point number. book_price FLOAT; BEGIN statements END; ‘ LANGUAGE ‘plpgsql’;
Источник: