Ответы пользователя по тегу Oracle
  • Где ошибка в запросе?

    @Khamzabek
    Ошибка в запросе заключается в неправильном форматировании строкового литерала. Во-первых, не хватает символа "||" перед строкой "from", так как он должен быть объединен со строкой "select". Во-вторых, также не хватает символа "||" перед строкой "on", так как он должен быть объединен со строкой "join". В-третьих, в строке "on (t.' v_trg_pk" не хватает символа "||" перед переменной "v_trg_pk". Кроме того, необходимо добавить символы ";" в конце запроса.

    Исправленный запрос:

    v_sql := 'merge into ' || in_trg_table || ' t'
    || ' using (select s.address, s.city, m.trg_pk_id'
    || ' from ' || v_src_table || ' s join ' || v_map_table || ' m'
    || ' on m.src_pk_id = s.cust_id ) sc'
    || ' on (t.' || v_trg_pk || ' = sc.trg_pk_id)'
    || ' when matched then update set '
    || 't.ADDRESS=sc.ADDRESS,t.CITY=sc.CITY;';
    Ответ написан
    Комментировать