Forzando un formato de fecha para las conexiones a un esquema

Desgraciadmente, hay por el mundo un monton de aplicaciones aplicaciones mal diseñadas que no hacen ningún tipo de control del formato de fecha (o número) que gestiona la BBDD.

No entraré en detalles de cual considero que es la manera correcta de hacerlo pero si comentaré como garantizar que es capaz de interpretar correcta y fácilmente desde un único punto de todo el sistema.

Con el siguiente trigger somos capaces de forzar el formato, independientemente de dónde se realice la conexión.

CREATE OR REPLACE TRIGGER trg_fuerza_formato
After Logon On Schema
Declare
Begin
Execute Immediate 'alter session set nls_date_format = ''dd/mm/yyyy hh24:mi:ss''';
Exception
When Others
Then
Null;
End trg_fuerza_formato;
/

Al ser un trigger de sesión, este se ejecutará cada vez que realicemos la conexión luego no importa si el cliente es un sqlplus , ODBC, job o lo que sea. Todas las conexiones a este esquema de bbdd se verán afectadas.

Este script o parecidos nos permitirá jugar con formatos de fechas o números para parchear un sistemas pésimamente programado y de dudosa configuración.