加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-13 16:05:32 所属栏目:百科 来源:网络整理
导读:我试图在下面的示例中使用变量来运行PSQL脚本而不声明函数并且必须调用它们. DECLARE result TEXT;BEGIN SELECT INTO result name FROM test; RAISE NOTICE result;END; 表测试只有1行和列.这是否可能,而无需将此脚本包装在函数中.这将允许我通过say命令行更
我试图在下面的示例中使用变量来运行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 ...)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读