OLE DB Destination: Invalid character value for cast specification(OLE DB目标:CAST规范的字符值无效)
问题描述
我的表源:
| 编号_制作 | 类型 | 活动 | 日期 | 
|---|---|---|---|
| 1 | 1 | 1 | 2010-01-31 00:00:00.000 | 
| 2 | 2 | 1 | 2011-01-31 00:00:00.000 | 
| 3 | 3 | 2 | 2012-01-31 00:00:00.000 | 
| 4 | 4 | 2 | 2013-01-31 00:00:00.000 | 
列数据类型为:
| 列 | 数据类型 | 
|---|---|
| 类型 | tinyint | 
| 活动 | tinyint | 
| 日期 | 日期时间 | 
我正在使用SSIS加载我的目标表。
因此,我要将TYPE更改为
- Normalif 1
- Diversif 2
- Intra-Sociétéif 3
- ProspectIF 4
另请将actif更改为:
- noIf 1
- yesif 2
另外,从日期获取资历
因此,我创建了一个具有3列的派生列转换,如下所示:
类型列
TYPE == 1 ? "Normal" : TYPE == 2 ? "Divers" : TYPE == 3 ? "Intra-Société" : TYPE == 4 ? "Prospect" : ""
活动列
actif == 1 ? "No" : actif == 2 ? "yes" : ""
日期列
DATEDIFF("YY",date,GETDATE())
所有这些转换都不起作用。
[OLE DB Destination[288]]错误:SSIS错误代码DTS_E_OLEDBERROR。发生OLE DB错误。错误代码:0x80004005。 OLE DB记录可用。来源:Microsoft SQL Server Native Client 11.0&HResult:0x80004005描述:&Quot;CAST规范的字符值无效&Quot;。 OLE DB记录可用。来源:Microsoft SQL Server Native Client 11.0&HResult:0x80004005说明:";CAST规范的字符值无效。
[OLE DB Destination[288]]错误:OLE DB Destination.Inports[OLE DB Destination Input].在OLE DB Destination.Inports[OLE DB Destination Input]上的[Deriated Column Actif]列。返回的列状态为:无法转换值,因为可能会丢失数据。。
推荐答案
主要异常为:
转换规范的字符值无效。
无法转换值,因为可能会丢失数据。
检查目标SQL表列数据类型和目标上的列映射。
如问题中提供的错误描述所示,它是由OLE DB目标组件引发的。这意味着派生列转换工作正常。
我建议阅读下面的文章,以了解更多关于SSIS数据类型、数据转换转换、隐式和显式转换的知识:
- SSIS Data types: Change from the Advanced Editor vs. Data Conversion Transformations
此外,您应该知道派生列转换输出的类型是DT_WTR或DT_STR,因此它们应该映射到目标表中的VARCHAR或NVARCHAR列。
更新1
基于我们对您相关问题的讨论:Derived Column to handled mulitple conditions in CASE statement?。您似乎正在尝试在tinyint列中插入字符串值,因为您正在尝试将类型代码替换为等效的字符串值,并将其重新插入到SQL表中。
您不应编辑您的数据,因为它设计和存储得很好。您应该创建另一个表(例如:TypeReference(ID tinyint,DESCRIPTION VARCHAR(50))并存储您在CASE语句中使用的所有字符串值。然后,一旦需要检索字符串值,您就应该联接这两个表。
例如:
SELECT myTable.*, TypeReference.Description 
FROM myTable LEFT JOIN TypeReference 
     ON myTable.Type = TypeReference.Id
此外,如果创建SSIS包仅用于检索这些值,则不需要创建此包。
这篇关于OLE DB目标:CAST规范的字符值无效的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:OLE DB目标:CAST规范的字符值无效
 
				
         
 
            
        - 如何在oracle中获取字符串最右边的10个位置 2021-01-01
- 在 Oracle 中创建 CTE 2022-01-01
- SQL Server 将 Varchar 转换为日期时间 2021-01-01
- HEROKU - 无法运行 git push heroku master 2021-01-01
- MySQL(Windows10)使用 MyISAM 表进行 FULLTEXT 搜索不起作用 2022-01-01
- 如何将uuid存储为数字? 2021-01-01
- SSMS 中的权限问题:“对象 'extended_properties'、数据库 'mssqlsystem_resource'、... 错误 229)上的 SELECT 权限被拒绝" 2022-01-01
- 创建索引时,具有 mysql 数据库迁移的实体框架失败 2022-01-01
- Oracle SQL 转置 2022-01-01
- MySql 错误 150 - 外键 2021-01-01
 
						 
						 
						 
						 
						