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

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 )

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

推荐答案

在这种情况下,Oracle执行implicit datatype conversion.如果它成功做到了这一点,它将返回结果.否则,它将失败.

例如,您可以比较length > 'A2';因为A2(字符串)不能转换为数值,所以您会得到一个错误.

SQL> select count(*) from dual where length(dummy) > '-25';

  COUNT(*)
----------
         1

SQL> select count(*) from dual where length(dummy) > 'A2';
select count(*) from dual where length(dummy) > 'A2'
                                                *
ERROR at line 1:
ORA-01722: invalid number


SQL>

Java相关问答推荐

如何使用解析器组合子解析Java数组类型签名?

同时运行JUnit测试和Selenium/Cucumber测试时出现问题

工件部署期间出错[Tomcat 8.5.45]

需要一个找不到的jakarta.sistence.EntityManager类型的Bean

使用联接和分页的SpringBoot Spring数据JPA

将不受支持的时区UT重写为UTC是否节省?

查找剩余的枚举

Java:使用Class.cast()将对象转换为原始数组

与不同顺序的组进行匹配,不重复组但分开

尽管通过中断请求线程死亡,但线程仍将继续存在

Spring-Boot Kafka应用程序到GraalVM本机映像-找不到org.apache.kafka.streams.processor.internals.DefaultKafkaClientSupplier

是否在settings.xml中使用条件Maven镜像?

寻找Thread.sky()方法的清晰度

Java 21中泛型的不兼容更改

具有多个模式的DateTimeForMatter的LocalDate.parse失败

RestTemplate Bean提供OkHttp3ClientHttpRequestFactory不支持Spring Boot 3中的请求正文缓冲

为什么项目名称出现在我的GET请求中?

协同 routine 似乎并不比JVM线程占用更少的资源

在Java Spring JPA中插入包含对其他实体的引用的列

如何正确使用java.time类?