これまでのところ、BIML を使用して SSIS パッケージを自動生成することに成功しています (CSV から SQL Server へ)。しかし、フラット ファイル形式で Varchar(MAX) 列を使用するたびに問題が発生しました。
問題は、フラット ファイル形式でサイズが-1のAnsiString型の列を定義すると、出力 SSIS パッケージに次の警告が表示されることです。
次の出力列のメタデータは、出力列が関連付けられている外部列のメタデータと一致しません。
[はい] をクリックすると、問題は自然に修正されますが、150 個のパッケージがあるため、これが最後のオプションになります。
Flat File Source Component の Advanced options をチェックすると、列Commentsのデータ型に違いが見られます。外部列は DT_TEXT として表示され、出力列は DT_STR として表示されます。:(
私が理解していないのは、他のすべてが正常に機能しているときに、出力列が Varchar(Max) に対してのみ異なるデータ型を表示する理由です。外部列から生成された出力列ではありませんか?
以下の biml コードを参照してください。
<Biml xmlns="http://schemas.varigence.com/biml.xsd">
<FileFormats>
<FlatFileFormat Name="MetadataFileFormat" RowDelimiter="LF" ColumnNamesInFirstDataRow="true" IsUnicode="false">
<Columns>
<Column Name="Category" DataType="AnsiString" Length="128" Delimiter="|" CodePage="1252" />
<Column Name="Comments" DataType="AnsiString" Length="-1" Delimiter="|" />
<Column Name="DisplayName" DataType="AnsiString" Length="256" Delimiter="CRLF" />
</Columns>
</FlatFileFormat>
</FileFormats>
<Connections>
<FlatFileConnection Name="FF_Test" FilePath="C:\Data\Sample.csv" FileFormat="MetadataFileFormat">
</FlatFileConnection>
</Connections>
<Packages>
<Package Name="FFTest" ConstraintMode="Linear">
<Tasks>
<Dataflow Name="DFT Load Data">
<Transformations>
<FlatFileSource Name="FF_SRC" ConnectionName="FF_Test">
</FlatFileSource>
</Transformations>
</Dataflow>
</Tasks>
</Package>
</Packages>
</Biml>