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

PL/sh函数参数不可见:如何正确向PostgreSQL的PL/sh函数传参?

解决PL/sh函数参数不可见的问题

哈哈,这个坑我之前踩过!你现在用$1、$2来取参数是不对的——PL/sh根本不是通过Shell的位置变量传递参数的,而是把每个参数放到了命名环境变量里,这就是你调用后输出为空的核心原因。

把你的函数改成下面这样就能正常获取参数了:

CREATE OR REPLACE FUNCTION createUserFolder(var text, var1 text) 
RETURNS text AS '
#!/bin/sh
echo "$PLSH_ARG1 $PLSH_ARG2"
' LANGUAGE plsh;

现在再执行SELECT createUserFolder('Hello', 'World');,就能得到预期的Hello World输出啦!

顺便补充个小细节:PL/sh会按参数的位置,把第N个参数存到PLSH_ARG{N}这个环境变量里,和你定义的参数名无关。如果后续需要更多参数,依次用PLSH_ARG3、PLSH_ARG4这类命名就行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 04:37:53