Excel来源SSIS
我有一个Excel源的SSIS包读取Excel表。 我目前正在使用表或视图数据访问模式,它实际上读取工作表中的每一行, 1,048,576
这是最大的。
源工作表上有一个名为PSA_DATA
的Excel表。 为什么表格或视图中的这个表格下降? 工作表中有一个选项_FilterDatabase
但是当我按下Preview时,即使它拉取了正确的数据,但是运行包时失败了。 这不会比使用SQL命令和SELECT * FROM [fact_PSA$Ax:Bx]
更有意义吗? 我们在Excel中使用命名范围和表格的原因是因为它们是dynamic的! 现在我必须用行数来每次硬编码范围?
我在这里错过了什么? 有没有更简单的方法,我失踪了? 我只是想将一个Excel表格移入一个SQL表格! 为什么世界上最无处不在的软件不容易与世界上第二个无处不在的软件交谈!
我很欣赏链接到解决方法,但我没有真正得到我的问题的答案。 为什么我们不能从SSIS Excel Source引用EXCEL TABLE(不是工作表)?
我结束了这个查询使用SQL命令数据访问模式:
SELECT * FROM [fact_PSA$A:W] WHERE fact_PSA_ID IS NOT NULL
不知何故,即使提供的范围设置为每行“A:W”,使用SQL也不会停止读取工作表中的每一行。 我猜"WHERE fact_PSA_ID"
限制了在读取SSIS源文件之前读取的行。
如果工作表名称未显示在表格中或查看combobox,则使用Sql命令并不是一个坏主意。
但是,当使用SQL Comand从Excel中读取时,不需要指定范围,默认情况下,OLEDB将采用使用的范围,只需使用以下命令
SELECT * FROM [fact_PSA$]
解决方法
您可以尝试从脚本任务或脚本组件读取您的excel文件,您可以按照以下链接之一来实现此目的:
- https://social.msdn.microsoft.com/Forums/sqlserver/en-US/2d45f180-9fd0-4224-a298-cb99e2b2100a/how-to-read-the-contents-of-excel-file-through-ssis-脚本任务没有最头?论坛= sqlintegrationservices
- https://msdn.microsoft.com/en-us/library/ms403358.aspx
- http://billfellows.blogspot.com/2013/04/ssis-excel-source-via-script.html
注意:有很多链接可以使用SSIS将数据从excel导入到SQL:
- http://www.sqlshack.com/using-ssis-packages-import-ms-excel-data-database/
- https://www.mssqltips.com/sqlservertip/2770/importing-data-from-excel-using-ssis–part-1/
- https://www.simple-talk.com/sql/ssis/moving-data-from-excel-to-sql-server-10-steps-to-follow/
- https://www.simple-talk.com/sql/ssis/importing-excel-data-into-sql-server-via-ssis-questions-you-were-too-shy-to-ask/