幅が約 1200 文字で、約 300 列以上の固定幅ファイルがあります。フラット ファイル接続マネージャーの UI を使用せずに、SSIS で固定幅のデータ ソースを作成する方法を探しています。SSIS で UI を使用せずに列の定義を変更する方法はありますか? プロジェクトのどこにもデータ接続用のファイルが見つかりません。
フラットファイル接続マネージャーに 300 以上の列を 1 つずつ手動で追加する運命にあるのでしょうか?
2つのオプションが思い浮かびます。1 つ目は、BIDSHelper をインストールし、Create Fixed Width Columnsを使用することです。
もう1つは、@ElectricLlamaが述べたように、BIMLを使用することです。これも BIDS Helper のインストールが必要ですが、.biml ファイルを .dtsxショート ウォークスルーに変換する必要があります。
これは、データ フローを追加するフラット ファイル接続マネージャー (単一の列を含む) を含むパッケージの作成と、フラット ファイルを消費して行数に接続するパッケージの作成に似ているはずです。これは、あなたが望むものの概算です。XML を Columns タグに入力するだけです。
<Biml xmlns="http://schemas.varigence.com/biml.xsd">
<Connections>
<FlatFileConnection
Name="FF dchess"
FileFormat="FFF dchess"
FilePath="C:\ssisdata\SO\Input\dchess.txt"
/>
</Connections>
<FileFormats>
<FlatFileFormat
Name="FFF dchess"
CodePage="1252"
RowDelimiter="CRLF"
IsUnicode="false"
FlatFileType="RaggedRight"
>
<Columns>
<Column Name="MyColumn" Length="08" DataType="AnsiString" ColumnType="FixedWidth" CodePage="1252" />
</Columns>
</FlatFileFormat>
</FileFormats>
<Packages>
<Package Name="dchess" ConstraintMode="Linear" ProtectionLevel="DontSaveSensitive">
<Connections >
<Connection ConnectionName="FF dchess" />
</Connections>
<Variables>
<Variable Name="CurrentFileName" DataType="String">C:\ssisdata\so\Input\dchess.txt</Variable>
<Variable Name="RowCountInsert" DataType="Int32">0</Variable>
</Variables>
<Tasks>
<Dataflow Name="DFT Load file" >
<Transformations>
<FlatFileSource
Name="FF_SRC dchess"
ConnectionName="FF dchess"
RetainNulls="true">
</FlatFileSource>
<RowCount Name="CNT Source" VariableName="User.RowCountInsert"></RowCount>
</Transformations>
</Dataflow>
</Tasks>
</Package>
</Packages>
</Biml>
生成されたパッケージは次のようになります
あごを地面から持ち上げてください;)