1

オラクルの手続き(utl_file.put_line)でcsvファイル(example.csv)を生成したのですが、メモ帳でファイルを開くと、ファイルの末尾にCR(キャリッジリターン)があることに気づきました。そのCRを削除したいだけです。

ファイルはサーバーUNIX(AIX)で生成され、メモ帳を使用してコンピューター(Windows)で開きます。

助けてくれてありがとう

4

3 に答える 3

3

これは間違った方法のようです。Unixの改行はラインフィード(LF)であり、Windowsの改行はキャリッジリターンラインフィード(CRLF)です。

Unixでファイルを作成し、それをWindowsで開く場合、Windowsは通常、LFによる改行を意味することを認識しているため、問題はほとんどないと思います。逆に、Windowsでファイルを生成し、Linuxで開く場合は、各行の終わりに迷子の文字が表示される可能性があります。

ドキュメントには、utl_file.put_line 「オペレーティングシステム固有のラインターミネータを追加する」と記載されています。これは、発生している問題がほとんど意味をなさないことを意味します。各行の終わりにLFがあるはずです。さらに、Oracleがこれを誤って実行し、Windowsの改行を追加したとしても、CRLFになります。

なんらかの理由でメモ帳の最後にCRが追加されている可能性がありますが、これはあまり意味がありません。

常にWindowsでファイルを表示する場合の回避策は、を使用することですutl_file.put。これには、最後にオペレーティングシステム固有の改行が含まれず、最後にCRLFが連結されます。

文字セット内の値がnutl_file.put( filename, theline || chr(13) || chr(10) );の文字をchr(n)返す何かの行。13はキャリッジリターン用のASCII、10は新しいライン用です。

于 2012-05-23T18:19:11.290 に答える
0

この問題を解決する最も簡単で一般的な方法は、このツール unix2dos を使用することです。UNIXボックスでこのコマンドを実行し、ウィンドウでnew_example.csvファイルを開きます

これがあなたのためのコマンドです:

unix2dos -n example.csv new_example.csv
于 2012-11-01T14:55:09.907 に答える
0

ベンの答えを拡張する:

使用することもできますutl_file.put_line( filename, theline || chr(13));

出力は行末と同じ [CR][LF] です。

于 2015-05-13T13:11:50.657 に答える