我试图在下面的示例中使用变量来运行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 ...)