【发布时间】:2016-11-18 01:31:32
【问题描述】:
我是 SSIS 和 SQL Server 的新手。我在网上做了大量阅读,并查看了一两本书来购买。
在这个过程中,我试图用一个常量字符串加上一些破折号和 2 列来完成一个新列。 但我什至没有接近它。我可以得到没有破折号和无文本的 2 列,但这并没有实现目标。 我已经阅读了 TechNet 和 Microsoft SSIS 页面以及在这里搜索/阅读,但我仍然在努力。 有人可以帮我语法吗?预先感谢您的协助。
期望的目标类似于:
结果:DtMMP-202-PA-A97-1
环境:
新列将如下所示(语法不正确): MMID 列是一个整数 PymtAuth 列是 nvarchar100
"DtMMP-" + [MMID] + "-PA-" + [PymtAuth]
所需结果:DtMMP-202-PA-A97-1
即使我删除前端字符串并仅合并 2 列我也不成功。
[MMID] + "-PA-" + [PymtAuth]
我什至分开并尝试了 2 个整数字段……
[MMID] + '-' + [RegID]
如果我省略了“-”,它似乎会接受它,但需要虚线。
目标是:
"DtMMP-" + [MMID] + "-PA-" + [PymtAuth]
结果:DtMMP-202-PA-A97-1
再次感谢您。
"DtMMP-" + [MMID] + "-PA-" + [PymtAuth] 创建错误
从 MM 库 [派生列 [391]] 创建机会时出错:数据类型“DT_WSTR”和“DT_I4”与二元运算符“+”不兼容。操作数类型无法隐式转换为操作的兼容类型。要执行此操作,需要使用强制转换运算符显式强制转换一个或两个操作数。
从 MM 库 [派生列 [391]] 创建机会时出错:尝试设置二进制操作“DtMMP-”+ MMID 的结果类型失败,错误代码为 0xC0047080。
从 MM 库 [派生列 [391]] 创建机会时出错:计算表达式 ""DtMMP-" + [MMID] + "-PA-" + [PymtAuth]" 失败,错误代码为 0xC0047084。表达式可能有错误,例如除以零,在解析时无法检测到,或者可能存在内存不足错误。
从 MM 库 [Derived Column [391]] 创建机会时出错:“Derived Column.Outputs [Derived Column Output ].Columns[Derived Column 2]" 无效。
从 MM 库 [Derived Column [391]] 创建机会时出错:无法在“Derived Column.Outputs[Derived Column Output].Columns[Derived Column 2]”上设置属性“Expression”。
其他信息:
来自 HRESULT 的异常:0xC0204006 (Microsoft.SqlServer.DTSPipelineWrap)
【问题讨论】:
-
你有什么错误吗?如果是这样,您需要在与数字连接时将 [MMID] 转换为字符
-
顺便说一句,请提及您的数据库引擎是什么。 sq-server 是 MicrosoftSQL Server,与 mysql 不同
-
闪烁谢谢您的回复... Microsoft SQL Server 2014 是的,当使用“DtMMP-”+ [MMID] +“-PA-”+ [PymtAuth] 时,我得到的错误是遵循原则上我理解的是混合数据类型,但我不清楚如何克服这个问题。如果演员表是我的答案,那么我会去对演员表做更多的研究
-
我在上面的问题中添加了错误信息。
-
原因是你在字符串中添加数字。您需要将 MMID 转换为字符串使用转换功能。如果 cast 可以帮助你,你需要说 CAST(MMID as varchar)
标签: mysql sql-server ssis