2014-01-29 33 views
0

我打電話一個bash腳本,準備一些目錄等 在某些時候,它也要求一個PSQL腳本是這樣的:如何嵌入substituion變量爲字符串「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中工作時它應該嵌入到字符串中 我試圖逃避'和勇氣,但迄今沒有運氣。 有人有什麼想法嗎?

+0

http://www.postgresql.org/docs/current/static/app-psql.html#AEN88056 –

+0

我真的不能找到一個從這個鏈接解決方案。它並不是我困擾我的實際情況,而是它被替換爲一個字符串。 –

+0

也許這在psql中是不可能的? –

回答

0

我找到了這個問題的答案。 當從shell腳本調用時,它的shell腳本本身必須完成轉義 。因此,而不是上面的我應該做這樣的呼喚:

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

是雙引號和單引號。 然後SQL文件可以做同樣的方式在甲骨文:

select 'wget' || :SERVER '.example.com?geoX='|| id1 || ' etc 
相關問題