oracle的 double字段类型,到底能存储多少个位啊?比如说,double是8个byte吧。那么存储的时候,整数部分以及小数部分最多可以存储多少个啊(123456789.113456789,那个整数部分是9个,小数部分也是9个)。

解决方案 »

  1.   

    ORACLE里用NUMBER代替了DOUBLE,
    NUMBER(m,n)就可以实现DOUBLE精度 
      

  2.   

    oracle将double类型 直接映射成number类型。所以两者精度一样。
      

  3.   

    --在sql语句中用double类型不合法啊
    SQL>  create table test(id double);
     create table test(id double)
                                *
    第 1 行出现错误:
    ORA-00905: 缺失关键字
    SQL> create table test(id number(10,3));表已创建。--在plsql过程里double也不合法
    SQL> declare 
      2  id double;
      3  begin
      4  id:=2345645.43534;
      5  dbms_output.put_line(id);
      6  end;
      7  /
    id double;
             *
    第 2 行出现错误:
    ORA-06550: 第 2 行, 第 10 列:
    PLS-00103: 出现符号 ";"在需要下列之一时:
    precision
    符号 "precision" 被替换为 ";" 后继续。
    SQL> ed
    已写入 file afiedt.buf  1  declare
      2  id number(20,8);
      3  begin
      4  id:=2345645.43534;
      5  dbms_output.put_line(id);
      6* end;
    SQL> /PL/SQL 过程已成功完成。SQL> set serveroutput on;
    SQL> /
    2345645.43534PL/SQL 过程已成功完成。
      

  4.   

    现在都用Number替换double,double用的不多了
      

  5.   


    那问下number类型,存储的时候,整数部分以及小数部分最多可以存储多少个啊(123456789.113456789,那个整数部分是9个,小数部分也是9个)
      

  6.   

    number(18,9)--这个表示总长度为18为 其中小数点为9位
      

  7.   

    number(precision, scale)
    前者,有效数字位数,后者小数部分位数
      

  8.   

    oracle 有 double类型 一个数字占3个字节 123456789.113456789 57个字节
    只不过很少用 最好还是number(18,9)
      

  9.   

    楼上的兄弟们,你们还是没有告诉我number(m,d)里面 这个m最大值是多少,d的最大值是多少啊?
    难道是我的表述有问题吗?我只想知道number这个字段8byte的存储最大值到底是多少?
      

  10.   

    number(p,s) p max 38  s max 127
      

  11.   

    Number类型是oralce的数值类型,存储的数值的精度可以达到38位。Number是一种变长类型,长度为0-22字节。取值范围为:10e-130 – 10e 126(不包括) 
    Number(p,s) 
    P和s都是可选的。 
    P指精度(precision),即总位数。默认情况下精度为38。精度的取值范围为1~38. 
    S指小数位(scale).小数点右边的位数。小数点位数的合法值为-48~127。小数位的默认值由精度来决定。如果没有指定精度,小数位默认为最大的取值区间.如果指定了精度,没有指定小数位。小数位默认为0(即没有小数位). 
    精度和小数位不会影响数据如何存储,只会影响允许哪些数值及数值如何舍入。