CREATE SEQUENCE SEQ_tbl_password_ID INCREMENT BY 1 START WITH 1;Resultaba particularmente extraño pués todos los triggers tienen la misma estructura base. Un compañero de oficina me señaló que alguna vez tuvo un problema similar y se debía a que la estructura de la tabla tenía una palabra reservada en algún lado.
CREATE TABLE tbl_password(
pwd_id INTEGER NOT NULL,
usr_id INTEGER NOT NULL,
oldpassword VARCHAR2(32),
timestamp TIMESTAMP
);
ALTER TABLE tbl_password ADD PRIMARY KEY(pwd_id);
ALTER TABLE tbl_password ADD FOREIGN KEY(usr_id) REFERENCES tbl_user(usr_id);
CREATE INDEX idx_pwd_usr_id ON tbl_password(usr_id ASC);
Efectivamente, si miran con atención, hay un campo de nombre "timestamp". Oracle no se hace mayores problemas al crear una tabla con campos cuyo nombre sea una palabra reservada, sin embargo por lo visto internamente SI restringe su uso.
Solución al problema: Cambiar el nombre del campo de manera que no sea una palabra reservada.
Es uno de esos problemas que uno no debiera tener, ya que normalmente nunca interesaria usar un campo con una palabra reservada como nombre, pero obviamente es un mero supuesto que hasta donde he logrado saber, no está 100% contemplado.
No hay comentarios.:
Publicar un comentario