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

ORA-00920无效逻辑运算符错误:SQL语句修正请求

修正Oracle连接查询的运算符错误

错误原因

  1. Oracle不支持SAS风格的连续比较语法(A <= B <= C),必须拆分为两个独立条件并用AND连接。
  2. SAS的日期格式"&start."d是本地语法,提交到Oracle执行时会被识别为无效表达式,需要转换为Oracle兼容的日期处理方式。

修正后的代码

将连续比较拆分,同时把SAS宏变量转换为Oracle可识别的日期格式:

Proc sql;
connect to oracle(path="xxx" connection =shared);
create table sample as 
select * from connection to oracle 
  (select * from ori.auto as a
  where datepart(a.date) >= TO_DATE("&start.", 'YYYY-MM-DD') 
    AND datepart(a.date) <= TO_DATE("&end.", 'YYYY-MM-DD'));
quit;

补充说明

  • 确保&start.和&end.宏变量是YYYY-MM-DD格式的字符串,如果你的宏变量是其他日期格式(比如MM/DD/YYYY),需要修改TO_DATE函数里的格式匹配符。
  • 如果a.date本身就是Oracle的DATE类型,不需要用datepart()函数,直接比较即可:
Proc sql;
connect to oracle(path="xxx" connection =shared);
create table sample as 
select * from connection to oracle 
  (select * from ori.auto as a
  where a.date >= TO_DATE("&start.", 'YYYY-MM-DD') 
    AND a.date <= TO_DATE("&end.", 'YYYY-MM-DD'));
quit;

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.22 00:04:56