Oracle报错:ORA-01830:日期格式图片在转换整个输入字符串之前结束

最近在用Oracle写存储过程的过程中,报了如下的错误。在网上查了资料,说是错误应该是在使用to_date()这个函数时发生的。而自己的存储过程确实也使用了这个函数。但是还是不知道具体的原因。在BI同事的帮助下,找到了错误的原因。

排错的sql如下:

declare
  l_data_build_time   varchar2(40);
  l_data_build_time_d date;
begin
  for x in (select distinct data_build_time from bi_ods.dr_crdt_rskdoo_rslt) loop #将需要to_data()的列放入循环中
    l_data_build_time := x.data_build_time;
    select to_date(l_data_build_time, 'yyyy-mm-dd')
      into l_data_build_time_d
      from dual;
  end loop;
exception
  when others then
    dbms_output.put_line(l_data_build_time);
end;

查错思路如下:将to_date()操作的语句放入到for循环中去,如果转换失败,则将异常的列展现出来。有点像python的try...except语句。sql执行结果如下:

发现有一行格式与其它行不一致,真是坑爹。。。。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值