如何在“psql”中将替换变量嵌入到字符串中

时间:2014-01-29 12:00:21

标签: variables substitution psql

我正在调用bash脚本来准备一些目录等。 在某些时候,它还调用psql脚本,如下所示:

psql $PSQL_LOGIN -v SERVER=$SERVER

到目前为止一切顺利。

我想要执行的sql是这样的:

select 'wget :SERVER.xxxx.com?geoX=id1&geoY=id2' 
from table1 where id1 > zzz;

我对此的期望是一个看起来像

的字符串
wget test.xxx.com?geoX=yyy&geoY=qqq

在oracle中,我可以做类似

的事情
select 'wget' || :SERVER '.xxx.com?geoX='|| id1 || etc etc

但是当它应该嵌入到字符串中时,我无法在postgres中使用它 我试图逃避'和但是到目前为止还没有运气。 有人有任何想法吗?

1 个答案:

答案 0 :(得分:0)

我找到了这个问题的答案。 从shell脚本调用时,它在shell脚本本身就是这样 逃跑必须要做。所以不是上面的,我应该像这样做:

psql $PSQL_LOGIN -V SERVER="'$SERVER'"

这是双引号和单引号。 然后sql文件可以像在Oracle中一样完成:

select 'wget' || :SERVER '.example.com?geoX='|| id1 || ' etc