如何从数据库中检索 bigint 并将其放入 SSIS 中的 Int64
Posted
技术标签:
【中文标题】如何从数据库中检索 bigint 并将其放入 SSIS 中的 Int64【英文标题】:How to retrieve a bigint from a database and place it into an Int64 in SSIS 【发布时间】:2010-06-01 15:25:13 【问题描述】:几年前我遇到了这个问题,希望有一个解决方法,但我不知道。我在 SSIS 包的控制流中使用“执行 SQL 任务”来检索“bigint”ID 值。该任务应该将其放在 Int64 SSIS 变量中,但我收到错误消息:“分配给变量“User::AuditID”的值的类型与当前变量类型不同。变量在执行期间可能不会更改类型。变量类型是严格的,除了 Object 类型的变量。”
几年前,当我将此引起 MS 的注意时,他们表示我必须通过将 bigint 放入 SSIS 对象变量然后根据需要将值转换为 Int64 来“解决”这个问题。有谁知道这是否已经解决,还是我仍然需要“解决”这个烂摊子?
编辑:
服务器统计
产品: Microsoft SQL Server 企业版 操作系统: Microsoft Windows NT 5.2 (3790) 平台: NT INTEL X86 版本: 9.00.1399.06【问题讨论】:
【参考方案1】:您需要将 BIGINT 值读入字符串变量 - 而不是 Object 变量:Why can’t I store my BIGINT result in an Int64 variable?
【讨论】:
【参考方案2】:我只是能够使用 ExecuteSQL 任务将 BIGINT 拉入 Int64 没有问题。如果您的结果集是单行,请确保在您的 ExecuteSQL 任务中将其设置为这样。如果您的结果集是多行,那么您需要为结果集使用对象类型变量,然后您将在循环结构中设置该变量。我不认为这是一种“解决方法”,因为一组 BIGINT 值不同于 BIGINT。
我使用的是 SQL 2008,但无论源数据如何,SSIS 都应该(大部分)处理相同的事情。
【讨论】:
以上是关于如何从数据库中检索 bigint 并将其放入 SSIS 中的 Int64的主要内容,如果未能解决你的问题,请参考以下文章
如何从数据库中检索数据并放入 javascript 代码以使用 maps api 进行处理?
如何从std :: map中检索所有键(或值)并将它们放入向量中?
Pandas 如何从 JSON 索引列表并将其放入数据框中?