文档解释
ORA-28335: referenced or referencing FK constraint column cannot be encrypted
Cause: encrypted columns were involved in the referential constraint
Action: None
ORA-28335 错误代表引用或被引用的外键约束列不能被加密。
官方解释
当尝试在 Oracle 12c Release 1 中对具有引用或被引用的外键约束的列启用 Transparent Data Encryption(TDE)时,可能会收到 ORA-28335 错误。根据Oracle官方文档,外键约束列不支持加密,因为TDE不支持 ULN 和 LNN 列:
TDE不支持Exadata 机器上面的本地索引,无论是ULN 索引,还是LNN 索引。
常见案例
例如,如果您尝试将表的主键列加密,而该列是另一个表的外键,则会收到 ORA-28335 错误。
一般处理方法及步骤
要解决此问题,应重新调整外键,以满足 TDE 的要求。可以通过以下步骤来解决这个问题:
1、删除现有的外键约束(如果存在)
2、将列标记为加密
3、创建外键约束(如果需要)
4、对表进行重建,以使用新的外键约束
5、将数据加密,以实际使列处于加密状态