How to declare variable in PostgreSQL [duplicate]
I try to declare a variable in a code like this:
DECLARE
p_country VARCHAR;
p_country : = '';
SELECT p_country;
But it's doesn't work:
开发者_StackOverflow社区ERROR: syntax error at or near "VARCHAR" LINE 2: p_country VARCHAR;
Can you tell me what's the problem?
Create a new setting in postgresql.conf for custom_variable_classes:
custom_variable_classes = 'var'
Reload the config, you now have the variable "var" available in all your databases.
To create the variable p_country, just use SET:
SET var.p_country = 'US';
SELECT current_setting('var.p_country') AS p_country;
It's not a beauty, but it works.
Within a PL/pgSQL function you can declare variables like this:
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';
Source: http://www.commandprompt.com/ppbook/x19832
PL/pgSQL
I had the same problem as you. Turns out, the DECLARE statement is something from an entire different language PL/pgSQL. See https://www.postgresql.org/docs/14/plpgsql.html
PostgreSQL
To achieve this with PostgreSQL, you can do the following:
WITH myconstants (p_country) as (
values ('')
)
SELECT p_country FROM myconstants;
精彩评论