1

Windows システムでコマンドラインを使用して Sybase ASA データベースにクエリを実行しようとしdbisqlc.exeており、関連するテーブル データと共に列ヘッダーを収集したいと考えています。

例:

dbisqlc.exe -nogui -c "ENG=myDB;DBN=dbName;UID=dba;PWD=mypwd;CommLinks=tcpip{PORT=12345}" select * from myTable; OUTPUT TO C:\OutputFile.txt

このコマンドが書き込みを行った場合、それは私がいる環境では使用できないstdoutものを使用する以外のオプションではないように思われますdbisql.exe

この形式で実行すると、ヘッダーとデータが生成されますが、解析できない形式です。

どんな援助でも大歓迎です。

4

2 に答える 2

1

「FORMAT SQL」句を OUTPUT ステートメントに追加してみてください。列名とデータを含むselectステートメントが提供されます。

于 2011-03-03T01:57:40.130 に答える
0

次のdbisqlc.exeコマンドからの出力を確認すると、perlを使用して出力を解析できるように見えます。

コマンド:dbisqlc.exe -nogui -c "ENG = myDB; DBN = dbName; UID = dba; PWD = mypwd; CommLinks = tcpip {PORT = 12345}" select * from myTable; C:\OutputFile.txtへの出力

viやTextPadなどのテキストエディタを使用すると、出力が奇妙な場所で壊れているように見えますが、このコマンドからの出力は実際には特定の列幅で返されます。

出力の2行目には、各列の幅に含まれる=の記号のセットが含まれています。私がしたことは、 perlsunpack関数に渡すことができる=に基づいて「テンプレート」文字列を作成することでした。次に、このテンプレートを使用して列名の配列を作成し、unpackを使用して結果セットを解析します。

これは最も効率的な方法ではないかもしれませんが、私が探している結果が得られるはずだと思います。

于 2011-03-03T15:59:27.533 に答える