[Informatica] [Драйвер ODB C 20101] [Microsoft SQL Server] Неверный оператор для типа данных. Оператор равно минус, тип равно varchar - PullRequest
0 голосов
/ 08 мая 2020
REPLACE(T.FirstName, ' ', '') + '.' + 
REPLACE(REPLACE(T.LastName, ' ', ''), '''', '') + '.' + SUBSTRING(CONVERT(varchar(50), T1.Id), 1, 8) +
'@outlook.com' AS 'EmailAddress'

EmailAddress - это столбец, в котором выше logi c. Сбой рабочего процесса Informatica из-за преобразования с ошибкой ниже. Может ли кто-нибудь помочь мне, как с этим справиться.

Источник - SQL Сервер, а цель - Oracle

Я получаю эту ошибку:

[ Informatica] [Драйвер ODB C 20101] [Microsoft SQL Server] Неверный оператор для типа данных. Оператор равен минусу, тип равен varchar.

Ответы [ 2 ]

0 голосов
/ 12 мая 2020
 {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 Сервер не имеет проблем с '+' или 'CONCAT'. inforamtica выдавала ошибку "+" для конкатенации в запросе. Теперь я могу загрузить данные в таблицу Oracle с сервера SQL. Спасибо всем за ответы и помощь.

0 голосов
/ 10 мая 2020

Это не ошибка Informatica. Это ошибка сервера MS SQL, которая передается Informatica.

Это означает, что ошибка возникает из-за запроса. Выполните отладку запроса в исходной системе. Кажется, что какая-то часть приводит к минусу, который затем интерпретируется оптимизатором запросов как вычитание.

...