【问题标题】:Declare Variable Not In Function by postgres通过 postgres 声明变量不在函数中
【发布时间】:2011-07-24 07:36:11
【问题描述】:

我想在 postgres 中声明变量,但不在函数中...

Declare
    c varchar;
    a integer;
    b integer;

    select b = count (*) from table

    set a = 1
        while a <= b  
begin 

    select c = [c] from table where id = a

    if (c = '1')
        insert into table2 select(*) from table

end


set a = a+1

但错误错误:“varchar”处或附近的语法错误 第 2 行:c varchar; ^ 我希望任何人都可以帮助我

【问题讨论】:

    标签: postgresql variables declare


    【解决方案1】:

    如果您使用的是 9.0,则可以使用 DO 语句使用匿名块:

    http://www.postgresql.org/docs/current/static/sql-do.html

    在 9.0 之前你不能使用匿名 pl/pgSQL 块,你需要为此创建一个函数。

    此外,您的 pl/pgSQL 语法完全错误。

    你不能在同一行中有一个赋值语句和一个 WHILE 语句。您还缺少 WHILE 循环的其他必需关键字。

    请参考手册学习正确的语法:

    http://www.postgresql.org/docs/current/static/plpgsql-control-structures.html#AEN50163

    从选择中读取值到变量的语法也是错误的。

    检索 SELECT 结果的正确语法是:

    SELECT count(*) 
      INTO b
    FROM some_table;
    

    也请查看手册:

    http://www.postgresql.org/docs/current/static/plpgsql-statements.html#PLPGSQL-STATEMENTS-SQL-ONEROW

    【讨论】:

      猜你喜欢
      • 2018-11-10
      • 1970-01-01
      • 2011-05-12
      • 2021-04-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-10-03
      • 1970-01-01
      相关资源
      最近更新 更多