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

ORA-01756报错:拼接日期条件的SQL片段执行失败如何解决

问题原因
  • 核心问题是拼接的SQL字符串没有补全语法结构,单引号未正确配对,Oracle解析时找不到匹配的闭合引号,因此抛出ORA-01756: quoted string not properly terminated错误。
  • 具体缺失的部分:你要生成的目标格式是BETWEEN TO_DATE('日期1', '格式参数') AND TO_DATE('日期2', '格式参数'),但原代码在拼接完第二个to_char(CURRENT_DATE + 1, ...)之后就直接结束了,缺少了:
    1. 第二个TO_DATE的日期值需要的闭合单引号(对应转义的''')
    2. 第二个TO_DATE的日期格式参数部分
    3. 第二个TO_DATE的右括号
    4. 整个拼接字符串的结尾闭合单引号
修正后的代码
SELECT 'BETWEEN TO_DATE(''' || TO_CHAR(CURRENT_DATE, 'dd/MM/yyyy 00:00:00') || ''', ''DD/MM/YYYY HH24:MI:SS'') AND TO_DATE(''' || TO_CHAR(CURRENT_DATE + 1, 'dd/MM/yyyy 00:00:00') || ''', ''DD/MM/YYYY HH24:MI:SS'')' AS date_query_condition FROM DUAL;

运行后会生成符合要求的日期范围条件片段,示例输出:

BETWEEN TO_DATE('21/05/2024 00:00:00', 'DD/MM/YYYY HH24:MI:SS') AND TO_DATE('22/05/2024 00:00:00', 'DD/MM/YYYY HH24:MI:SS')

补充说明

Oracle中拼接字符串时,两个连续单引号''会转义为一个普通单引号',如果最终生成的字符串里需要出现N个单引号,拼接时就要写2*N个单引号,写完可以数一下整行SQL的单引号总数是否为偶数,避免配对错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.23 21:06:05