8

iSQL クライアントを使用して Sybase ASA 8 データベースにクエリを実行し、クエリ結果を CSV 形式のテキスト ファイルにエクスポートしようとしています。ただし、列見出しはファイルにエクスポートされません。iSQL 設定でも OUTPUT ステートメントでも、それを指定する特別なオプションはありません。

クエリと出力ステートメントは次のようになります。

SELECT * FROM SomeTable;
OUTPUT TO 'C:\temp\sometable.csv' FORMAT ASCII DELIMITED BY ';' QUOTE ''

結果は次のようなファイルです

1;Miller;Steve;1980-06-28
2;Jones;Martha;1965-11-02
3;Waters;Richard;1979-10-15

私がしたい間

ID;LASTNAME;FIRSTNAME;DOB
1;Miller;Steve;1980-06-28
2;Jones;Martha;1965-11-02
3;Waters;Richard;1979-10-15

ヒントはありますか?

4

9 に答える 9

10

別のステートメントから始めることをお勧めします。

SELECT 'ID;LASTNAME;FIRSTNAME;DOB' FROM dummy;
OUTPUT TO 'C:\\temp\\sometable.csv' FORMAT ASCII DELIMITED BY ';' QUOTE '';

クエリにオプションを追加しAPPENDます...しかし、私は仕事に取り掛かることができませんAPPEND(ただし、ASA 11エンジンを使用しています)。

于 2011-01-28T04:09:44.607 に答える
9

これを試してみてください

SELECT 'ID','LASTNAME','FIRSTNAME','DOB' union
SELECT string(ID),LASTNAME,FIRSTNAME,DOB FROM SomeTable;
OUTPUT TO 'C:\\temp\\sometable.csv' FORMAT ASCII DELIMITED BY ';' QUOTE '';
于 2011-10-13T20:17:00.977 に答える
1

あなたはすでに OUTPUT オプションに精通しています。あなたが望むものを与えるオプションはありません。

問題は、受信側が標準の CSV ファイルを受け入れないことです。セミコロンが必要です。

スクリプトを作成している場合は、必要なものに最も近い形式で出力を取得してから、出力ファイルを awk することをお勧めします。非常に高速で、必要なものは何でも変更できます。あなたの最良の選択肢はASCIIまたはデフォルトの出力形式であると思います。これは、ASCII文字テキストファイルでカンマ(コロンではなく)で区切られた値を提供し、列ヘッダーを含みます。次に、1 つの awk コマンドを使用してコンマをセミコロンに変換します。

于 2010-12-13T04:09:13.913 に答える
1
isql -S<Server> -D<Database>-U<UserName> -s \; -P<password>\$\1 -w 10000 -iname.sql > output.csv
于 2016-12-12T15:24:25.570 に答える
1

このオプションを使用するFORMAT EXCELと、最初の行に列名を持つ行が出力されます。次に、必要に応じて、Excel に取得したら、別の形式で保存できます。

SELECT * FROM SOMETABLE;
OUTPUT TO 'C:\temp\sometable.xls' FORMAT EXCEL DELIMITED BY ';' QUOTE ''
于 2010-12-05T20:46:08.987 に答える
0

簡単な解決策を見つけて、header.txt などの 1 つのファイルにヘッダーを配置し ("col_1|col_2|col_3" という 1 行が含まれます)、ヘッダー ファイルと出力ファイルを結合するには、次のコマンドを実行します。

cat header.txt my_table.txt > my_table_wth_head.txt
于 2013-06-12T10:17:40.010 に答える
0

最近、.CSV 出力のWITH COLUMN NAMESをサポートしていない先史時代の ASA7 で同様の問題を解決する必要がありました。

私にとっての解決策は.DBFファイルでした.DBFファイルには列構造が含まれており、自動的に処理できます.XLSよりもはるかに優れています

SELECT * FROM SomeTable;
OUTPUT TO 'C:\temp\sometable.dbf' FORMAT DBASEIII;
于 2021-09-30T19:41:19.887 に答える