postgresql - 通过 postgres 声明变量不在函数中

标签 postgresql variables declare

我想在 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

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

最佳答案

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

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

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

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

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

请引用手册学习正确的语法:

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

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

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

SELECT count(*) 
  INTO b
FROM some_table;

也请查看手册:

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

关于postgresql - 通过 postgres 声明变量不在函数中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5456581/

相关文章:

AWS 上的 MYSQL 或 PostgresQL

javascript - Javascript 是否使用动态名称解析?

MySQL 局部变量

postgresql - 无法使用损坏的Postgres运行pg_resetxlog

postgresql - 从 PostGIS 点获取纬度/经度

java - 运算符不存在 : integer = character varying

c# - 将 Oracle Sql 查询中的 sql 变量值返回给 .NET 代码

r - 如何从 R 中的另一个函数调用的函数中提取变量的名称?

c++ - 如何声明包含 B 类实例的结构 A,其中 B 类具有返回结构 A 的函数?

common-lisp - ftype 声明对 SBCL 中的内置函数有什么影响?