シリーズ目次
前置き
もう何番煎じか分からないテーマですが、なるべくすっきり書ける方法がないかやってみましたやりたいことは、
・文字コードはUTF8
・ダブルクォーテーションで括る
・1行目はヘッダー情報
まずはこのストアドを見てほしい
うむ、なにやってるのかさっぱり
bcpとsqlcmdでCSVを出そうとした場合、ヘッダー情報が出ないため、まずヘッダー情報をSQLで生成している。
またダブルクォーテーションで括ってくれないので、カラムの前後に付加している。
これはこれで利用価値はあるけど、やはり冗長。
ヘッダー情報をunionしたり、ダブルクォーテーションのエスケープ処理したりで、マジで使いづらい。
なるべくストアド内で済ませようと設計したのですが、一度作って考えてた結果、やはりpowershellでやることに。
powershellならパイプでexport-csvできるので、かなりすっきりするはず!
PowerShellでSelect結果をCSV出力
んで結果こうなりました。めっちゃスッキリ!!5行目でテーブル一覧を取得。
7行目でループ処理、Select文とファイルパスを生成。
11行目でSelect文を発行して、パイプでExport-CSV、オプションで文字コードUTF8を指定、「-NoTypeInformation」をつけておくと1行目にデータ型が入らなくなります。
出力されたデータを見てみましょう。
ちゃんとヘッダーも出てるし、ダブルクォーテーションもバッチリ!!
0 件のコメント:
コメントを投稿