как объявить переменную в PostgreSQL - PullRequest
2 голосов
/ 19 апреля 2010

Я пытаюсь объявить переменную в подобном коде, но она не работает. Можете ли вы сказать мне, в чем проблема?

ERROR:  syntax error at or near "VARCHAR"
LINE 2:  p_country VARCHAR;


DECLARE
    p_country VARCHAR;
 p_country : = ''; 
SELECT p_country; 

Ответы [ 2 ]

5 голосов
/ 19 апреля 2010

Создайте новый параметр в 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 голосов
/ 19 апреля 2010

В функции 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';

Источник: http://www.commandprompt.com/ppbook/x19832

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...