微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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 ...)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐