如何通过BIML从SQL导入列到Excel中

我想从SQL表(Practice2.dbo.Adress)导入列“街”(NVARCHAR(50))到Excel(ExcelDestination.xls)。 我知道如何在SSIS中做到这一点,但在BIML中我似乎无法find正确的代码,特别是在源和目标之间进行列映射。 当我尝试生成SSIS包时,出现错误

“无法parsing对”TableResource“types的”地址“的引用。”TableName =“地址”无效。提供有效的作用域名称。

这是我迄今为止所做的:

<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> 

我对你的ExcelDestination做了一些小的修改

  <Package Name="so_45063165"> <Tasks> <Dataflow Name="ImportIntoExcel"> <Transformations> <OleDbSource Name="OLE_DB_Source" ConnectionName="ConnectionWithPractice2"> <DirectInput>SELECT N'123 Oak' AS Street;</DirectInput> </OleDbSource> <ExcelDestination Name="Excel_Destination" ConnectionName="Excel Connection Manager"> <ExternalTableOutput Table="Sheet1$" /> </ExcelDestination> </Transformations> </Dataflow> </Tasks> </Package> 

TableOutput引用表的Biml集合。 您正在寻找ExternalTableOutput ,它指示引擎查看引用的对象(本例中为Excel)以validation它是否存在。 标记中的变化导致属性从TableName更改为Table ,然后由于我们引用了工作表而不是表,所以我们需要用$来指定。 Sheet1将是一个表或命名的范围,而Sheet1$表示实际的工作表。

由于您未在源街道和目标列之间提供列映射,因此我移除了这些标记。

Interesting Posts