我想将列'Street'(NVARCHAR(50))从SQL表(Practice2.dbo.Adress)导入Excel(ExcelDestination.xls) . 我知道如何在SSIS中执行此操作,但在BIML中,我似乎无法找到正确的代码,尤其是在源和目标之间进行列映射 . 当我尝试生成SSIS包时,我收到错误
“无法解析对'TableResource'类型''Adress'的引用.'TableName =”Adress“'无效 . 提供有效的范围名称 . ”
这是我到目前为止所做的:
<Biml xmlns="http://schemas.varigence.com/biml.xsd">
<Connections>
<OleDbConnection Name="ConnectionWithPractice2" ConnectionString="Provider='SQLNCLI11'; Data Source='DWH'; Initial Catalog='Practice2'; User Id='system'; Password='password';"></OleDbConnection>
<ExcelConnection Name="Excel Connection Manager" ConnectionString="Provider='Microsoft.Jet.OLEDB.4.0';Data Source='C:\Users\adm-jpna\Documents\ExcelDestination.xls';Extended Properties='Excel 8.0;HDR=Yes;IMEX=1'">
</ExcelConnection>
</Connections>
<Packages>
<Package Name="Package1">
<Tasks>
<Dataflow Name="ImportIntoExcel">
<Transformations>
<OleDbSource Name="OLE_DB_Source" ConnectionName="ConnectionWithPractice2">
<DirectInput>SELECT Street FROM Practice2.dbo.Adress</DirectInput>
</OleDbSource>
<ExcelDestination Name="Excel_Destination" ConnectionName="Excel Connection Manager">
<Columns>
<Column SourceColumn="Street"></Column>
</Columns>
<TableOutput TableName="Adress"></TableOutput>
</ExcelDestination>
</Transformations>
</Dataflow>
</Tasks>
</Package>
</Packages>
1 回答
我对您的ExcelDestination进行了一些小的更改
TableOutput引用表的Biml集合 . 您正在寻找
ExternalTableOutput
,它指示引擎查看引用的对象(在本例中为Excel)以验证它是否存在 . 标记中的更改导致属性从TableName
更改为Table
然后由于我们引用的是工作表而不是表,因此我们需要使用$指定 .Sheet1
将是一个表或命名为ranged,而Sheet1$
表示实际工作表 .由于您未在源街和目标列之间提供列映射,因此我删除了标记 .