问个比较菜的问题,我在一本书上说oracle中的number类型中number(3,1)可以存储-99.9---99.9之间的数据那我想存-100--100的其中包括-99.9---99.9的数怎么办?难道说要写成number(4,1)么?

解决方案 »

  1.   


    CREATE TABLE T8
    (
        filed NUMBER(4, 1)
    );
    DROP TABLE T8;
    INSERT INTO T8 VALUES(-100);
    经测试(3,1)超精度。
      

  2.   

    1是小数位,你如果那样子的数据,就直接number(3)
      

  3.   

    哥哥,没看懂你的意思啊,你是说number(3,1)已经包括-100和100了么?
      

  4.   

    这样的问题没有什么必要去追究,你如果怕精度不够可以放大一点,存储数据的时候也不会有什么影响,你即使直接写number也行啊。
      

  5.   

    Number(m, n),表示总位数为m位,小数位为n位。
    这个总位数中小数点算1位。
      

  6.   

    直接number(3)不是表示这个字段是个整数字段么?
      

  7.   

    这个不就是只能存整数么?我没理解错吧
    我的问题是想存-100到100之间的数包括小数,number(3)要是能存小数的话我的问题就解决了,但怎么能让他还能保留一个小数位那?
      

  8.   

    number类型一般都会设的比较大,不会像你这样正好都在100之内的!
      

  9.   

    小数点算一位???
    那99.9不是number(4,1)啦!
    我认为最好的方法就是去机子上跑一把。
      

  10.   

    SQL> declare
      2  v_pro number(3,1);
      3  begin
      4  v_pro:=100;
      5  dbms_output.put_line(v_pro);
      6  end;
      7  /
     
    declare
    v_pro number(3,1);
    begin
    v_pro:=100;
    dbms_output.put_line(v_pro);
    end;
     
    ORA-06502: PL/SQL: 数字或值错误 :  数值精度太高
    ORA-06512: 在line 5