2016-11-17 13 views
0

enter image description here私はoledbの宛先にインポートしようとしているいくつかの.txtファイルがあります。 データを.csv形式で抽出する前に、データにいくつかの更新を適用したいのですが。 SSISを通じてこれを達成しようとしています。SSIS - 各ループForの更新エラー

私は以下の流れがあります。ここに

1>Execute sql task to truncate my existing table
2>Data flow task to import my flat file to the oledb dest
3>Execute sql task to update my data as per my needs.
4>Data flow task to export the data in csv file.

懸念がある: 私は多くのそのようなテキストファイルを持っていると私は私のパッケージ内の各ループコンテナためを使用したい、 私のテキストファイルを持っていますベンダーの賢明なデータは、例えばtibco.txtと言っています。このファイルをある場所からインポートし、同じ名前の宛先フォルダに展開したいのですが、.csvという拡張子です。 forループが実行され、式で設定されるたびにファイルの名前を格納する変数を使用しました。上記の手順2で使用された入力フラットファイルの接続文字列。

私のパッケージには、第二段階まで細かい動作しますが、手順3

エラーでデータを更新するために失敗します。 [SQL実行タスク]エラー:クエリ「更新テーブル名セットvendor_inventory = Rを実行します。.. 。 "次のエラーで失敗しました:"無効な列名 'HOSTNAME'。 "考えられる失敗の理由:クエリ、「ResultSet」プロパティが正しく設定されていない、パラメータが正しく設定されていない、または接続が正しく確立されていないなどの問題。

+0

ごとに調整することができる非常に汎用的なアプローチですか?テキストファイルはすべて同じテーブルまたは別のテーブルにインポートされていますか? – mendosi

+0

@mendosiはい、それはこのフィールドを持っています。テキストファイルは1つずつ同じテーブルにインポートされます。 – Ruchi

答えて

0

制御フローのどこかで変更されている変数を使用しており、式に正しく反映されていないとします。

I常に

ファイルシステムで、各ループの場合などのためにコンフィグレーションテーブルを使用

表Defination

CREATE TABLE [dbo].[tbl_SSIS_InputMapping](
    [ID] [int] IDENTITY(1,1) NOT NULL, 
    [Conn_Mgr] [varchar](50) NULL, 
    [MD_File] [varchar](500) NULL, 
    [Input_Path] [varchar](500) NULL, 
    [Output_Path] [varchar](500) NULL, 
    [Archieve_Path] [varchar](500) NULL, 
    [File_Format] [varchar](100) NULL, 
    [File_Type] [varchar](50) NULL, 
    [Package_Name] [varchar](100) NULL, 
    [Active] [char](1) NULL, 
    [AttachOutput] [char](1) NULL) 

この

MainFolder\MetaData 
MainFolder\Input 
MainFolder\Output 

マイコンフィグ表は のように見えるように私のフォルダ構造が見えますthis

パッケージの検証にMetaDataFileが必要です。入力ファイルを処理した後に移動することができます。しかし、次回パッケージが開始されると、(移動/削除された)ファイルが検索され、失敗します。 `tablename`テーブルがそれに` HOSTNAME`フィールドを持っています

これはあなたのニーズ

関連する問題