freetdsツールbsqldbに提供する必要があるデータ型は何ですか?

freetdsツールbsqldbに提供する必要があるデータ型は何ですか?

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

楽しんでください。

おすすめ記事