П>Задача такая. В базу из текстового файла грузятся данные. Надо проверить являются ли эти данные датой. Дело в том, что формат входных данных заранее не известен. Это может быть 31.12.2007 или 12.31.2007, или 31 Дек 2007, или Дек 31 2007, а может и вообще датой не быть. При чем как выгружали данные в файл — неизвестно. Форматы могут чередоваться. как лучше поступить?
П>Я делаю так:
П>[sql] П>DECLARE П> date_variable VARCHAR2 (100) := TO_CHAR (SYSDATE, 'mm dd yyyy');
П>Но это естественно не выход, т.к. формат по умолчанию в базе.
Хотел написать что-нибудь умное и универсальное, но что-то в голову не приходит, може люи поумнее подскажут. Я бы сделал (собственно и делаю, тоже прихоится загружать подобное, но у меня только три варианта формата даты, так что проще) последовательные попытки преобразования строки в дату с разными форматами. То есть в обработчике exception опять to_date, но с другой маской и так далее.
Вполне возможно, есть и более красивый и универсальный путь.