Questions tagged «ssis»

SQL Server Integration Services,这是Microsoft销售的ETL工具,自SQL Server 2005起与SQL Server版本捆绑在一起。

3
将非Unicode字符串转换为Unicode字符串SSIS
我正在创建一个程序包,将从数据库中将数据导出到一个空的excel文件中。当我仅添加源组件和目标组件并运行程序包时,出现转换错误,指出“输出”列和“ A”列无法在Unicode和非Unicode字符串数据类型之间进行转换。 为了解决这个问题,我添加了一个数据转换组件并将所有列转换为 “ Unicode字符串[DT_WSTR]” 而且我不再收到该错误。唯一的问题是,我有大约50列,其中我必须一比一地从下拉列表中选择“ Unicode字符串[DT_WSTR]”。然后,我不得不进入目标组件并将新转换的列映射到我的excel文件。 我的问题是,如果还有其他人遇到过这种情况,是否有更好的更有效的方法来解决必须进行所有手动数据类型转换的问题?必须逐一转换和映射所有列似乎不切实际,尤其是在您有大量行的情况下。 我了解excel文件不是导入和导出数据的最佳方法,但这是在特定情况下所需要的。 我可能会寻找一种只导出到纯文本文件,然后尝试转换为excel的方法,这是该程序包的最后一步。我希望这不会触发相同的unicode / nonunicode转换错误。

3
SSIS保持强制更改excel源字符串浮动
Excel中有一列应该是文本,但是SSIS在那里看到数字文本,并自动使其成为双精度浮点[DT_R8]。 我可以在“输出”分支的“外部”和“输出”列中手动更改它,但是“错误输出”只是拒绝让我更改相应的列。 Error at Extract Stations [Excel Source [1]]: The data type for "output "Excel Source Error Output" (10)" cannot be modified in the error "output column "Group No" (29)". Error at Extract Stations [Excel Source [1]]: Failed to set property "DataType" on "output column "Group No" (29)". 我尝试修改包xml。我尝试了IMEX=1,typeguessrow=0但这些都没有解决我的问题。这有什么解决办法吗?也有文章建议您修改注册表,以便excel在猜测数据类型之前读取更多的行,然后读取默认的8行。我不想走这条路,因为即使它可以工作,那我也必须在打算运行该程序包的计算机上修改注册表。 例如,要导入到SQL …

3
SQL Server 2012 catalog.execution到sysjobhistory-以任何方式加入它们?
我已经用光了资源,无法找到一种将ssisdb.catalog表加入运行它们的作业的简便方法。尝试编写一些自定义的sproc来监视我的执行时间和从目录表中写入的行,并且能够将它们与调用作业绑定在一起将非常有益。 我试图找出是否有可用于将catalog.executions表连接到msdb.sysjobhistory的表。我需要关联哪个作业称为SSIS包,然后在执行中使用数据进行分析。

1
允许非系统管理员,SQL Server代理作业的非所有者执行该作业
我有一份运行SSIS程序包的工作。 当前所有者是代理帐户。我可以从sys-admin帐户手动运行作业。 我们的网络服务使用受限帐户登录。它需要执行作业。当前它根本看不到工作(当我尝试按名称执行时,它说它不存在)。 我尝试将工作所有者更改为受限帐户。现在它可以看到该作业,但是该作业执行失败,因为它不再运行SSIS包。 必须有一种方法允许受限帐户运行另一个帐户拥有的工作,对吗?

1
为一个文件夹中的多个.DTSX软件包文件确定PackageFormatVersion
肯尼斯·费舍尔(Kenneth Fisher)发表了一篇博客文章,介绍如何确定我的SSIS包是什么SQL版本?在2015年4月。 它具有一个表,该表将哪个SQL版本映射到PackageFormatVersionXML元数据中找到的哪个SSIS包。在查看1个单个包装时,此功能很有用。 我有一个大约100个SSIS .DTSX软件包的文件夹,我需要知道它们都是哪个SQL版本。 如何批量确定文件夹(文件系统)中PackageFormatVersion多个.DTSX软件包的版本(即SQL版本)? 最终目标是确定要获取并实施以将这些软件包放入其中的正确的TFS版本,因为当前不存在任何源代码控制系统。肯尼斯提出的表格将帮助我回答这个问题,但是首先我需要确认软件包的SQL版本是什么。 假设我没有安装BIDS或SSDT。 假设所需的输出是这样的,其中管道指定一个新列: PackageFilename | PackageFormatVersion -------------------------------------- Package1.dtsx | 3 Package2.dtsx | 4 欢迎使用PowerShell,TSQL,可以抓取目录结构的第三方工具或其他工具。

1
SSIS组织
我对SSMS很熟悉,但是我从未使用过.net,c#或visual studio(曾经做过其他事情:汇编程序,c,unix,vi,oracle等)。 我试图找出基本的2012 SSIS ETL(没有BI或数据仓库),却找不到任何能解释所有这些如何组合的东西: 目录 解决方案 项目 包还有其他吗? 说我只想使用SSIS建立一个简单的测试,将一个文件导入到一个表中,以上哪个是必需的,我按什么顺序创建它们? 另外,您是否具有指向SSIS 2012 ETL基本概述和/或如何撰写文章的良好链接。

2
在SSIS 2012中,将程序包标记为“入口点”程序包的目的是什么
在Visual Studio设计器中,您可以右键单击SSIS包,并将其指定为“入口点”包” 进行搜索时,我在MSDN上找到了该页面,该页面指出: 值1表示该程序包旨在直接启动。值为0表示该软件包将由具有Execute Package任务的另一个软件包启动。预设值是1。 启用和禁用此标志后,我已经能够直接执行包。 启用或禁用此标志的目的是什么?仅仅是记录您自己的SSIS软件包的意图,还是启用或禁用SQL Server / SSIS时其行为有所不同?

1
使用复制数据库向导时发生超时过期错误
微软让我相信,SQL Server 2012复制数据库向导是将SQL Server 2000数据库复制到SQL Server 2012的最佳方法。经过几个小时的努力,我得以解决一些问题,并且能够导入到将中等大小的SQL Server 2000数据库转换为SQL Server 2012。 但是,对于30GB的数据库,该向导始终会失败,并出现以下错误: 消息:传输数据时发生错误。有关详细信息,请参见内部异常。 StackTrace:在Microsoft.SqlServer.Dts.Tasks.TransferObjectsTask.TransferObjectsTask.TransferDatabasesUsingSMOTransfer() 处的Microsoft.SqlServer.Management.Smo.Transfer.TransferData() InnerException->超时已过期。在操作完成之前超时或服务器没有响应。 CREATE DATABASE失败。列出的某些文件名无法创建。检查相关错误。 StackTrace: 位于System.Data.SqlClient.SqlConnection.OnError(SqlException异常,布尔值BreakConnection), 位于System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning() 在System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior,SqlCommand cmdHandler,SqlDataReader dataStream,BulkCopySimpleResultSet bulkCopyHandler,TdsParserStateObject stateObj) 我已经仔细检查过,这不是文件路径,权限或磁盘空间问题。我认为该CREATE DATABASE步骤需要2分钟左右的时间,并且向导假定操作已超时。我手动创建了一个具有相同文件路径的空数据库,并使用SQL进行了文件大小调整,这是可行的。有趣的是,一个1GB的数据库副本由于相同的错误而失败,并在第二次尝试中成功。 请帮忙。
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.