SSIS使用OLEDB连接器获取错误的列类型

cfr*_*rag 5 sql-server ssis

在SSIS项目的中途,某些表字段从更改char(30)nvarchar(30)

但是,在运行SSIS包时,会出现错误说明cannot convert from unicode to non-unicode.我正在尝试将数据直接从数据库源传输到其目标.

两个连接都使用相同的数据库模式,因此不应进行转换.

检查它显示的外部列数据类型时D_STR,情况不再如此.

我尝试删除源和目标,希望它能清除任何类型的缓存数据,但它不起作用.

有任何想法吗?

bri*_*ian 17

听起来像数据流任务中的元数据被缓存,需要刷新以反映新类型.

打开源,转到列,然后取消选中该列,然后检查列.点击确定.元数据现在应该刷新.

  • 我理解元数据的必要性.我不明白的是缺少"刷新列元数据"按钮来强制"调整大小".相反,人们必须重做整个管道. (3认同)
  • 将每一列视为数据将流经的管道。在设计时,您告诉 ssis 您需要一个能够让 30 字节流过的管道。然后,在运行时,您尝试通过 30 字节管道填充 60 字节。通过取消选中该列,然后重新检查,您迫使 ssis 检查数据并用 60 字节管道替换 30。 (2认同)