在oracle中,可能需要对时间格式的字符串进行排序。 由于字符串的时间不规范化,出现脏数据(无法转换为date的数据)并出现错误。 错误应显示如下:
因此,有必要排除污染的数据,或者查找并删除。
因此,需要编写一个函数来查找不能转换位数日期的字符串。 思路是将字符串转换为日期,如果成功则返回“y”,如果报告错误则返回“n”,函数如下。
createorreplacefunctionerror _ date (I _ date varchar2) RETURN VARCHAR2IS V_DATE DATE; beginv _ date :=to _ date (I _ date,' yyyy-mm-dd hh24:mi:ss ' ); 返回y '; exceptionwhenothersthenreturn ' n '; END ERROR_DATE; 您可以基于以下sql查看无法转换为日期的数据:
slectt.'/BIC/g0ht jssj ' from '/BIC/azcsyht 1300 ' twhereerror _ date (/BIC/g0ht jssj ' )='N '