Это именно то, для чего функция TO_DATE предназначена для:
SELECT TO_DATE(SUBSTR(Host_Name,-9), 'DDMonYYYY') as Decom_Date
Это не влияет на вас здесь, но имейте в виду, что oracle даты могут быть сохранены только до вторая точность. Кроме того, если у вас есть какие-либо мошеннические данные в таблице, которые не могут быть проанализированы как дата, вы получите «недопустимый ...» или «был найден ненумерованный c, где числовое значение c было ожидается».
Имейте в виду, что ваши строки здесь на английском языке sh, но синтаксический анализ MON (трехбуквенное название месяца) может быть регионально-контекстным, поэтому этот код может не работать на сервере с другим NLS; например, рассмотрите передачу 'NLS_DATE_LANGUAGE = American' в качестве третьего аргумента TO_DATE, если вы знаете, что ваши строки всегда будут Engli sh названия месяцев