ora-01830:la mascara de formato de fecha termina antes de convertir toda la cadena de entr

CHEMIAN
05 de Septiembre del 2005
Hola a todos,
Tengo un problema al lanzar una queri que contiene un to_date.
El caso es que en un procedimiento hago un alter session para cambiar el formato de fecha y despues de realizar una serie de operaciones hago un select que contiene un to_date. Cuando ejecuto esta select me da el error 'ora-01830:la mascara de formato de fecha termina antes de convertir toda la cadena de entrada'.
Como puedo solucionarlo??

chemian
05 de Septiembre del 2005
antes de que alguien me de la solucion de poner to_char, ya adelanto que no me vale porque necesito ordenar el resultado por este campo, y el orden que utiliza para un campo char es distinto que el de un date.

gracias

jc3000
05 de Septiembre del 2005
Pues haz dos cosas :
1-) Ponnos el ALTER SESSION que haces
2-) Ponnos la select que te peta


chemian
05 de Septiembre del 2005
gracias por el interes, pero ya lo he consguido solucionar. Por si te interesa, lo que me preguntabas seria algo asi
DBMS_SESSION.SET_NLS('NLS_DATE_FORMAT','''DD/MM/YY HH24:MI:SS''');
y la select es muy larga pero como ejemplo podria valer algo como esto
SELECT SUM(EJECUCIONES),TO_DATE(DIA,'DD/MM/YY') DIA FROM TABLA GROUP BY TO_DATE(DIA,'DD/MM/YY')

El caso es que la solucion era poner en la select en lugar del to_date, un trunc(dia) sin mas y asi me da el formato que yo quiero y no me da problemas.

Gracias por el interes.
Un saludo.

jc3000
05 de Septiembre del 2005
De nada.

Una cosa, ten mucho ojito con esto :

('NLS_DATE_FORMAT','''DD/MM/YY HH24:MI:SS''');

Puede darte problemas

Cambialo por
('NLS_DATE_FORMAT','''DD/MM/RR HH24:MI:SS''');

CHEMIAN
05 de Septiembre del 2005
Que son las 2 R's del NLS_DATA_FORMAT, no conozco ese formato??

Rodolfo Reyes
05 de Septiembre del 2005
El formato RR que establece que si los dos dígitos indicados son inferior a 50 se compone con los dos primeros dígitos del año de SYSDATE, pero si es superior a 50 con los dos primeros dígitos del año de SYSDATE menos uno. Así en el año actual las fechas estarían comprendidas entre 1951 y 2050.

CHEMIAN
05 de Septiembre del 2005
OK, muchas gracias, eso no lo sabia.

Un saludo