varchar2转换为date本来是很容易的事情,但是总是有少量不规范的数据,导致数据迁移失败,那怎么处理呢?
创建一个date类型的临时字段;
将varchar2字段的数据转换到临时字段中,注意,转换出错的数据置为null,稍后单独处理;
将临时字段转为需要的字段。
1. create table test(record_time varchar2);
alter table test add temp_date date;
2. create or replace function t_date( record_time varchar2)
return date
is
l_date date;
begin
l_date := to_date(record_time,'yyyy-mm-dd HH24:mi');
return l_date;
exception when others then
return null ;
end ;
update test set temp_date = t_date(record_time) ;
3. alter table TEST rename column temp_date to record_time;