Вы не упомянули, какой инструмент используете.
В любом случае, у вас есть проблема. Форматы «даты» различаются в столбцах и в строках, что делает его еще хуже.
Я бы предложил создать функцию, которая будет принимать входные значения - «даты» (фактически, строки * 1006). *) вы находите в исходных данных и пытаетесь преобразовать их в действительную дату, используя функцию TO_DATE
с различными масками формата: mm/dd/yyyy
, dd-mm-yyyy
и т. д. c., в зависимости от того, что вы найдете в источнике. Используйте внутренние блоки BEGIN-EXCEPTION-END, чтобы первый сбой не прекратил выполнение функции. Если вам удастся найти правильное значение даты, прекрасно - загрузите его. Если нет, зарегистрируйте ошибку и попробуйте исправить ее с помощью другой маски формата TO_DATE
. При желании вы можете использовать REGEXP_LIKE
для проверки формата ввода.
Проблема, которую вы не можете решить, это строка, которая выглядит как 10-08-20
. Что есть что? 10
день, месяц или год? То же самое относится и к другим значениям.
Кроме того, вызов функции для всех этих значений - если источник большой - безусловно, займет много времени.