Hay ocasiones en que a uno le dan ganas de mandar todo a paseo porque aparecen errores que no tienen explicación y que cuesta descubrir. Incluso buscando en google es difícil dar con la solución.
Mi situación era la siguiente, tengo un modelo simplificado en django;
class CdsComposite(models.Model):
AvRating = models.CharField(maxlength = 3)
Ccy = models.CharField(maxlength = 3)
Date = models.DateField()
Como backend utilizo una base de datos Oracle 9. Procedo a generar los objetos en base de datos y cual es mi sorpresa al descubrir que no es posible generar el trigger asociado a la pk del objeto (el id interno que crear django por defecto).
El error devuelto por Oracle es bien genérico y aparece en la creación del trigger;
DatabaseError: ORA-06552: PL/SQL: Compilation unit analysis terminated
ORA-06553: PLS-320: the declaration of the type of this expression is incomplete or malformed
Después de muchas vueltas descubrí la causa del problema; la definición de uno de los campos del modelo con el nombre Date. Casualmente el nombre de un tipo de datos en Oracle y la causa de todos mis problemas.
Lo que me fastidia es que el error aparezca al intentar crear el trigger y no al crear la tabla. Señores de Oracle, esto no es muy lógico.
Suscribirse a:
Enviar comentarios (Atom)
1 comentarios:
Disculpe señor, pero Ud. como desarrollador de software debería estar en conocimiento que 'Date' es un tipo de dato no sólo en Oracle, sino que en un sin fin de sistemas, incluyendo Django.
Publicar un comentario en la entrada