2016-07-14 45 views
0

我是SSIS和SQL Server的新成员。我在网上做了很多阅读,看了一本书或2本购买。语法错误:连接 - 派生列 - 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。该表达式可能有错误,例如除以零,在解析时无法检测到,或者可能存在内存不足错误。 “Derived Column.Outputs [Derived Column [Derived Column] [Derived Column [391]]”中的表达式“”DtMMP-“+ [MMID] +”-PA-“+ [PymtAuth]”创建机会时的错误输出] .Columns [派生列2]“无效。

从MM库[派生列[391]]创建机会时发生错误:无法在“派生Column.Outputs [派生列输出] .Columns [派生列2]”上设置属性“表达式”。


附加信息:

从HRESULT异常:0xC0204006(Microsoft.SqlServer.DTSPipelineWrap)

+1

做你得到任何错误?如果是这样,则需要在与数字 – FLICKER

+0

结合时将[MMID]转换为字符,请提及您的数据库引擎是什么。 sq-server是MicrosoftSQL Server并且不同于mysql – FLICKER

+0

闪烁感谢您的回复...使用Microsoft SQL Server 2014和是时使用 “DtMMP-”+ [MMID] +“-PA-”+ [PymtAuth] 我得到的错误如下,原则上我明白是混合数据类型,但我不清楚如何克服这个问题。 如果演员是我的答案,那么我会去做更多关于演员的研究 – DJJ

回答

0

试试这个

"DtMMP-" + (DT_WSTR,4)MMID + "-PA-" + PymtAuth 

你必须转换到MMID DT_WSTR

+0

2件事。第一次 - 这个伎俩!第二谢谢你对它的外观应该如此具体。完整的语法。 – DJJ

+0

我还得到了一些额外的指导,把整个事情放在一个字符串中 - 你有什么想法? (DT_STR,50,1252)(“DtMMP-”+(DT_WSTR,50)MMID +“ - PA-”+ [PymtAuth]) – DJJ

+0

大多数...谢谢! – DJJ