SSISでファイルのカラム数チェック方法とは?

このQ&Aのポイント
  • SSISでファイルのカラム数チェックをする方法についてご説明します。
  • ファイルを1行ずつ読み込み、カラムの数をチェックする方法を紹介します。
  • 区切り文字とテキスト修飾子に注意しながら、ファイルのカラム数をチェックしましょう。
回答を見る
  • ベストアンサー

SSISでファイルのカラム数チェックするには?

お世話になります。 こんな質問をして大変、申し訳ありません。 読み込むファイルの内容を1行ずつカラム数チェックをする事になりました。 区切り文字は「|(パイプ)」ですがテキスト修飾子は「"(ダブルクォート)」です。データ内に「|(パイプ)」文字が含まれてる可能性があります。 「Foreachループコンテナ」でファイル分、繰り返して「データフロータスク」で「フラットファイルソース」でファイルを読み込み、「レコードセット変換先」を設定しています。 「フラットファイルソース」に指定している接続マネージャの「フラットファイル接続マネージャエディタ」を開いてファイル名を指定して「プレビュー」を開いたら正しく表示されていませんでした。 何かカラム数がおかしい行が結合されて表示されています。 ※対象ファイルのカラム数はチェックする為に一致していないようにしています。 プレビューで正しく表示されないのはこれが原因でしょうか? また前にアドバイスいただいたんですが理解できていませんでした。 申し訳ありませんがご教授いただけませんでしょうか? 宜しくお願いします。

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

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

MSのサイトではないのですが、SSISについて私も非常に参考にさせていただいているサイトがあるので、そちらを見て頂いた方がよさそうです(私がここに書きそうなことは全部書いてあるので) 【SSIS Lightning】項目数が不揃いな CSV ソースファイルの欠落部分を NULL 値としてパイプする http://blogs.timberlandchapel.com/blogs/timberlandchapel/pages/ssis-lightning-csv-null.aspx

edo_1972
質問者

お礼

返事が遅くなって申し訳ありません。 ファイルの内容を読み込んで1行毎、Split関数で区切り文字で配列に変換してカラム数が合っているかを確認する事でカラム数のチェックができました。 色々とアドバイスいただいて本当にありがとうございます。 では、失礼します。

関連するQ&A

  • Integration Servicesでファイルをチェックするには?

    お世話になります。 また解らない事がありましたので投稿します。 昨日の今日で申し訳ありませんが宜しくお願いします。 Integration Servicesでファイルをチェックするパッケージを作成する事になりました。 下記のフォルダに取り込むファイルが格納されています。 C:\data 次に上記と同じフォルダに取り込むファイル名等の情報が記述されているファイルが格納されています。 ※ファイル名は「FileList.txt」です。 ※取り込むファイル名等の情報は下記のようにカンマ区切りで設定されています。  ファイル名,件数 ,カラム数  -----------------------------  xxxxxx.csv,12345,15      ・      ・ 「FileList.txt」を1行ずつ読み込んでフォルダ内にファイルがあるかを確認して、ファイルがなかった場合は処理を終了します。 ファイルが存在していたら、次に件数、カラム数と順に確認します。 ※件数、カラム数が異なっていた場合も処理を終了します。 どのようにすれば、いいのでしょうか? またはコントロールを使用すれば実現できますでしょうか? Google等で調べてもわかりませんでした。 申し訳ありませんがアドバイス下さい。 宜しくお願いします。

  • csvファイルチェック

    いつもここで勉強させていただいています。 初めてPHPプログラムを書くことになって本をみてここの サンプルをみながらやっていく途中でどうしてもうまくいかないので皆さんの知恵をお借りしたいと思います。 <HTML> <?php //行番号表示 $leng = 0; $file_name = "roba.csv"; //区切り記号 $kigou = ","; //指定項目数 $count_koumoku = 20; // 関数呼び出し $e = koumokuCheck($file_name,$kigou,$count_koumoku); print "--;>チェック終了"; function koumokuCheck($file_name,$kigou,$count_koumoku){ $file = fopen($file_name, "r"); while ($data = fgetcsv($file, 1000,$kigou)) { //項目数カウントする $num = count ($data); if( $num != $count_koumoku) { //項目数カウントする(指定項目数より小さい場合メッセージ表示) $leng++; print "-->$leng"."<--項目数が足りてません <br>\n"; } else { $leng++; } } flock($file,LOCK_UN); fclose($file); } ?> </HTML> 上記のようなチェック機能をつくりましたが結果は一つの循環で結果(N行目が項目数が足りない)を返してくれますがここを配列を利用して項目数が足りない行番号を覚えさせて最後に足りない行番号を列挙して一つの行にまとめて表示したい(例:1,3,6,7,9の項目が足りません)と思っていますがなかなかうまくいきません!みなさんのよいアドバイスをまっています。

    • ベストアンサー
    • PHP
  • csvファイルについて

    javaで、csvファイルを読み取り、データベースにいれるツールを作成しています。 csvファイルを読み込む部分でつまづいてしまったので、どなたかご教授ください! 指定されたcsvファイルを一行ずつ取り込むのですが、一つの情報が2行以上になってしまうデータがいくつかあり、ファイルチェックとして、1つ目のカラムは何文字のものだとかしているけれども、その前の行の続きに当たる行が、その条件から外れてしまい、エラーになってしまいます。(当たり前ですが、、、) なぜ、csvファイルが一行に収まらないのかが、わかずですし、それを一行として読み込むことができるのかが不明で困っております。   原因や対処法が分かれば、教えていただければと思います。 よろしくお願いします。

  • A4幅のエクセルファイルの1行に入る文字数について

    お世話になります。 エクセルで契約書を作っています。 ちなみにネットよりダウンロードした無料テンプレートを使ってます。 それを開くと、左側にずらずら契約書の内容が書いてあり、右側にも同じ内容が書いてあります。 文章の内容は今回どうでもいいんですが。 左ページは編集できますが、右側は選択すら出来ません。 左側を書き換えたり編集すれば自動的に右側に反映されます。 ちなみに、左側を10行ぐらいまとめて削除すると右側の文字が縦長にぼけます。 20行ぐらい削除するとさらに縦長になり読めないほどです。 これってどういった機能でしょうか? もう一つ気になるのは、 左のページの横幅ですが普通のA4の幅のエクセルファイルより広い気がしますし、実際文字もたくさん入ります。 何と言いますか、試しに左ページに書いてある内容を1行丸ごとコピーしてA4のエクセルファイルペーストすると入りきらず10文字以上、文字がはみ出てしまいます。 印刷プレビューで確認しても、実際に印刷しても途中で切れてます。 しかし、テンプレートの方で印刷すると同じ文字数(同じフォント同じ大きさ)なのに全く切れてないです。 ただ、どちらのファイルもは印刷プレビュー後、閉じてみるとみると、A4のファイルの方はA4の大きさで点線枠が表示されるのに対しテンプレートの方は何故か表示されません。 これは何が原因ですか? 調整するにはどうすれば宜しいでしょうか? できればテンプレートと同じようになるべく文字数が入るファイルを作りたいのですが。 ご教授のほど宜しくお願いします。 エクセルは2007です。

  • PHPでcsvファイルを読みチェックを行う

    PHPの初心者です。よろしくお願いします。 やりたいことはCSVファイルを一行ずつ読んで 条件を満足させているかをチェックする機能です。 例: 00658,658,1,1,0,50,60,1 00658,658,1,1,0,50,60,1, 00658,658,1,1,0,50,60,1, 00658,658,1,1,0,50,60,1 00658,658,1,1,0,50,60,1 00658,658,1,1,0,50,60 00658,658,1,1,0,50,60,1 00658,658,1,1,0,50,60,1 上記のようなCSVファイルを一行ずつ読んで ガンマの数、またはガンマ区切りのカウント数を 判断の条件としてチェックを行います。 決めた数より多かったり少なかったりする行は 表示する機能を完成させたいですが どなたか詳しいかたがいらっしゃるんであれば 教えていただきたいです。 いまのところはCSVファイルを全部読んで 全部出力することはできました。またsplitを使って その数を数えようと思ったんですがなかなかうまくいきません。よろしくお願いします。

    • ベストアンサー
    • PHP
  • Word1行の文字数指定

    Word2013で 1行の文字数指定 および 1ページの行数指定を設定したのですが 実際に表示されるのは 設定より少ない文字数(設定37文字、実際33文字) 設定より少ない行数(設定26行、実際17行) になってしまいます。 設定通りに表示するにはどのようにすればよろしいでしょうか どうぞよろしくお願いいたします。

  • [VBS] 16進数でバイナリファイル出力したい

    すいません、教えて下さい。 VBSを利用して16進数にてバイナリファイルを生成したいです。 例えばSJIS文字コードの文字列"あ"の場合だと16進数では"82A0"です。 その"82A0"を指定してバイナリファイル出力を行いたいです。 自分で色々と試しましたが、何故か出力ファイルの結果がバイナリで"81 45 A0"となってしまい 結果的に"あ"が表示されません、、、。 目的としてはVBSでビット演算子の論理和による暗号化を行いたいです。 申し訳ありませんが、ご教示頂ければ幸いです。

  • 文字数について

    プログラム初心者です mysqlのカラム、varchar(255)に実験で270文字HTMLフォームからmysqlに入れてみました そうしたら、255文字しか保存されていませんでした もしかしたら、PHPで文字数制限しなくてもmysql側のカラムの文字数設定だけでいいのではないかと思ってしまいましたがこれだと不具合とかでてきますか? データ型のtextも文字数指定できるのでしょうか? やっぱり、文字数制限はPHPなどでやったほうがいいのでしょうか? よろしくお願いします

    • ベストアンサー
    • MySQL
  • WORDで文字数、行数が指定どおりにならない

    WORDで文字数、行数を以下のように指定しても、指定どおりにならないのですが、どうしたら指定どおりになるのでしょうか? 「ファイル」で「ページ設定」を選択、「文字数と行数」タブを選択、「文字数と行数の指定」項で「文字数と行数を指定する」を選択、「文字数」項と「行数」項を具体的に指定。 WORDでは、それぞれの文字のサイズが異なるので、一行当たり32文字と言っても、その行に含まれる文字の数は当然異なってくると思うのですが、そうだとすると、文字数の指定は、実際には何を指定しているのでしょうか? また、行数については、指定どおりになっても良いと思うのですが、これも指定どおりにならないのは何故でしょうか?

  • ワード2000文字数設定について

    行、文字数を20×20で設定しています。 が、句読点やかぎかっこなどのはいらない行・段落のさがらない行が、 19文字になってしまい困っています。 設定は、ファイル内・ページ設定にておこないました。 「文字数と行数を指定する(H)」を選択。 ど素人な質問ですがご教示ください。