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 输入值对于日期格式不够长

解决方案 »

  1.   

    检查你的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 输入值对于日期格式不够长
      

  2.   

    查询可以正常显示?如果是pl/SQL ,默认只显示前面几行确认下 你显示所有的记录是否有问题