Como identificar valores inválidos (corrompidos) armazenados nas colunas Oracle DATE

Oracle 10.2.0.5

Qual é a maneira mais fácil de identificar linhas em uma tabela com valores "inválidos" nas colunas DATE. Por "inválido", o que quero dizer é uma representação binária que viola as regras do Oracle para valores de dat

ecentemente, tive um problema com uma data inválida armazenada em uma colun

Consegui usar um predicado de consulta para encontrar uma linha problemática específica:

  WHERE TO_CHAR(date_expr,'YYYYMMDDHH24MISS') = '00000000000000'

No caso, o byte do século era inválido ...

 select dump(h.bid_close_date) from mytable h where h.id = 54321

 Typ=12 Len=7: 220,111,11,2,1,1,1

O byte do século deve ser de 100 + dois dígitos. Nesse caso, foram adicionados 100 adicionais, como se o valor do século fosse "120", tornando o ano "12011". (A única maneira que sei obter valores DATE inválidos no banco de dados é usando OCI, usando representação DATE nativa de 7 bytes.)

Nesse caso, a função TO_CHAR retornou uma string identificável, que eu poderia usar para identificar o valor DAKE instáve

Minha pergunta: existe uma abordagem mais geral ou mais fácil (de preferência usando uma instrução SQL SELECT) para identificar linhas com valores "inválidos" nas colunas DAT

questionAnswers(4)

yourAnswerToTheQuestion