0

シェルスクリプトからExcelシートを生成してみました。これには、クエリの結果が含まれている必要があります。

私はエクセルシートを手に入れました。しかし、それを開くと、列が分離されておらず、代わりにクエリ出力のすべてのフィールドが最初の列に表示されていました。

例えば:

以下に貼り付けたのは、クエリの結果です。これをエクスポートせずにExcelに直接貼り付けると、Excelの最初の列に配置されます。

MS-Excel 2007では、「貼り付けオプション」が表示されます。このオプションでは、[テキストインポートウィザードを使用する]を選択して、フィールドをExcelの列に分割できます。

この機能をシェルスクリプトで実装する必要があります。

この問題の解決を手伝ってもらえますか?

COL1                   COL2 COL3                   
---------------------- ---- ---------------------- 
12                     a    1                      
198                    b    2                      
159                    ast  3                      
434                     rd  4                      
56                          5                      
1031                        6  

ありがとう、サビサ

4

1 に答える 1

0

ファイルを作成できると仮定すると.csv、クエリはフィールドをコンマ (または必要に応じて他の区切り文字) で連結するだけで済みます。何かのようなもの:

select col1 ||','|| col2 ||','|| col3
from my_table
where ...

いずれかの列にコンマが含まれている可能性がある場合は、それらを二重引用符で囲むことができるため、Excel は 1 つの値を複数の列として処理しません。

select '"'|| col1 ||'","'|| col2 ||'","'|| col3 ||'"'
from my_table
where ...

Oracle の観点からは、単一の結果列になるため、列ヘッダーが希望どおりに表示されないことを意味します。それらが必要であると仮定すると、それらを個別に (実際のクエリの前に) 作成する必要があります。

select 'COL1,COL2,COL3' from dual;

また

prompt COL1,COL2,COL3

、、、などset embed onのSQL*Plus 設定を微調整して、正確に表示する必要がある場合もあります。set linesizeset pagesizeset feedback off

于 2012-11-15T11:24:37.237 に答える