有张表A,某个字段为varchar型。他的数据有比如1999-10-22,1999/11/22,1999,1999.12.22,1999.12等。我要把这些数据导到新表,但那字段变为date型。有谁能转换下格式然后插入新表谢谢!!!!
解决方案 »
- 请大神们予以指导下这个导入导出的sh 如何优化 速度更快
- Oracle处理数据时遇到ORA-04030;感谢各位同仁进来帮忙解答,急急急!!!
- 如何用shell脚本批量删除oracle数据库中的表
- 存储过程编译问题,大侠们帮忙呀!!!
- java开发存储过程,如何让结果返回一个或多个记录集,请大家给点建议
- 急急急,查詢結果格式顯示問題 在線等,請幫忙看看 謝謝
- 关于oracle的配置问题
- 请问 sql语句里加减秒用什么函数
- 在中文REDHAT 7.3下面装中文ORACLE9为什么中文显示不出来,全部成了框?
- 小白请教Oracle 新增数据存放位置如何改变
- oracle插入大量图片的问题
- Oracle查询问题
as
v_year varchar2(4);
v_month varchar2(2);
v_day varchar2(2);
v_dot1 number;
v_dot2 number;
v varchar(2);
l number;
begin
l:=length(f_in);
for i in 1..(case when l>4 then 4 else l end) loop
v_dot1:=i;
v:=substr(f_in,i,1);
if v not between '0' and '9' then
exit;
else v_year:=v_year||v;
end if;
end loop;
if v_dot1=l
then return v_year||'-1-1';
end if;
for i in v_dot1+1..l loop
v:=substr(f_in,i,1);
v_dot2:=i;
if v not between '0' and '9' then
if v_month is null then goto block1;
else exit;
end if;
elsif v >'1' or length(v_month)=2 then v_month:=v_month||v; exit;
else v_month:=v_month||v;
end if;
<<block1>>
null;
end loop;
if v_dot2=l or v_month is null
then return v_year||'-'||nvl(v_month,'1')||'-1';
end if;for i in v_dot2+1..l loop
v:=substr(f_in,i,1);
if v not between '0' and '9' then
if v_day is null then goto block2;
else exit;
end if;
elsif v >'3' then v_day:=v_day||v; exit;
else v_day:=v_day||v;
end if;
<<block2>>
null;
end loop;
return v_year||'-'||v_month||'-'||nvl(v_day,'1');
end date_convert;