1

テーブルのダウンロードとしてデータファイルを生成しようとしていますが、これは固定形式である可能性があります。私はすでにSQLを準備しています。

例:

SELECT RPAD(ORGANIZATION_ID,10)||RPAD(ORGANIZATION_NAME,100)||RPAD(EMPLOYEE_COUNT,100)
FROM MY_ORGANIZATION_STATE;

SQL Developer で実行し、Excel にエクスポートします。50 レコードのサンプルの場合。正しくフェッチでき、フォーマットは問題ないようです。

しかし、自動化する必要があるため、SQL*Plus の spool コマンドを使用します。スニペットを以下に示します。

set pagesize 100;
set linesize 10000;
set heading off;
spool orgn_output.dat;
@my_script # this has my SQL inside
spool off;

これはエラーなしで実行されます。

しかし、ファイルを開こうとすると、ファイル内に余分なスペースがあり、レイアウトが期待どおりではないことがわかりました!

SQL を手動で実行し、PUTTY を使用してスプールすると、ファイルに見えます。スクリプトが間違ったスクリプトを生成するのはなぜですか? なぜそれが起こるのか、私には手がかりがありません。

どんな助けでも大歓迎です!

編集:出力:

100         Deva@Company@Sales          469
101         Deva@School                 234
102         Deva@Hospitals              245
103         Deva@Company@Finance        469

ありがとう

4

2 に答える 2

2

実際、問題を簡単に再現できます。列のテキストが少ない場合に発生します。正確なテキスト サイズを発行すると、レイアウトはサイズになり、スプールされたテキスト内のテキストには、スペースの代わりにタブ文字が表示されます。パターンも一貫していません。利用可能なコマンドで調査したところ、見つかりました。SET TAB OFF; in sqlplus はこれを解決します。

sqlplusそれ自体が内部の複数のスペースをTABに変更していることを願っています。TABで解決!

そのオプションを試してください。そして私に知らせてください。幸運を!

PS。あなたの質問を編集すると、おそらくSOのバグが明らかになり、フォーマット中にTABが効果的に変換されます:)

于 2013-12-23T17:51:29.697 に答える