2014-01-13 54 views
0

我試圖運行從一個shell腳本的查詢帶動態數據的Linux SQL Server查詢?

SELECT count(*) FROM MyTable where sessionid = 123 

我可以這樣做:

bsqldb -U myname -P mypass -S myserv -i getcount.sql 

但是,這意味着該會話ID被硬編碼到123

我需要的SessionID從shell腳本中調用bsqldb註釋

如何將sessionid作爲變量傳遞?

+0

我想我可以將查詢寫入一個tmp文件並通過該文件在 – Dss

+0

難道你不能只''回聲SELECT count(*)FROM MyTable where sessionid = 123 | bsqldb -U myname -P mypass -S myserv'? – Mureinik

+0

bsqldb不採用內聯查詢..他們必須來自輸入文件 – Dss

回答

0

似乎是最好的辦法是隻創建從bash腳本本身tmp.sql文件,並用它作爲我的輸入:

echo "SELECT * FROM $TABLE WHERE SessionID = $SESS_ID" > tmp.sql 
result=$(bsqldb -U $USER -S $SERV -P $PASS -i tmp.sql -q) 
rm -f tmp.sql 

謝謝大家!

0
echo "SELECT ${foo} FROM ${bar}" | bsqldb -U myname -P mypass -S myserv -i - 

注意SQL注入雖然。

+0

沒有好..你不能僞造一個文件 – Dss