如何从数据库中检索 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 索引列表并将其放入数据框中?

BASH - 如何从 CSV 文件中的列中提取数据并将其放入数组中?

如何从记事本文件中取出数据并将其放入用户定义的函数中?

如何使用 jdbc 连接从数据库中检索数据并将其显示在 jsp 文本字段中