表report
字段 描述 值
tj_year 年 2011
tj_month 月 1
这2个字段都是varchar2,需要根据这2个字段删除一年前的数据,请oracle sql语句
字段 描述 值
tj_year 年 2011
tj_month 月 1
这2个字段都是varchar2,需要根据这2个字段删除一年前的数据,请oracle sql语句
解决方案 »
- ora-01756 : 引号内的字符串没有正确结束
- 各位大侠,急救,万分感谢,oracle用户权限问题
- 如果只剩下一个数据文件,如何恢复在这个数据文件上面的所有oracle对象?
- oracle10导DMP出错(2270)求解决办法1
- 什么权限的用户可以使用dbms_alert?
- 高手救急,我在ORACLE 的TYPE里做了一个OBJECT,为何一生成就出现错误信息??
- 请教:UNION ALL的用法???
- 9i的Forms和Reports是在那安装的,
- 数据库设计问题,设计表时要指定锁吗?比如informix可以设置锁级别(表锁,行锁,页锁)?
- 数据库表被删怎么恢复?在线等待
- [安装]sql plus developer 登录的时候报的错 ,could not load ..\oci.dll
- A用户下的触发器如何更新B用户下的表?
delete from report where tj_year || lpad(tj_month, 2, '0') < to_char(add_months(sysdate, -12), 'yyyymm');
-- (如果要删除的记录不包括去年的当前月,例如:现在是2011年9月),则操作如下:
delete from report where tj_year||lpad(tj_month,2,'0')< to_char(add_months(sysdate,-12),'yyyymm');-- (如果要删除的记录包括去年的当前月,例如:现在是2011年9月),则操作如下:
delete from report where tj_year||lpad(tj_month,2,'0')<=to_char(add_months(sysdate,-12),'yyyymm');
where to_date((t.tj_year || (case when to_number(t.tj_month)<10 then '0'||to_number(t.tj_month) else t.tj_month end)),'yyyy-mm') <add_months(sysdate,-12)
由于不知道你的 tj_month 字段中的存值情况,是‘01’还是‘1’,所以用to_number判断了一下。算法比较笨拙,抛砖引玉一下。