You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PostgreSQL:如何从命令行传递多个参数?

关于psql命令行传递多个变量到PL/pgSQL的写法确认

我参考了一篇主题内容,但因声望不足无法在该主题下评论,故在此求助。

通过以下方式在命令行定义两个变量:

psql ...... -v v1=50 -v v2=100

我知道仅传递单个变量的写法可以正常运行:

SELECT format($$
DO
$do$
DECLARE
   _number1 numeric := %L;
BEGIN
  RAISE NOTICE '%%', _number1;
END
$do$;
$$, :'v1')\gexec

但不清楚如何处理多个变量的情况,我尝试了如下写法,希望得到确认是否正确:

SELECT format($$
DO
$do$
DECLARE
   _number1 numeric := %L;
   _number2 numeric := %L;
BEGIN
  RAISE NOTICE '%%', _number1;
  RAISE NOTICE '%%', _number2;
END
$do$;
$$, :'v1',:'v2')\gexec

你写的多个变量的写法是正确的,可以正常执行。

补充说明:

  • format函数中的两个%L占位符会依次匹配后面传入的:'v1'和:'v2',将变量值以安全的字面量形式插入到PL/pgSQL代码中;
  • 执行\gexec后,会运行生成的DO块,最终控制台会输出两条NOTICE信息,分别显示50和100。

内容的提问来源于stack exchange,提问作者jojo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.22 22:02:03