use*_*255 4 sql-server oracle ssis oracle11g ssis-2012
我正在使用SSIS从Oracle导入数据集。SSIS给我警告:
由于从数据库列“第三方”中检索长度为28的数据到数据流列“第三方”中检索长度为25的数据,因此可能会发生截断。”
该警告没有任何意义。目标是SQL Server数据库,其中属性[Third Party]
为nvarchar(255)
。
为什么工具会给我这个奇怪的错误?
我试过改变的长度nvarchar(max)
。这并没有改变。
select
case
when XTNL_HOS_FLG = 1 and VND_MG_APL_FLG = 0
then 'Host'
when XTNL_HOS_FLG = 0 and VND_MG_APL_FLG = 1
then 'Support or Manage'
when XTNL_HOS_FLG = 1 and VND_MG_APL_FLG = 1
then 'Host and (Support or Manage)'
else ''
end as "Third Party"
from
table1
Run Code Online (Sandbox Code Playgroud)
小智 5
通过右键单击Source Target在数据流任务中的“显示高级编辑器”中查找。然后转到“输入和输出属性”选项卡,并检查列的长度。
在目标目标上执行相同操作。
根据获取数据的方式,列的类型和长度与数据库不同。
由于您使用 SQL 命令作为源,因此您可以编辑命令并强制源列长度并帮助 OLEDB 源识别它。您可以使用 CAST 函数来执行此操作:
select CAST(
case
when XTNL_HOS_FLG = 1 and VND_MG_APL_FLG = 0
then 'Host'
when XTNL_HOS_FLG = 0 and VND_MG_APL_FLG = 1
then 'Support or Manage'
when XTNL_HOS_FLG = 1 and VND_MG_APL_FLG = 1
then 'Host and (Support or Manage)'
else ''
end AS NCHAR(255)) as "Third Party"
from
table1
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
943 次 |
最近记录: |