Tempo aproximado para leitura: 00:03:00 min
Dúvida
Como tratar exceções referentes a função TO_DATE (Oracle) em consulta SQL ao gerar relatório?
Ambiente
Cross Segmentos - TOTVS Backoffice (Linha RM) - RM BI - Todas as versões
Solução
Função TO_DATE()
Sintaxe
A função TO_DATE() pode ser usada nas seguintes versões do Oracle/PLSQL
Exceções mais comuns
RM, Consultas SQL, Oracle e ORA-01830
A Solução geral dada acima, para a exceção de código ORA-01830, logicamente serve também para o produto RM, porém existem algumas peculiaridades que devem ser tratadas de forma isolada.
A principal peculiaridade que trataremos aqui são os parâmetros da Consulta SQL.
Para que a exceção de código ORA-01830 não aconteça, devemos ter certeza de que os parâmetros da consulta SQL utilizados na função TO_DATE():
Não referenciem campos da base, parâmetros do relatório, campos do relatório, que sejam nativamente do tipo datetime.
Caso referenciem, devem estar acompanhados do sufixo _S; é de extrema importância que esse sufixo esteja presente nesses parâmetros, pois como definimos um tipo prévio para o parâmetro, o processo de execução da Consulta SQL não tem que detectar o tipo, fazendo com que o retorno da consulta seja mais rápido, além disso, como o tipo do parâmetro foi definido como string (cadeia de caracteres), a exceção não deverá ocorrer, lembrando que a máscara do formato deverá ser idêntica ao valor do parâmetro.
Substituindo TO_DATE para TO_CHAR
Uma ótima alternativa é substituir o TO_DATE para TO_CHAR, quando os campos utilizados na Consulta SQL sejam nativamente datetime.
O uso do TO_CHAR é mais simples, já que não é necessário que a máscara do formato seja idêntica ao valor passado como primeiro parâmetro (teoricamente data ou number) dessa função.
Ex: TO_CHAR('2003-01-01','dd/MM/yyyy')
Saiba mais
Acesse o link para mais detalhes sobre exceções da Função TO_DATE (Oracle) em consulta SQL
0 Comentários