2014-01-13 3 views
0

Я пытаюсь выполнить запрос из сценария оболочкиЗапрос Linux SQL Server с динамическими данными?

SELECT count(*) FROM MyTable where sessionid = 123 

я могу сделать:

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

Но это означает, что SessionID жестко закодировано до 123

мне нужно иметь SessionID вытащил из сценария оболочки, вызвав комментарий bsqldb

Как передать sessionid как переменную?

+0

Я полагаю, что я мог бы просто написать запрос в файл tmp и передать этот файл в – Dss

+0

не мог бы вы просто «эхо» SELECT count (*) FROM MyTable, где sessionid = 123 | bsqldb -U myname -P mypass -S myserv'? – Mureinik

+0

bsqldb не принимает запросы inline .. они должны поступать из входного файла – Dss

ответ

0

Кажется, что лучшим способом было просто создать 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

Смежные вопросы