bsqldbにデータを入力する必要があります。
bashスクリプトからbsqldbにデータを渡すために、次のコマンドを使用する予定です。
/usr/bin/bsqldb -S servername -U username -P password <<< ${VARIABLE}
$ VARIABLEには、次のように構成されたデータが含まれています。
USE databasename
customsqlfunction ('param1','param2','param3','param4','param5')
customsqlfunction ('param1','param2','param3','param4','param5')
customsqlfunction ('param1','param2','param3','param4','param5')
customsqlfunction ('param1','param2','param3','param4','param5')
私が接続しているSQLサーバーはMSSQL 2008で、TDS v 7.1を実行しているようです(不思議です... . ...に接続しています。
答え1
私はこれをテストして見つけました。
以下は、bsqldbに送信される変数に含まれるデータを構成する正しい方法です。
MyVariable="select @@servername"$'\n'"select @@language"$'\n'"select @@version"
ご覧のとおり、bsqldbに送信される各sqlコマンドは別々の行になければなりません。ここでは、「改行」または「改行」文字を表す \n が入ります。たとえば、「select @@servername」の残りの部分は実際のSQLコマンドです。
上記で$ MyVariableと入力すると、bsqldbに表示される内容は次のとおりです。
select @@servername
select @@language
select @@version
通常、一連のコマンドまたはバッチコマンドを実行するにはGOコマンドを送信する必要がありますが、Freetds ユーザーガイドで指摘する第6章Fretetを使うbsqldbに送信されたコマンドの最後のバッチは、実行するためにGOの後に来る必要はなく、自動的に実行されます。また、cmdリストの最後に、tsqlとは異なり、サーバーの切断にEXITコマンドが必要ないことも確認しました。コマンドリストの最後に到達すると自動的に終了します。
これで変数がわかったので、次の構文を使用してbashスクリプトからbsqldbに変数を提供できます。
/usr/bin/bsqldb -S servername -U username -P password <<< $MyVariable
楽しんでください。