#测试表的内容结构:如下所示:
其中DATEHH字段:代表时间,字段在表中是varchar2格式
现有如下需求:字段类型,从varchar2改变为number,
字段中 ‘。’去除,
2013103少一个0,需要添加,月份可能会少0,
42开头的历史数据不动
SQL> select * from c;
ID NAME DATEHH
---------- ---------- ----------
1 yang 2016.0323
2 cheng 2013.3213
23 aefe 2013.1103
4 qewrqwer 2013.103
5 sasrqwooo 2013.1201
6 swwwww 2013.201
7 qqw 4289
8 eew e 4223
8 rows selected.
#函数replace替换. => null
SQL> update c set datehh=replace(datehh,'.',null);
#函数截取+连接符,where条件筛选需要修改的问题value
SQL> update c set datehh=(substr(datehh,1,4))||'0'||(substr(datehh,5)) where length(datehh)<8 and datehh not like '42%';
#为表增加一个新的字段
SQL> alter table c add new_a number(10);
#更新字段
SQL> update c set new_a=datehh;
SQL> commit;
#删除字段
SQL> alter table c drop column datehh;
#改名
SQL> alter table c rename column new_a to datehh;