【问题标题】:[Informatica][ODBC 20101 driver][Microsoft SQL Server]Invalid operator for data type. Operator equals minus, type equals varchar[Informatica][ODBC 20101 驱动程序][Microsoft SQL Server]数据类型的运算符无效。运算符等于减号,类型等于 varchar
【发布时间】:2020-08-24 04:21:33
【问题描述】:
REPLACE(T.FirstName, ' ', '') + '.' + 
REPLACE(REPLACE(T.LastName, ' ', ''), '''', '') + '.' + SUBSTRING(CONVERT(varchar(50), T1.Id), 1, 8) +
'@outlook.com' AS 'EmailAddress'

EmailAddress 是具有上述逻辑的列之一。 Informatica 工作流因转换而失败并出现以下错误。谁能帮我解决这个问题。

源是SQL Server,目标是Oracle

我收到此错误:

[Informatica][ODBC 20101 驱动程序][Microsoft SQL Server]数据类型的运算符无效。运算符等于减号,类型等于 varchar。

【问题讨论】:

  • 在 Oracle 连接中是“||”而不是“+”
  • 您正在使用 Oracle 或 SqlServer .. ????
  • SQL server 是源,我需要将数据加载到 oracle 表中。此电子邮件列来自源查询。此列的 Informatica 引发错误。我认为这是可比性问题。
  • 某人有一个连字符的名字?
  • 我用示例值运行了这个 SQL 并运行它。数据有问题吗?替换('abcd','','')+'。' +替换(替换('pqr','',''),'''','')+'。' + SUBSTRING(CONVERT(varchar(50), 'xx'), 1, 8) + '@outlook.com' AS 'EmailAddress'

标签: sql oracle informatica


【解决方案1】:

这不是 Informatica 错误。这是 MS SQL Server 引发的错误并传递给 Informatica。

这意味着,错误是由查询引发的。在源系统上调试查询。似乎它的某些部分导致了一个减号,然后查询优化器将其解释为减法。

【讨论】:

    【解决方案2】:
     {FN CONCAT( {FN CONCAT({FN CONCAT({FN CONCAT( {FN CONCAT(REPLACE(T.FirstName,' ',''), '.')}, REPLACE(REPLACE(
          T.LastName,' ',''),'''',''))},'.' )}, SUBSTRING(convert(varchar(50),T1.PersonId),1,8))},'@Outlook.com')} AS 'EmailAddress'
    

    如上进行更改。 SQL Server 对“+”或“CONCAT”没有任何问题。 inforamtica 在查询中为“+”连接引发错误。现在我可以将数据从 SQL Server 加载到 Oracle 表中。感谢大家的回复和帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-11-17
      • 2013-06-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-07-31
      • 2019-07-06
      相关资源
      最近更新 更多