本帖最后由 libertyang 于 2010-05-04 14:28:45 编辑

解决方案 »

  1.   

    最好不要这样写partition P(20100504)你直接写日期就好,比如你以dt字段来分区select * from t where dt >= date '2010-05-01' and dt <= '2010-05-31';ORACLE分自动从相对应的分区中取数据
      

  2.   

    首先,按分区查询的写法是
    select * from <分区表名>  partition (<分区名>)
    只要利用分区键查询,oracle会自动进行分区排除
      

  3.   

    支持,
    也可这么写:
    select * from t where dt between '2010-05-01' and '2010-05-31';
    同时可知道下between的用法
      

  4.   

    查询某个月的你直接按时间条件,oracle会到那一个月内的所有分区中去找
    按天分区太恐怖了,一年就是365个分区啊