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

PL/SQL日期转换报错ORA-01861原因及解决方法咨询

ORA-01861 报错原因及解决方法

报错原因

Oracle 的字符串拼接规则为:任意一个拼接项为 NULL 时,整个拼接结果返回 NULL。当 sched_ftime_ 为 NULL 时,to_char(account_date_, 'YYYYMMDD ') || sched_ftime_ 的执行结果为 NULL,to_date 函数无法将 NULL 值匹配你指定的 YYYYMMDD HH24:MI 格式规则,因此抛出 ORA-01861: literal does not match format string 错误。

解决方法

根据业务需求可以选择两种处理方案:

  • 若 sched_ftime_ 为 NULL 时默认取当天 0 点作为起始时间,使用 nvl 函数给空值设置默认时间即可:
    res_start_time_ := to_date(to_char(account_date_, 'YYYYMMDD ') || nvl(sched_ftime_, '00:00'), 'YYYYMMDD HH24:MI');
    
  • 若 sched_ftime_ 为 NULL 时需要最终结果也返回 NULL,增加判空逻辑跳过无效转换:
    res_start_time_ := CASE 
      WHEN sched_ftime_ IS NOT NULL 
      THEN to_date(to_char(account_date_, 'YYYYMMDD ') || sched_ftime_, 'YYYYMMDD HH24:MI')
      ELSE NULL 
    END;
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 10:42:01