目录
1. 问题所示
执行sql语句的时候出现如下问题:
ORA-00933: SQL command not properly ended
截图如下所示:
2. 原理分析
ORA-00933: SQL command not properly ended 是 Oracle 数据库中的错误,指示 SQL 语句存在语法问题
MySQL 和 Oracle 在 SQL 语法和功能上存在一些差异,这些差异可能会导致在两个数据库系统中执行相同的 SQL 语句时出现不同的错误
- 子查询和汇总
-
Oracle SQL:子查询通常需要用括号包围,并且子查询的结果集列名称和外部查询的列名称要匹配
对 SQL 语法比较严格,子查询中通常需要明确的 GROUP BY 语句 -
MySQL:处理子查询和汇总时相对宽松,可以在某些情况下使用隐式子查询,并且有时对于子查询中的列别名和外部查询的兼容性不如 Oracle 严格
- GROUP BY 和 CASE
-
Oracle SQL:使用 CASE 语句时,GROUP BY 子句要包含所有非聚合列