mle*_*vit 4 postgresql variables psql
我试图在下面的示例中使用变量来运行PSQL脚本而不声明函数并且必须调用它们.
DECLARE
result TEXT;
BEGIN
SELECT INTO result name
FROM test;
RAISE NOTICE result;
END;
Run Code Online (Sandbox Code Playgroud)
表test只有1行和列.这是否可能,而无需将此脚本包装在函数中.这将允许我通过say命令行更容易调用脚本.
多谢你们.
mu *_*ort 10
您可以使用DO创建和执行匿名函数:
DO执行匿名代码块,或者换言之,以过程语言执行临时匿名函数.
像这样的东西:
do $$
declare result text;
begin
select name into result from test;
raise notice '%', result;
end;
$$;
Run Code Online (Sandbox Code Playgroud)
我也修好了你的raise notice.
如果您只想以最小格式(即易于解析)将表中的单个值转储到标准输出,那么可能--tuples-only会有所帮助:
-t
--tuples-only
关闭列名称和结果行计数页脚等的打印.这相当于\t命令.
所以你可以从shell中说出这样的话:
result=$(echo 'select name from test;' | psql -t ...)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3276 次 |
| 最近记录: |