postgresql – PSQL脚本中的变量,无需创建函数

我试图在下面的示例中使用变量来运行Psql脚本而不声明函数并且必须调用它们.

DECLARE
    result TEXT;
BEGIN
    SELECT INTO result name 
FROM test;

    RAISE NOTICE result;
END;

表测试只有1行和列.这是否可能,而无需将此脚本包装在函数中.这将允许我通过say命令行更容易调用脚本.

多谢你们.

解决方法

您可以使用 DO来创建和执行匿名函数

DO executes an anonymous code block,or in other words a transient anonymous function in a procedural language.

像这样的东西:

do $$
    declare result text;
    begin
        select name into result from test;
        raise notice '%',result;
    end;
$$;

我还修正了你的加薪通知.

如果您只想以最小格式(即易于解析)将表中的单个值转储到标准输出,那么--tuples-only可能会有所帮助:

-t
--tuples-only
Turn off printing of column names and result row count footers,etc. This is equivalent to the \t command.

所以你可以从shell中说出这样的话:

result=$(echo 'select name from test;' | psql -t ...)

相关文章

项目需要,有个数据需要导入,拿到手一开始以为是mysql,结果...
本文小编为大家详细介绍“怎么查看PostgreSQL数据库中所有表...
错误现象问题原因这是在远程连接时pg_hba.conf文件没有配置正...
因本地资源有限,在公共测试环境搭建了PGsql环境,从数据库本...
wamp 环境 这个提示就是说你的版本低于10了。 先打印ph...
psycopg2.OperationalError: SSL SYSCALL error: EOF detect...