El valor devuelto por TO_CHAR(fecha, 'D') aplica al sitio donde se encuentre el servidor de la base de datos, y es
independiente del formato de fecha local, porque devuelve un número en el rango 1 a 7 dependiendo del día de la semana en cuestión (Lunes = 1, Martes = 2, etc).
Código SQL:
Ver originalSELECT TO_CHAR (TO_DATE ('30/01/2016', 'dd/mm/rrrr',
'NLS_DATE_LANGUAGE = Spanish'), 'D') "Formato SP",
TO_CHAR (TO_DATE ('01/30/2016', 'mm/dd/rrrr',
'NLS_DATE_LANGUAGE = American'), 'D') "Formato EN",
TO_CHAR (TO_DATE ('01/30/2016', 'mm/dd/rrrr',
'NLS_DATE_LANGUAGE = German'), 'D') "Formato GER"
FROM DUAL;
Cualquier duda, consulta el manual y haz pruebas en diferentes servidores de datos.
http://docs.oracle.com/cd/B19306_01/...nctions180.htm
Y... NO. Trabajar con resultados en cadenas de texto no es mejor que hacerlo con valores numéricos.
Haz la prueba y seguimos.