文档解释
ORA-28338: Column(s) cannot be both indexed and encrypted with salt
Cause: An attempt was made to encrypt index column with salt or an attempt was made to create an index on encrypted column with salt.
Action: Alter the table and specify column encrypting without salt.
ORA-28338: Column(s) cannot be both indexed and encrypted with salt是一个数据库错误码,指明在Oracle数据库中,不能同时对一列或多列加索引和加入“加盐”加密数据加密。
官方解释
ORA-28338,当您使用dbms_crypto.encrypt()或dbms_crypto.encrypt_raw()函数时,由于加密密钥是一个随机的数字,因此Oracle不支持您对被加密的数据进行索引。
常见案例
常见的案例是,用户会尝试将加盐加密的字段的索引分别添加到字段中,以便在查询中使用更快的访问。
一般处理方法及步骤
1)确认错误是否涉及加密列。
2)检查此列是否既有索引也有加盐加密,如果是,则应用ORA-28338错误。
3)分析该错误,并确定要索引或加密的字段。
4)根据实际业务情况,决定是添加索引还是加密此字段。
5)在此字段上应用您所选择的方法。