You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ORA-00933语法错误求助:SQL连接语句执行失败排查

解决ORA-00933:SQL命令未正确结束的问题

错误原因

你的SQL代码末尾存在多余的重复JOIN语句(附带混乱的行号),Oracle执行到分号后仍遇到未预期的SQL语法,因此抛出ORA-00933错误。

修正后的SQL代码

SELECT i.bill_cyc_cd, i.store_cd,
       SUM(CASE WHEN p.past_due_tp# > 0 AND p.past_due_tp# <= 4 THEN i.sch_pmt_amt ELSE 0 END) AS sch_pmt_amt,
       c.fname, c.lname, c.home_phone
FROM inst_cntr i
JOIN cntr$past_due_tp p ON i.cust_cd = p.cust_cd AND i.cntr_cd = p.cntr_cd
JOIN cust c ON i.cust_cd = c.cust_cd
WHERE i.bill_cyc_cd IN ('300', '150', '015', '030', '922', '921', '920')
  AND p.past_due_tp# > 0 AND p.past_due_tp# <= 4
GROUP BY i.bill_cyc_cd, i.store_cd, c.fname, c.lname, c.home_phone;

额外优化建议

原SQL中的EXISTS子查询完全冗余:你已经通过JOIN cntr$past_due_tp p关联了逾期表,并且在WHERE子句中已经过滤了p.past_due_tp#的范围,重复的EXISTS检查不会带来额外价值,反而会增加查询开销,直接删除即可。

内容的提问来源于stack exchange,提问作者GoldBaz

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.29 05:40:03