(转)
今天测试分区索引,发现oracle智能化的一方面:若列为number类型,用其作为where条件时,变量为varchar2类型时会自动将变量转换为number类型,而不是将列转换为number类型。
例如,表testn存在number类型的列a,使用该列做为查询条件时:若变量为varchar2类型,且可合法地转换成number类型,则自动将变量转换为number类型,而不会转换a列中的数据。这样如果有索引,是可以使用的;
若变量为varchar2类型,且不可合法地转换成number类型,则显式地将变量转换为number类型,同样不会转换a列中的数据。此时如果有索引,也可以使用。
而若列a为varchar2类型,则没有这个功能。