ORA-02267: tipo de columna incompatible con el tipo de columna referenciada.
El tipo de datos de la columna de referencia es incompatible con él, seleccione un tipo de datos compatible para la columna de referencia.
Ejemplo
Creamos la Relación llamado Empleado, con las siguientes columnas (estas no están normalizadas solo para ejemplificación.
create table empleado (id_emp integer, nombres varchar2(25), apellidos varchar2(25));
id_emp: que es el identificador único y la volveremos primary key.
nombres: nombres de los empleados
apellidos: apellidos de los empleados.
Alteramos la relación de empleado para asignar el primay key.
alter table empleado add constraint pk_empleado primary key (id_emp);
Creamos la Relación de Puesto:
create table puesto (id_puesto integer, nombredelpuesto varchar2(25), sueldo integer, id_emp char);
id_ puesto: que es el identificador único del puesto y la volveremos primary key.
nombrdelpuesto: el cargo o nombre del puesto.
sueldo: cantidad de honorarios al puesto que desempeña.
id_ emp: foreign key, esta es la que se enlazara con la Relación Empleado.
Alteramos la relación de puesto para asignar el primay key.
alter table puesto add constraint pk_puesto primary key (id_puesto);
Ahora provocaremos el ORA-02267 al asignar la llave foránea, y a que los tipos de datos son diferentes en ambas relaciones puesto, empleado:
alter table puesto add constraint FK_emp_puesto foreign key (id_emp) references empleado(id_emp);
Explicacion:
El error se da cuando el primary que se enlace con otra relación no es el mismo tipo de dato, en este caso: id_emp en la relación puesto es de tipo char, mientras id_emp en la relación empleado es de tipo integer, de allí se genera este error.