不需要这么麻烦吧?
1、设置一个值来表示比例(两位小数、不大于1.00):直接用number(3,2)就可以,然后加上约束<=1 and >=0
2、trunc(mydate)就能获得不带时间的日期值,trunc(mydate, 'MON')取整月的日期

解决方案 »

  1.   

    1. 两位小数 number(2,2)
    2. 日期型,是否有日时分秒并不重要,你只要通过to_char(date_field,'yyyy-mm')就只取出了
       年月,或者你在插入的时候,将其指定为当月第一天,时间为00:00:00.
      

  2.   

    create table table_name(
      field_name  number(3,2)
    );alter table table_name 
      add constraint check_name1  CHECK(field_name <=1);
    alter table table_name 
      add constraint check_name2  CHECK(field_name >=0);
      

  3.   

    CREATE TABLE DDD(a NUMBER, b VARCHAR2(6), constraint ddd_check CHECK(a between 0 and 1)); insert into ddd values(1,to_char(sysdate,'yyyymm');