oracle 禁止 隐式转换,oracle数据隐式转换规则

在oracle中,如果不同的数据类型之间关联,如果不显式转换数据,则它会根据以下规则对数据进行隐式转换,这种转换造成最常见的问题是索引失效,所以要尽量避免这种转换,在系统数据库设计阶段就要进行把关。转换规则参考官方文档SQL Reference /Datatype Comparison Rules 中描述的内容:

The following rules govern the direction in which Oracle makes implicit datatype conversions:

1) During INSERT and UPDATE operations, Oracle converts the value to the datatype of the affected column.

对于INSERT和UPDATE操作,oracle会把插入值或者更新值隐式转换为字段的数据类型。如假如id列的数据类型为number

update t set id='1'; -> 相当于 update t set id=to_number('1');

insert into t(id) values('1') -> insert into t values(to_number('1'));

2) During SELECT FROM operations, Oracle converts the data from the column to the type of the target variable.

对于SELECT语句,oracle会把字段的数据类型隐式转换为变量的数据类型。如假设id列的数据类型为varchar2

select * from t where id=1; -> select * from t wher

你可能感兴趣的:(oracle,禁止,隐式转换)