Функция REGEXP_SUBSTR для чтения поля даты из файла CSV
Я пишу блок SQL, который будет готов файл в формате CSV с использованием концепции внешней таблицы.
У меня почти 20+ столбцов и код читает все, кроме полевых, в которых есть данные в формате даты. даты идут в этом формате 5/12/2014 12:12:22 (месяц / день / год час: минута: секунда)
это своего рода синтаксис, который я использую для чтения всех данных строки /varchar. здесь V_LINE - это просто переменная, которая представляет количество строк,
V_CRT_DT := REGEXP_SUBSTR(V_LINE, '**[^,]+**', 1, 15);
Может кто-нибудь, пожалуйста, помогите мне о том, как прочитать данные в формате даты.
1 ответ
Вы имеете в виду, что хотите извлечь столбец, содержащий дату, и преобразовать его в дату?
with data as
( select 'AAA,BBB,CCC,5/12/2014 12:12:22,DDD,EEE,FFF' str from dual)
select to_date(regexp_substr(str, '[^,]+', 1, 4), 'MM/DD/YYYY HH24:MI:SS') from data;
Regexp_substr() получает 4-е поле, разделенное запятыми (дата / время), затем to_date() преобразует его в дату.