Oracle SQL: эквивалент TRY_CONVERT / обходной путь - PullRequest
1 голос
/ 30 марта 2020

Я имею дело с особенно плохим набором данных с датами, хранящимися как часть свободного текста.

Я использую to_date (regexp_substr (dateformat)), чтобы найти все даты, которые я могу. Я не рассчитываю захватить их всех, но как можно больше - это хорошо!

Однако иногда мне кажется, что мое регулярное выражение выбирает даты за пределами моего распознанного формата дат, и я получаю ошибку: " картинка в формате даты заканчивается перед преобразованием всей входной строки "

Я хотел бы использовать что-то вроде try_convert в SQL Server, чтобы обойти это, и просто пропустить даты, которые возникают как проблема.

Любые идеи о том, как лучше go об этом?

PS Использование Oracle SQl Developer 3.0.1 (Нет возможности обновить это, к сожалению ...)

1 Ответ

0 голосов
/ 30 марта 2020

Вы можете использовать такую ​​функцию:

CREATE OR REPLACE FUNCTION to_date_safe(is_val IN VARCHAR2, is_fm IN VARCHAR2)
    RETURN DATE 
IS
    ld_result DATE;
BEGIN
    RETURN to_date(is_val, is_fm);
EXCEPTION
    WHEN OTHERS
    THEN
        RETURN NULL;
END;
/
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...