如何编写不引用表的查询?ORA-00923错误求解
解决Oracle计算字符串空格数的ORA-00923错误
你的SQL语句在Oracle中报错有两个核心原因,对应的修正方案如下:
错误原因与修正点
- Oracle不支持
LEN()函数,需替换为Oracle原生的LENGTH()函数 - Oracle要求所有SELECT语句必须包含
FROM子句,无法省略,这里可以用Oracle提供的虚拟表DUAL作为数据源
修正后的查询语句(匹配你原需求:排除首尾空格后计算中间空格数)
SELECT LENGTH(RTRIM(LTRIM('Im i student of the Academy'))) - LENGTH(REPLACE('Im i student of the Academy', ' ', '')) AS Spacecount FROM DUAL;
可选优化(计算字符串中所有空格,包括首尾)
如果不需要排除首尾空格,直接去掉RTRIM(LTRIM())即可:
SELECT LENGTH('Im i student of the Academy') - LENGTH(REPLACE('Im i student of the Academy', ' ', '')) AS Spacecount FROM DUAL;
内容的提问来源于stack exchange,提问作者Максим
相关产品推荐
相关产品推荐

