データベース内の列が varchar の場合、unix から csv ファイルにスプールするときに、数値形式の列を抽出するにはどうすればよいですか?
CSV の数値形式は 5.05291E+12 ですが、実際には 5052909272618 のはずです
この問題は Unix や ksh の問題ではなく、Excel の問題です。Excel が .csv ファイルの既定のアプリケーションであると仮定すると、ダブルクリックして Excel で開くと、列の種類が既定で "General" になり、期待どおりにテキスト値ではなく科学表記法が取得されます。数値データに先行ゼロがある場合、それらも削除されます。
修正する 1 つの方法は、Excel を起動して (この例は 2010 バージョンで)、[データ]/[外部データを取得]/[テキストから] に移動し、ウィザードに従って、その列の「列データ形式」を「テキスト」に設定することを確認します。あなたの大きな数字が含まれています(最初に「データプレビュー」セクションの列をクリックしてください)。先行ゼロも保持されます。
すべての列をテキストとして開く vba マクロをコーディングすることはできますが (少し検索するといくつかの例が表示されます)、デフォルトで列を「テキスト」として扱うように Excel に指示する場所がないようです。