select remove_date,to_char(add_months(to_date(remove_date,'yyyymmdd'),-1),'yyyymm') from SREMOVE;
remove_date的格式是'20120105'
查询可以正常显示,
alter table SREMOVE add BILL varchar2(20);
update SREMOVE set BIL = to_char(add_months(to_date(remove_date,'yyyymmdd'),-1),'yyyymm');
commit;
执行update操作报错 ora-01840 输入值对于日期格式不够长
------解决方案--------------------
检查你的remove_date的格式,最好
select max(len) from (select length(remove_date) len from SREMOVE)
看看最大长度是多少,应该是remove_date里面的内容不仅仅格式是'20120105',可能还有'20120105 11:24'
所以如果你用to_date(remove_date,'yyyymmdd')会报错 ora-01840 输入值对于日期格式不够长
------解决方案--------------------
查询可以正常显示?
如果是pl/SQL ,默认只显示前面几行。。。
确认下 你显示所有的记录是否有问题