代码之家  ›  专栏  ›  技术社区  ›  Pierre-olivier Gendraud

有没有一个函数可以得到oracle中的最大整数(resp.number)?

  •  -1
  • Pierre-olivier Gendraud  · 技术社区  · 3 年前

    有没有一个函数可以得到oracle中的最大整数(resp.min)? 我知道我能找到价值( there for instance ),但我宁愿避免写这篇文章。(更少的代码,更少的打字错误…)

    0 回复  |  直到 3 年前
        1
  •  1
  •   MT0    3 年前

    这并不特别有意义,因为它取决于 NUMBER

    例如:

    CREATE TABLE table_name (
      value1 NUMBER,
      value2 NUMBER(*,0),
      value3 NUMBER(38),
      value4 NUMBER(10,0),
      value5 NUMBER(10,5),
      value6 NUMBER(10,-2)
    );
    

    然后您可以插入:

    INSERT INTO table_name (
      value1,
      value2,
      value3,
      value4,
      value5,
      value6
    ) VALUES (
      9.9999999999999999999999999999999999999e125,
      99999999999999999999999999999999999999,
      99999999999999999999999999999999999999,
      9999999999,
      99999.99999,
      999999999900
    );
    

    他们都是 数字 列,但它们具有不同的最大值。


    如果你想在某个地方存储一个特定列(或者最好是一组单位)的最大值,那么写你自己的包:

    CREATE PACKAGE constants IS
      SUBTYPE DECIBEL IS NUMBER(6,4);
      SUBTYPE NEWTON  IS NUMBER(12,2);
    
      MAX_DECIBELS CONSTANT DECIBEL := 99.9999;
      MAX_NEWTONS  CONSTANT NEWTON  := 9999999999.99;
      
      FUNCTION get_max_decibels RETURN DECIBEL;
      FUNCTION get_max_newtons  RETURN NEWTON;
    END;
    /
    
    CREATE PACKAGE BODY constants IS
      FUNCTION get_max_decibels RETURN DECIBEL
      IS
      BEGIN
        RETURN MAX_DECIBELS;
      END;
    
      FUNCTION get_max_newtons  RETURN NEWTON
      IS
      BEGIN
        RETURN MAX_NEWTONS;
      END;
    END;
    /
    

    db<>不停摆弄 here