ORA-00933 в процедуре ODI

Я сопоставляю две таблицы в ODI, и у меня проблема.

я сопоставил исходную таблицу с целевой таблицей (называемой DM_BUSINESS со столбцами BUSINESS_ID, NAME, ADDRESS). После этого я создал процедуру с:

UPDATE dm_business SET name = CONCAT(name, CONCAT(' ', address)) WHERE name IN (SELECT name FROM dm_business GROUP BY name HAVING COUNT (business_id)>1);

Когда я сам запускаю этот запрос с помощью SQLDeveloper, у меня нет проблем, и все работает нормально: он добавляет адрес компании к ее имени, когда существует более одной компании с одним и тем же именем. Когда я запускаю процедуру с этой задачей, мне выдает ошибку ORA-00933: SQL command not properly ended. Я выбрал "Oracle" в качестве целевой технологии. Что я делаю неправильно?

Можете вы помочь мне? Большое тебе спасибо.


person Edo    schedule 04.06.2020    source источник


Ответы (1)


Вы должны удалить точку с запятой, чтобы запустить его как оператор SQL, или обернуть UPDATE с помощью BEGIN..END, чтобы запустить его как блок PL/SQL:

BEGIN
   UPDATE ... ;
END;
person Marco Baldelli    schedule 04.06.2020
comment
Спасибо, удаление точки с запятой помогает. Я удивлен, что не попробовал это раньше. - person Edo; 04.06.2020