SSISでフラットファイルから文字を取り除く最良の方法は何ですか? 私の場合、処理する前にファイルからすべての引用符を削除する必要があります。
編集:
SSIS の一部のファイルに対して実行可能ファイルを実行するにはどうすればよいですか? どうにかしてソース接続を入力として使用できますか、それともファイル名をパラメーターとして渡す必要がありますか?
これを行う最も簡単な方法は、「変換」スクリプト コンポーネントを作成し、コードを使用して引用符を削除することです。
これはファイルのすべてのフィールドに対して実行する必要があるため、変換ワークフローの操作としてではなく、プロセスの最初のステップとして実行することをお勧めします。
独自の .NET スクリプトをコーディングして、スクリプト タスクに埋め込むことができます。プロセス実行タスクを介してサードパーティのツールまたはコンポーネントを呼び出すこともできます。
たとえば、cygwin unix コマンドラインにアクセスできる場合は、次のようにします。
sed s/\"//g data1.txt
前述の「プロセスタスクの実行」コンポーネントを介して実行可能ファイルを呼び出すことができ、コンポーネントの属性に式を設定することでその入力をパラメータ化できます。これらの式は、構成ファイルを介して構成された可能性のある入力変数に基づくことができます。(これは、このようなことを実現するために SSIS が提供する多くの方法の 1 つにすぎません)
私は使用しましたDerived Column Transformation
たとえば、派生列を使用して ssis の ', " " , # を置き換えたい場合は、次のように記述します。
Replace(Replace(REPLACE(name,"$"," "), "'", " ")," ","")
しかし、1 つまたは 2 つの列を除外する必要がある場合は、このアプローチが適していると思います。それ以上の場合は、先に進みますScript task
あなたの質問が正しく理解できれば、テキスト ファイルにある列の値から引用符を削除しますか? この場合は、派生列変換を使用します。[派生列名] ドロップダウンで ["column_name" を置換] を選択します。次に、式プロパティに次のコードを入力します: REPLACE( "\"", [column_name] , "")
お役に立てれば。
unclepaul84 と Ryan Fonnetts のソリューションはどちらも機能しますが、個人的には unclepaul の方に進みます。これは、引用符を取り除く必要がある複数のファイルがあり、すべてのファイルに同じ変換コードを使用できることがわかったからです (これは素晴らしいことです)。