全体表示

[ リスト ]

【フラットファイル】SSISとShift_JISとUnicodeと【接続マネージャ】

またまたSSISで想定外の動きをする現象が起こった。

フラットファイル接続マネージャで取得しているCSVファイルの一部の列だけが
なぜか読めなく(空白で出力される)なるという現象。

読み込んでいたCSVファイルは、
Shift_JISエンコード、半角カンマ(,)区切り、改行コードがCR+LFのごくごく一般的なもの。

大量のCSVレコードのうち、ある特定の行データの特定の列だけ
その現象が起きるため、その行データの列の値がおかしいと思って
値変えたり、文字コード調べたり、前後のセルやカンマが変な値になってないか調べたりしたんだけど
全然解決しない。


で、もしかしたら離れている別の列のせいかと考え、必須列以外を全部取込まないようにしてテスト。


そうすると今まで取れていなかった列の値が取れるようになったのはいいけど、
今度は今まで取れていた列の値が取れなくなった。


しかも、全く同じファイル接続マネージャを使っている別のデータフローだと
またまた違うセルの値が取れないような結果がでたり。


面白いのが、全部プレビューだとちゃんと取れているように見えるけど、実行すると結果が違うところ。


ココからちょっと思ったのが、もしかして文字コードのせいと思い
ためしにUnicodeで取得するにチェック入れてみた。→結果、全列空白文字


んんん?????



UnicodeでShift_JISにしたら全部取れないってそりゃそうだよなぁ。

あれ?Shift_JISだけど、出力列のDataTypeにDT_WSTRとか指定してたような。。。。。



DT_WSTRな列を全部DT_STRに変更→結果、全部読める



ちょwwwwwwwwwwwwwww


DBの型がnvarcharだったのでフラットファイルの列の変換型もDT_WSTRにしたんだけど
どうやらフラットファイル接続マネージャでShift_JISのファイルを読むときに
変換型にUnicodeが混じってると、Unicodeじゃない列が取込めなくなるときがある模様。


ハァ、疲れる。。。

閉じる コメント(0)

コメント投稿
名前パスワードブログ
投稿

閉じる トラックバック(0)

トラックバックされた記事

トラックバックされている記事がありません。

トラックバック先の記事

  • トラックバック先の記事がありません。


.

ぶ〜ミン
人気度

ヘルプ

Yahoo Image

1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
  今日 全体
訪問者 2 19018
ブログリンク 0 0
コメント 0 11
トラックバック 0 1

開設日: 2005/4/28(木)


プライバシーポリシー -  利用規約 -  ガイドライン -  順守事項 -  ヘルプ・お問い合わせ

Copyright (C) 2012 Yahoo Japan Corporation. All Rights Reserved.