当前位置: 首页 > 知识库问答 >
问题:

错误:值的类型(DBNull)被分配给变量用户:: 不同于当前变量类型(字符串)

包建义
2023-03-14

我正在创建一个SSIS包,并在提取数据时得到以下错误。

错误:分配给变量“User::dunsId”的值(DBNull)的类型与当前变量类型(字符串)不同。变量在执行期间可能不会更改类型。变量类型是严格的,但Object类型的变量除外。

DunsId在源表中是varchar(150),源表是可为空的列,并包含空值。我在SSIS中创建的用于映射它的变量是字符串类型的。我基本上试图提取所有他的记录,并将其插入包含列DunsId的目标表中是varchar(150)

这是我的插入查询

INSERT INTO Parties (companyId, dunsId, companyName, companyTypeId,companyTypeName,companyStatusTypeId,companyStatusTypeName,simpleIndustryId,simpleIndustryDescription)  
values (companyId, dunsId, companyName, companyTypeId, companyTypeName,companyStatusTypeId,companyStatusTypeName,simpleIndustryId,simpleIndustryDescription)

变量

设计

共有2个答案

后阳炎
2023-03-14

dunsId变量的变量类型是STRING

昝晗昱
2023-03-14

解决问题的几种方法:

  1. 最简单的方法是将数据类型从字符串更改为对象
  2. 从第一个ExecuteSQL任务开始,将ISNULL放在问题列周围,这将确保输出是字符串
  3. 使用一些替代方法,例如在DataFlow任务中从Source加载到目标,或者使用INSERT INTOtarget_tableSELECT执行SQL任务

更新

正如您所提到的,您正在使用存储过程输出列,然后您可以使用语句INSERT to target_table EXEC your_usp,而不是上面的方法3

 类似资料:
  • 怎么确定一个变量是什么类型的呢?大家可以用 type() 函数来检查。Lua 支持的类型有以下几种: Nil 空值 所有没有使用过的变量,都是 nil。nil 既是值,又是类型。 Boolean 布尔值 true 或 false Number 数值 在 Lua 里,数值相当于 C 语言的 double String 字符串 如果你愿意的话,字符串是可以包含 '\0' 字符的 Table 关系表类型

  • 变量只不过是我们的程序可以操作的存储区域的名称。 Pascal中的每个变量都有一个特定的类型,它决定了变量内存的大小和布局; 可存储在该内存中的值范围; 以及可以应用于变量的操作集。 变量的名称可以由字母,数字和下划线字符组成。 它必须以字母或下划线开头。 Pascal not case-sensitive ,因此大写和小写字母在这里意味着相同。 根据前一章中解释的基本类型,将有以下基本变量类型

  • 变量只是用于存储值的保留内存位置。 这意味着当您创建变量时,您在内存中保留了一些空间。 根据变量的数据类型,解释器分配内存并决定可以存储在保留内存中的内容。 因此,通过为变量分配不同的数据类型,可以在这些变量中存储整数,小数或字符。 将值分配给变量 Python变量不需要显式声明来保留内存空间。 为变量赋值时,声明会自动发生。 等号(=)用于为变量赋值。 =运算符左边的操作数是变量的名称,=运算符

  • 变量为我们提供了程序可以操作的命名存储。 Java中的每个变量都有一个特定的类型,它决定了变量内存的大小和布局; 可存储在该内存中的值范围; 以及可以应用于变量的操作集。 必须先声明所有变量才能使用它们。 以下是变量声明的基本形式 - data type variable [ = value][, variable [ = value] ...] ; 这里data type是Java的数据类型之

  • 以下是我的代码片段: 现在,如果我输入1作为输入,它会打印“1”,对于2它会打印“2”,对于3它会打印3.14,对于其余的它会打印10。 这是否意味着输出的数据类型是根据返回类型在运行时决定的?

  • 问题内容: 考虑以下方法: 和 这两种方法有什么区别?如果没有差异,为什么要使用第二个? 问题答案: 不允许您在列表中添加对象。请参阅下面的程序。这是我们传递给method的特定列表类型。 特定方式,列表是使用特定类型创建的,并传递给method 。不要与 单词 混淆。 具体可以是任何普通对象,例如Dog,Tiger,String,Object,HashMap,File,Integer,Long