在 oracle db 中,当我们提供字符串代替数字时,比较如何进行?

问题描述 投票:0回答:1

假设我有一个这样的查询(不太实用,我知道这不是方法)

SELECT * 
FROM CO.CUSTOMERS 
WHERE CUSTOMER_ID = '1' 
  AND length((SELECT FULL_NAME 
              FROM CO.CUSTOMERS 
              WHERE CUSTOMER_ID=1)) > '35';

-- in the last as you can see I'm comparing it with a string ( i think )

但是上面的查询仍然给出了结果,所以我想知道是与字符串还是由字符串组成的整数进行比较。

java sql oracle11g oracle-sqldeveloper oracle10g
1个回答
0
投票

在这种情况下,Oracle 会执行“隐式数据类型转换”。如果它设法做到这一点,它将返回结果。不然就失败了。 例如,您可以比较

length > 'A2'

;由于

A2
(字符串)无法转换为数值,因此您会收到错误。
    

© www.soinside.com 2019 - 2024. All rights reserved.