【问题标题】:How to declare variable in PostgreSQL [duplicate]如何在 PostgreSQL 中声明变量
【发布时间】:2011-02-09 15:29:59
【问题描述】:

我尝试在这样的代码中声明一个变量:

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

但它不起作用:

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

你能告诉我有什么问题吗?

【问题讨论】:

  • 请提供更多关于您的问题的数据
  • 最好这样写:DECLARE p_country VARCHAR; p_country : = '';选择 p_country;
  • 语法有什么问题。

标签: postgresql


【解决方案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;

这不是美,但它很管用。

【讨论】:

  • 这很有趣。但问题是我对远程服务器进行查询。我不认为我会被允许编辑 postgresql.conf。
  • 你可以要求他们在配置中添加这个,这不是火箭科学。您还可以使用临时表将变量放入。
【解决方案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';

来源:http://www.commandprompt.com/ppbook/x19832

【讨论】:

  • 但我想在函数外声明一个变量。有可能吗?
猜你喜欢
  • 2010-12-02
  • 2011-03-10
  • 2023-03-28
  • 1970-01-01
  • 2019-05-09
  • 1970-01-01
相关资源
最近更新 更多