недопустимый числовой символ не соответствует значению
Oracle перехватывает «1-2», и перед ним требуется только «-».
один、вопроснамекать Запрос при выполнении оператора sql Oracle [ORA-01722: invalid номер】Ошибка неверного номера.
два、вопрос АНАЛИЗ 2.1. Несоответствие типов То есть тип оформления поля в базе данных не соответствует типу вставки или модификации (например, оформление поля: тип float, но вставленное или измененное содержимое действительно является строкой ['a']).
2.2. Выполнение функциональных операций с данными поля. То есть над полями выполняются такие функциональные операции, как суммирование (SUM) и усреднение (AVG), но данные полей не совпадают. Например, (суммирование номера строки [.12.5036] сообщит об ошибке, и. нормальное значение должно быть (12,5036) )
2.3. Преобразование данных То есть необходимо преобразовать тип данных. Например, преобразование числового содержимого строки в числовой тип, например (to_number('.12.5036') или to_number('a')) приведет к ошибке. но [to_number('12.5036')] будет правильным.
3. Меры предосторожности ① Когда мы работаем с данными, нам необходимо уделять особое внимание типу данных и тщательно обращаться с содержимым различных типов данных, чтобы гарантировать полноту и точность содержимого данных.
②Когда мы сталкиваемся с такими ошибками, мы сначала проверяем, совпадают ли типы данных и содержимое задействованных полей, а затем шаг за шагом проверяем соответствующие преобразования символов и функциональные операции.
Используйте функцию Oracle REGEXP_SUBSTR для перехвата:
SELECT REGEXP_SUBSTR('1-2', '[^-]+') FROM dual;
Здесь функция REGEXP_SUBSTR используется для сопоставления и перехвата подстрок из строк в соответствии с регулярными выражениями. Смысл регулярного выражения «[^-]+» состоит в том, чтобы соответствовать одному или нескольким символам, которые не содержат «-».
После перехвата
Выполнено успешно!