Задать вопрос
  • Oracle: как узнать на какой строчке ошибка?

    @medotkato
    Другой вариант на скорую руку в декларативном духе без pl/sql таков.
    To_number отталкивается от формата числовых значений, определенных Вашими настройками NLS.
    Для российских локализаций разделитель дробной части, как правило, запятая.
    Значит, надо искать строки с иными символами (не цифры и не запятая) в этом поле либо с более чем одной запятой (и то, и другое - ошибка).

    Например, для разделителя-запятой так (c регулярками проще):
    select * from your_table where regexp_like ( your_varchar_field , '([^,0..9])|(,.*,)' )

    Конечно, если у Вас там не "AusDollars" в качестве обозначения валюты (см. "to_number" на docs.oracle.com).

    Если разделитель не запятая, меняем на другой символ по аналогии.
    Ответ написан
    Комментировать