• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:sqlplusのspoolで空白行出現)

sqlplusのspoolで空白行出現

このQ&Aのポイント
  • Windows Server 2003の環境で、Oracle10gのsqlplusを使用してselect結果をcsvファイルにspoolする際に空白行が出力される現象が発生しています。
  • カラムに改行を含む行の後に空白行が出力される問題があり、sqlplusの仕様によるものかどうか、また空白行を削除する方法はあるのかについて質問しています。
  • 改行を含むカラムの改行を改行以外の文字に置換すると空白行は出力されないことを確認しています。

質問者が選んだベストアンサー

  • ベストアンサー
  • jamshid6
  • ベストアンサー率88% (591/669)
回答No.1

sqlplusの仕様だと思います。 どこまでが1行かわからなくなるから、とかそういう理由ですね。 sqlplusのオプションで回避する手は私も知りません。 なので、どうしてもspoolしたいとすれば、SET SERVEROUT ONも切って、無名ブロックを実行するとかになります。 DECLARE lines CLOB; CURSOR cu IS SELECT L FROM (SELECT '"' || col1 || '","' || col2 || '","' || col3 || '"' AS L FROM table); BEGIN FOR cu_row IN cu LOOP IF lines IS NULL THEN lines:=cu_row.L; ELSE lines:=lines || CHR(13) || CHR(10) || cu_row.L; END IF; END LOOP; DBMS_OUTPUT.PUT_LINE(lines); END; これであれば、全部つないで1行なので、空白行はでません。 面倒くさいですけどね。

tru_sat
質問者

お礼

ご回答ありがとうございます。 やはり仕様ですか。。。 ご回答頂いた方法か、spoolを使わない方法で検討したいと思います。