ORA-02290 Lenguaje Centura ver. 2 -- Oracle 9i

Hola que tal! Enviando mi primera pregunta.
Tengo un problemita.
Utilizo lenguaje Centura SQL Windows 2000, con BD Oracle 9i.
Resulta que me marca un error al efectuar inserción/actualización.
ORA-02290: check constraint (TABLA. FECHA_CK) violated.
El contenido del constraint es:
TO_NUMBER(TO_CHAR(FECHA,'YYYY')) >=1990
Ya le hemos cambiado desde:
* Ejecutando desde SQ*Plus y desde aplicación la sentencia
Alter session set NLS_DATE_FORMAT='DD/MM/YYYY'
* Agregando en registro de Windows, en las llaves All_Homes, Home0 y en Oracle, el dato para NLS_LANG, colocando con valores como:
MEXICAN SPANISH_MEXICO.WE8MSWIN1252
AMERICAN_AMERICA.WE8ISO8859P1
SPANISH_SPAIN.WE8MSWIN1252
* Colocando en sqlnet.ora el formato directamente
NLS_DATE_FORMAT = 'DD/MM/YYYY'
* Se renombró archivo en Centura, ociw32.dll porque según causaba ruido.
* Revisión de Configuración regional de Windows.
* Desinstalé y reinstalé mi cliente de Oracle 9i.
Nada de eso ha funcionado, marca error en constraint de fecha.
Gracias de antemano por el apoyo brindado.
Respuesta
1
Intenta a utilizar solo:
TO_CHAR(FECHA,'YYYY') >=1990
Verifica que tu constraint tenga el tipo adecuado para el proceso de fechas o números que realizas
Pero a mí me llama la atención el hecho de que sí funciona en otras máquinas, ¿por qué no en la mía? Ya casi está sentenciada la máquina para ser formateada el fin de semana, en caso de que no logre reparar esta problemática.
Ese cambio sugerido no lo puedo hacer, ya que no tengo la información de administrador, pero se lo voy a plantear. De cualquier modo, sigo haciendo pruebas para que la aplicación tome la fecha de diversas maneras: YYYY/DD/MM, ... en fin, seguiré rastreando.
Otro cambio que hice fue dejar en registro de Windows el valor para NLS_LANG como AMERICAN_AMERICA, pero no funcionó. Le volví a colocar "alter session ..." pero tampoco, por lo que lo desactivé en mi código de Centura.
Espero sus comentarios o algún tip adicional.
Tal vez la configuración regional de la máquina.
Prueba a ubicar como:
FECHA >= '01-Ene-1990'
Mira si el sistema operativo es similar a la de otras máquina en donde te funciona.
El cliente de oracle es la misma versión que en la máquina en donde funciona

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas