Oracle ORDS使用q参数过滤日期NULL值报错求助
Oracle ORDS过滤日期字段为NULL的正确方法
针对你遇到的问题,直接用以下两种方式就能正确过滤出日期字段为NULL的数据:
方法一:直接匹配JSON null
使用JSON原生的null值(注意不要加引号,不是字符串):
{"cancellation_date": null}
方法二:使用$isNull操作符
如果需要更明确的逻辑(尤其是复杂查询场景),可以用ORDS支持的$isNull操作符:
{"cancellation_date": {"$isNull": true}}
为什么之前的方法会报错?
- 用
{"cancellation_date":"$null"}时,ORDS会把"$null"当作字符串尝试转换成日期格式,自然触发ORA-01858格式错误; - 用
{"start_date":{"$eq":{"$date":"$null"}}}时,$date要求传入合法的ISO日期字符串(比如"2024-05-20T00:00:00Z"),跟$null搭配属于非法语法,所以返回Bad Request。
内容的提问来源于stack exchange,提问作者Jens k
相关产品推荐
相关产品推荐

