小弟我编写了一段使用to_date()的语句,但出现了一个怪问题,怎么都解决不了。
语句简化后如下:
Select to_date(k.t_end, 'yyyy-mm-dd')  From temp_ks k 
其中查询结果应该有2000条
但是在PL/SQL中查询时只查到第400条记录后就报
ORA-01843(无有效日期)的错误。
这似乎是格式错误,但我单独提取报错的那些记录来执行日期转换又能成功,
一个例子如下:
Select to_date(k.t_end, 'yyyy-mm-dd')  From temp_ks k  where k.t_end='2007-01-01' 成功这个问题我找了很多地方,但都没法解决。烦死了 TAT,也不知道是不是ORACLE的BUG
希望有知道原因的大侠给我说下,
一旦解决,立即给分

解决方案 »

  1.   

    你的t_end里有无效的日期格式
    Select to_date(k.t_end, 'yyyy-mm-dd') From temp_ks k where k.t_end='2007-01-01' 是将t_end结果为2007-01-01的进行to_date当然没有问题了
      

  2.   

    看看是不是有null值
    Select * From temp_ks k where t_end is null
      

  3.   

    哎,我LZ 看了什么兄弟的建议 我重新查了下 的确找到一个格式有问题~,谢谢
    不过还是有问题 T口T , 因为数据是重EXCEL里导出来的 格式很不规范,用SQL转换了6 7遍才变成现在的样子,所以里面还有什么错误实在是难查 3000多条数据阿...Orz
    我现在就想请教一下,PL/SQL里有什么方法捕获出错的数据????
    这个问题有答案,立即给分。