오라클 NUMBER default - olakeul NUMBER default

delete t1;

insert into t1 (num2_5) values (1.2e-4);

select num2_5 from t1;

    NUM2_5

----------

    .00012

delete t1;

insert into t1 (num2_5) values (1.2e-5);

select num2_5 from t1;

    NUM2_5

----------

    .00001

입력에 대한 정합성 유지를 위해서는 가장 좋은 방법은 precision과 scale을 지정한 고정 소수점 방식을 사용하는 겁니다.

scale과 precision 을 지정한다고 모든 값을 고정길이로 강제로 저장하진 않습니다.

입력값이 precision의 유효범위를 초과하면 에러가 발생합니다.

입력값이 scale의 유효범위를 초과하면 오라클은 반올림을 해버립니다.

 --이렇게 소수점이하에 0 89(127-38)개가있어야 데이터가들어갑니다.

insertinto t1 (num_38_127) values(.12345);

ORA-01438: value larger than specified precision allowed for this column

delete t1;

insertinto t1 (num_38_127) values(.12345e-89);

select num_38_127 from t1;

     NUM_38_127

---------------

1.234500000E-90

--반면에 number(*,127) 정의된 경우는 precision 지정이 안되어 있으므로

delete t1;

insert into t1 (num_star_127) values(.12345);

select num_star_127 from t1;

   NUM_STAR_127

---------------

         .12345

소수점을 생략하는 것도 가능합니다.

지수는 숫자의 뒤에 증가하는 자릿수를 표시할 때 옵션으로 사용됩니다. (예를 들어 1.7777e-20)

소수점이하의 자릿수는 제한이 없기 때문에 scale를 지정할 수 없습니다.

NUMBER는 10진수 precision 을 사용합니다. NUMBER가 지원하는 범위내의 모든 literal은 정확하게 10진수로 표현합니다.

예제를 통해서 number의 저장방식을 알아보겠습니다. 

유효숫자를 넘어선 값은 어떻게 저장되는지 알아보겠습니다.

--일단 overflow발생할 때까지데이터를 넣어보겠습니다.

droptable max_num;

create table max_num (num number);

declare

  l_x number;

begin

  for x in 1..140

  loop

    l_x := x;

    insertinto max_num values (rpad(1, x, 1));

  end loop;

  exception

  when others then

    dbms_output.put_line('STOP: '||l_x);

    dbms_output.put_line(sqlerrm);

end;

/

ORA-01426: numeric overflow

PL/SQL procedure successfully completed.

-----------------------------------------------------

set num 50

col rownum for 999

col cnt_of_num for 999

col bytes for 999

select rownum, num, length(replace(num, 0)) cnt_of_num, vsize(num) bytes from max_num;

ROWNUM                                                NUM CNT_OF_NUM BYTES

------ -------------------------------------------------- ---------- -----

     1                                                  1          1     2

     2                                                 11          2     2

     3                                                111          3     3

     4                                               1111          4     3

     5                                              11111          5     4

     6                                             111111          6     4

     7                                            1111111          7     5

     8                                           11111111          8     5

     9                                          111111111          9     6

    10                                         1111111111         10     6

    11                                        11111111111         11     7

    12                                       111111111111         12     7

    13                                      1111111111111         13     8

    14                                     11111111111111         14     8

    15                                    111111111111111         15     9

    16                                   1111111111111111         16     9

    17                                  11111111111111111         17    10

    18                                 111111111111111111         18    10

    19                                1111111111111111111         19    11

    20                               11111111111111111111         20    11

    21                              111111111111111111111         21    12

    22                             1111111111111111111111         22    12

    23                            11111111111111111111111         23    13

    24                           111111111111111111111111         24    13

    25                          1111111111111111111111111         25    14

    26                         11111111111111111111111111         26    14

    27                        111111111111111111111111111         27    15

    28                       1111111111111111111111111111         28    15

    29                      11111111111111111111111111111         29    16

    30                     111111111111111111111111111111         30    16

    31                    1111111111111111111111111111111         31    17

    32                   11111111111111111111111111111111         32    17

    33                  111111111111111111111111111111111         33    18

    34                 1111111111111111111111111111111111         34    18

    35                11111111111111111111111111111111111         35    19

    36               111111111111111111111111111111111111         36    19

    37              1111111111111111111111111111111111111         37    20

    38             11111111111111111111111111111111111111         38    20

    39            111111111111111111111111111111111111111         39    21

    40           1111111111111111111111111111111111111111         40    21--39자리 or 40자리까지 표현

    41          11111111111111111111111111111111111111100         39    21--사이즈는 21bytes까지

    42         111111111111111111111111111111111111111100         40    21--유효숫자를 넘어선 값은 0으로 저장

    43        1111111111111111111111111111111111111110000         40    21

    44       11111111111111111111111111111111111111110000         40    21

    45      111111111111111111111111111111111111111000000         40    21

    46     1111111111111111111111111111111111111111000000         40    21

    47    11111111111111111111111111111111111111100000000         40    21

    48   111111111111111111111111111111111111111100000000         40    21

    49  1111111111111111111111111111111111111110000000000         40    21

    50 11111111111111111111111111111111111111110000000000         40    21

    51 1.11111111111111111111111111111111111111000000E+50         39    21

    52 1.11111111111111111111111111111111111111100000E+51         40    21

    53 1.11111111111111111111111111111111111111000000E+52         40    21

    54 1.11111111111111111111111111111111111111100000E+53         40    21

    55 1.11111111111111111111111111111111111111000000E+54         40    21

    56 1.11111111111111111111111111111111111111100000E+55         40    21

    57 1.11111111111111111111111111111111111111000000E+56         40    21

    58 1.11111111111111111111111111111111111111100000E+57         40    21

    59 1.11111111111111111111111111111111111111000000E+58         40    21

    60 1.11111111111111111111111111111111111111100000E+59         40    21

    61 1.11111111111111111111111111111111111111000000E+60         39    21

    62 1.11111111111111111111111111111111111111100000E+61         40    21

    63 1.11111111111111111111111111111111111111000000E+62         40    21

    64 1.11111111111111111111111111111111111111100000E+63         40    21

    65 1.11111111111111111111111111111111111111000000E+64         40    21

    66 1.11111111111111111111111111111111111111100000E+65         40    21

    67 1.11111111111111111111111111111111111111000000E+66         40    21

    68 1.11111111111111111111111111111111111111100000E+67         40    21

    69 1.11111111111111111111111111111111111111000000E+68         40    21

    70 1.11111111111111111111111111111111111111100000E+69         40    21

    71 1.11111111111111111111111111111111111111000000E+70         39    21

    72 1.11111111111111111111111111111111111111100000E+71         40    21

    73 1.11111111111111111111111111111111111111000000E+72         40    21

    74 1.11111111111111111111111111111111111111100000E+73         40    21

    75 1.11111111111111111111111111111111111111000000E+74         40    21

    76 1.11111111111111111111111111111111111111100000E+75         40    21

    77 1.11111111111111111111111111111111111111000000E+76         40    21

    78 1.11111111111111111111111111111111111111100000E+77         40    21

    79 1.11111111111111111111111111111111111111000000E+78         40    21

    80 1.11111111111111111111111111111111111111100000E+79         40    21

    81 1.11111111111111111111111111111111111111000000E+80         39    21

    82 1.11111111111111111111111111111111111111100000E+81         40    21

    83 1.11111111111111111111111111111111111111000000E+82         40    21

    84 1.11111111111111111111111111111111111111100000E+83         40    21

    85 1.11111111111111111111111111111111111111000000E+84         40    21

    86 1.11111111111111111111111111111111111111100000E+85         40    21

    87 1.11111111111111111111111111111111111111000000E+86         40    21

    88 1.11111111111111111111111111111111111111100000E+87         40    21

    89 1.11111111111111111111111111111111111111000000E+88         40    21

    90 1.11111111111111111111111111111111111111100000E+89         40    21

    91 1.11111111111111111111111111111111111111000000E+90         39    21

    92 1.11111111111111111111111111111111111111100000E+91         40    21

    93 1.11111111111111111111111111111111111111000000E+92         40    21

    94 1.11111111111111111111111111111111111111100000E+93         40    21

    95 1.11111111111111111111111111111111111111000000E+94         40    21

    96 1.11111111111111111111111111111111111111100000E+95         40    21

    97 1.11111111111111111111111111111111111111000000E+96         40    21

    98 1.11111111111111111111111111111111111111100000E+97         40    21

    99 1.11111111111111111111111111111111111111000000E+98         40    21

   100 1.11111111111111111111111111111111111111100000E+99         40    21

   101 1.1111111111111111111111111111111111111100000E+100         38    21

   102 1.1111111111111111111111111111111111111110000E+101         39    21

   103 1.1111111111111111111111111111111111111100000E+102         39    21

   104 1.1111111111111111111111111111111111111110000E+103         39    21

   105 1.1111111111111111111111111111111111111100000E+104         39    21

   106 1.1111111111111111111111111111111111111110000E+105         39    21

   107 1.1111111111111111111111111111111111111100000E+106         39    21

   108 1.1111111111111111111111111111111111111110000E+107         39    21

   109 1.1111111111111111111111111111111111111100000E+108         39    21

   110 1.1111111111111111111111111111111111111110000E+109         39    21

   111 1.1111111111111111111111111111111111111100000E+110         39    21

   112 1.1111111111111111111111111111111111111110000E+111         40    21

   113 1.1111111111111111111111111111111111111100000E+112         40    21

   114 1.1111111111111111111111111111111111111110000E+113         40    21

   115 1.1111111111111111111111111111111111111100000E+114         40    21

   116 1.1111111111111111111111111111111111111110000E+115         40    21

   117 1.1111111111111111111111111111111111111100000E+116         40    21

   118 1.1111111111111111111111111111111111111110000E+117         40    21

   119 1.1111111111111111111111111111111111111100000E+118         40    21

   120 1.1111111111111111111111111111111111111110000E+119         40    21

   121 1.1111111111111111111111111111111111111100000E+120         39    21

   122 1.1111111111111111111111111111111111111110000E+121         40    21

   123 1.1111111111111111111111111111111111111100000E+122         40    21

   124 1.1111111111111111111111111111111111111110000E+123         40    21

   125 1.1111111111111111111111111111111111111100000E+124         40    21

   126 1.1111111111111111111111111111111111111110000E+125         40    21

126 rows selected.

이제 다시 소수점 이하의 숫자를 넣어보겠습니다. 

이 경우는 overflow가 발생하지 않으니 for 문의 범위를 꼭 지정해주셔야합니다.

droptable max_num;

create table max_num (num number);

declare

  l_x number;

begin

  insert into max_num values ('0.1');

  for x in 1..135

  loop

    l_x := x;

    insert into max_num values ('1.'||rpad(1, x, 1)||'e-'||x);

  end loop;

  exception

  when others then

    dbms_output.put_line('STOP: '||l_x);

    dbms_output.put_line(sqlerrm);

end;

/

set num 50

col rownum for 999

col cnt_of_num for 999

col bytes for 999

select rownum, num, length(replace(num, 0)) cnt_of_num, vsize(num) bytes from max_num;

ROWNUM                                                NUM CNT_OF_NUM BYTES

------ -------------------------------------------------- ---------- -----

     1                                                 .1          2     2

     2                                                .11          3     2

     3                                              .0111          4     3

     4                                            .001111          5     3

     5                                          .00011111          6     4

     6                                        .0000111111          7     4

     7                                      .000001111111          8     5

     8                                    .00000011111111          9     5

     9                                  .0000000111111111         10     6

    10                                .000000001111111111         11     6

    11                              .00000000011111111111         12     7

    12                            .0000000000111111111111         13     7

    13                          .000000000001111111111111         14     8

    14                        .00000000000011111111111111         15     8

    15                      .0000000000000111111111111111         16     9

    16                    .000000000000001111111111111111         17     9

    17                  .00000000000000011111111111111111         18    10

    18                .0000000000000000111111111111111111         19    10

    19              .000000000000000001111111111111111111         20    11

    20            .00000000000000000011111111111111111111         21    11

    21          .0000000000000000000111111111111111111111         25    12

    22        .000000000000000000001111111111111111111111         27    12

    23      .00000000000000000000011111111111111111111111         28    13

    24    .0000000000000000000000111111111111111111111111         29    13

    25  .000000000000000000000001111111111111111111111111         30    14

    26 1.11111111111111111111111110000000000000000000E-25         31    14

    27 1.11111111111111111111111111000000000000000000E-26         32    15

    28 1.11111111111111111111111111100000000000000000E-27         33    15

    29 1.11111111111111111111111111110000000000000000E-28         34    16

    30 1.11111111111111111111111111111000000000000000E-29         35    16

    31 1.11111111111111111111111111111100000000000000E-30         35    17

    32 1.11111111111111111111111111111110000000000000E-31         37    17

    33 1.11111111111111111111111111111111000000000000E-32         38    18

    34 1.11111111111111111111111111111111100000000000E-33         39    18

    35 1.11111111111111111111111111111111110000000000E-34         40    19

    36 1.11111111111111111111111111111111111000000000E-35         40    19

    37 1.11111111111111111111111111111111111100000000E-36         40    20

    38 1.11111111111111111111111111111111111110000000E-37         40    20

    39 1.11111111111111111111111111111111111111000000E-38         40    21--사이즈는 21bytes까지

    40 1.11111111111111111111111111111111111111100000E-39         40    21--40자리까지표현

    41 1.11111111111111111111111111111111111111000000E-40         39    21

    42 1.11111111111111111111111111111111111111100000E-41         40    21

    43 1.11111111111111111111111111111111111111000000E-42         40    21

    44 1.11111111111111111111111111111111111111100000E-43         40    21

    45 1.11111111111111111111111111111111111111000000E-44         40    21

    46 1.11111111111111111111111111111111111111100000E-45         40    21

    47 1.11111111111111111111111111111111111111000000E-46         40    21

    48 1.11111111111111111111111111111111111111100000E-47         40    21

    49 1.11111111111111111111111111111111111111000000E-48         40    21

    50 1.11111111111111111111111111111111111111100000E-49         40    21

    51 1.11111111111111111111111111111111111111000000E-50         39    21

    52 1.11111111111111111111111111111111111111100000E-51         40    21

    53 1.11111111111111111111111111111111111111000000E-52         40    21

    54 1.11111111111111111111111111111111111111100000E-53         40    21

    55 1.11111111111111111111111111111111111111000000E-54         40    21

    56 1.11111111111111111111111111111111111111100000E-55         40    21

    57 1.11111111111111111111111111111111111111000000E-56         40    21

    58 1.11111111111111111111111111111111111111100000E-57         40    21

    59 1.11111111111111111111111111111111111111000000E-58         40    21

    60 1.11111111111111111111111111111111111111100000E-59         40    21

    61 1.11111111111111111111111111111111111111000000E-60         39    21

    62 1.11111111111111111111111111111111111111100000E-61         40    21

    63 1.11111111111111111111111111111111111111000000E-62         40    21

    64 1.11111111111111111111111111111111111111100000E-63         40    21

    65 1.11111111111111111111111111111111111111000000E-64         40    21

    66 1.11111111111111111111111111111111111111100000E-65         40    21

    67 1.11111111111111111111111111111111111111000000E-66         40    21

    68 1.11111111111111111111111111111111111111100000E-67         40    21

    69 1.11111111111111111111111111111111111111000000E-68         40    21

    70 1.11111111111111111111111111111111111111100000E-69         40    21

    71 1.11111111111111111111111111111111111111000000E-70         39    21

    72 1.11111111111111111111111111111111111111100000E-71         40    21

    73 1.11111111111111111111111111111111111111000000E-72         40    21

    74 1.11111111111111111111111111111111111111100000E-73         40    21

    75 1.11111111111111111111111111111111111111000000E-74         40    21

    76 1.11111111111111111111111111111111111111100000E-75         40    21

    77 1.11111111111111111111111111111111111111000000E-76         40    21

    78 1.11111111111111111111111111111111111111100000E-77         40    21

    79 1.11111111111111111111111111111111111111000000E-78         40    21

    80 1.11111111111111111111111111111111111111100000E-79         40    21

    81 1.11111111111111111111111111111111111111000000E-80         39    21

    82 1.11111111111111111111111111111111111111100000E-81         40    21

    83 1.11111111111111111111111111111111111111000000E-82         40    21

    84 1.11111111111111111111111111111111111111100000E-83         40    21

    85 1.11111111111111111111111111111111111111000000E-84         40    21

    86 1.11111111111111111111111111111111111111100000E-85         40    21

    87 1.11111111111111111111111111111111111111000000E-86         40    21

    88 1.11111111111111111111111111111111111111100000E-87         40    21

    89 1.11111111111111111111111111111111111111000000E-88         40    21

    90 1.11111111111111111111111111111111111111100000E-89         40    21

    91 1.11111111111111111111111111111111111111000000E-90         39    21

    92 1.11111111111111111111111111111111111111100000E-91         40    21

    93 1.11111111111111111111111111111111111111000000E-92         40    21

    94 1.11111111111111111111111111111111111111100000E-93         40    21

    95 1.11111111111111111111111111111111111111000000E-94         40    21

    96 1.11111111111111111111111111111111111111100000E-95         40    21

    97 1.11111111111111111111111111111111111111000000E-96         40    21

    98 1.11111111111111111111111111111111111111100000E-97         40    21

    99 1.11111111111111111111111111111111111111000000E-98         40    21

   100 1.11111111111111111111111111111111111111100000E-99         40    21

   101 1.1111111111111111111111111111111111111100000E-100         38    21

   102 1.1111111111111111111111111111111111111110000E-101         39    21

   103 1.1111111111111111111111111111111111111100000E-102         39    21

   104 1.1111111111111111111111111111111111111110000E-103         39    21

   105 1.1111111111111111111111111111111111111100000E-104         39    21

   106 1.1111111111111111111111111111111111111110000E-105         39    21

   107 1.1111111111111111111111111111111111111100000E-106         39    21

   108 1.1111111111111111111111111111111111111110000E-107         39    21

   109 1.1111111111111111111111111111111111111100000E-108         39    21

   110 1.1111111111111111111111111111111111111110000E-109         39    21

   111 1.1111111111111111111111111111111111111100000E-110         39    21

   112 1.1111111111111111111111111111111111111110000E-111         40    21

   113 1.1111111111111111111111111111111111111100000E-112         40    21

   114 1.1111111111111111111111111111111111111110000E-113         40    21

   115 1.1111111111111111111111111111111111111100000E-114         40    21

   116 1.1111111111111111111111111111111111111110000E-115         40    21

   117 1.1111111111111111111111111111111111111100000E-116         40    21

   118 1.1111111111111111111111111111111111111110000E-117         40    21

   119 1.1111111111111111111111111111111111111100000E-118         40    21

   120 1.1111111111111111111111111111111111111110000E-119         40    21

   121 1.1111111111111111111111111111111111111100000E-120         39    21

   122 1.1111111111111111111111111111111111111110000E-121         40    21

   123 1.1111111111111111111111111111111111111100000E-122         40    21

   124 1.1111111111111111111111111111111111111110000E-123         40    21

   125 1.1111111111111111111111111111111111111100000E-124         40    21

   126 1.1111111111111111111111111111111111111110000E-125         40    21

   127 1.1111111111111111111111111111111111111100000E-126         40    21

   128 1.1111111111111111111111111111111111111110000E-127         40    21

   129 1.1111111111111111111111111111111111111100000E-128         40    21

   130 1.1111111111111111111111111111111111111110000E-129         40    21

   131 1.1111111111111111111111111111111111111100000E-130         39    21--소수점 130자리까지 표현

   132                                                  0                1-- 뒤는 에러없이 0 저장됨

   133                                                  0                1

   134                                                  0                1

   135                                                  0                1

   136                                                  0                1

136 rows selected.

정수부와소수부를 각각증가시키면서 넣어보겠습니다.

소수점의위치가 떠다니는(floating-point) 것을 있습니다.

droptable max_num;

create table max_num (num number);

declare

  l_x number;

begin

  for x in 1..135

  loop

    l_x := x;

    insertinto max_num values (rpad(1, x, 1)||'.'||rpad(1, x, 1));

  end loop;

  exception

  when others then

    dbms_output.put_line('STOP: '||l_x);

    dbms_output.put_line(sqlerrm);

end;

/

ORA-01426: numeric overflow

set num 50

col rownum for 999

col cnt_of_num for 999

col bytes for 999

select rownum, num, length(replace(num, 0)) cnt_of_num, vsize(num) bytes from max_num;

ROWNUM                                                NUM CNT_OF_NUM BYTES

------ -------------------------------------------------- ---------- -----

     1                                                1.1          3     3

     2                                              11.11          5     3

     3                                            111.111          7     5

     4                                          1111.1111          9     5

     5                                        11111.11111         11     7

     6                                      111111.111111         13     7

     7                                    1111111.1111111         15     9

     8                                  11111111.11111111         17     9

     9                                111111111.111111111         19    11

    10                              1111111111.1111111111         21    11

    11                            11111111111.11111111111         23    13

    12                          111111111111.111111111111         25    13

    13                        1111111111111.1111111111111         27    15

    14                      11111111111111.11111111111111         29    15

    15                    111111111111111.111111111111111         31    17

    16                  1111111111111111.1111111111111111         33    17

    17                11111111111111111.11111111111111111         35    19

    18              111111111111111111.111111111111111111         37    19

    19            1111111111111111111.1111111111111111111         39    21

    20          11111111111111111111.11111111111111111111         40    21--정수부20, 소수부20

    21           111111111111111111111.111111111111111111         40    21--정수부21, 소수부19

    22          1111111111111111111111.111111111111111111         40    21--정수부22, 소수부18

    23           11111111111111111111111.1111111111111111         40    21--정수부는 하나씩 늘고

    24          111111111111111111111111.1111111111111111         40    21--소수부는 하나씩 줄어듭니다

    25           1111111111111111111111111.11111111111111         40    21

    26          11111111111111111111111111.11111111111111         40    21

    27           111111111111111111111111111.111111111111         40    21

    28          1111111111111111111111111111.111111111111         40    21

    29           11111111111111111111111111111.1111111111         40    21

    30          111111111111111111111111111111.1111111111         40    21

    31           1111111111111111111111111111111.11111111         40    21

    32          11111111111111111111111111111111.11111111         40    21

    33           111111111111111111111111111111111.111111         40    21

    34          1111111111111111111111111111111111.111111         40    21

    35           11111111111111111111111111111111111.1111         40    21

    36          111111111111111111111111111111111111.1111         40    21

    37           1111111111111111111111111111111111111.11         40    21

    38          11111111111111111111111111111111111111.11         40    21

    39            111111111111111111111111111111111111111         39    21--정수부39, 소수부0

    40           1111111111111111111111111111111111111111         40    21--정수부40, 소수분0

    41          11111111111111111111111111111111111111100         39    21--정수부의 반올림이발생

    42         111111111111111111111111111111111111111100         40    21

    43        1111111111111111111111111111111111111110000         40    21

    44       11111111111111111111111111111111111111110000         40    21

    45      111111111111111111111111111111111111111000000         40    21

    46     1111111111111111111111111111111111111111000000         40    21

    47    11111111111111111111111111111111111111100000000         40    21

    48   111111111111111111111111111111111111111100000000         40    21

    49  1111111111111111111111111111111111111110000000000         40    21

    50 11111111111111111111111111111111111111110000000000         40    21

    51 1.11111111111111111111111111111111111111000000E+50         39    21

    52 1.11111111111111111111111111111111111111100000E+51         40    21

    53 1.11111111111111111111111111111111111111000000E+52         40    21

    54 1.11111111111111111111111111111111111111100000E+53         40    21

    55 1.11111111111111111111111111111111111111000000E+54         40    21

    56 1.11111111111111111111111111111111111111100000E+55         40    21

    57 1.11111111111111111111111111111111111111000000E+56         40    21

    58 1.11111111111111111111111111111111111111100000E+57         40    21

    59 1.11111111111111111111111111111111111111000000E+58         40    21

    60 1.11111111111111111111111111111111111111100000E+59         40    21

    61 1.11111111111111111111111111111111111111000000E+60         39    21

    62 1.11111111111111111111111111111111111111100000E+61         40    21

    63 1.11111111111111111111111111111111111111000000E+62         40    21

    64 1.11111111111111111111111111111111111111100000E+63         40    21

    65 1.11111111111111111111111111111111111111000000E+64         40    21

    66 1.11111111111111111111111111111111111111100000E+65         40    21

    67 1.11111111111111111111111111111111111111000000E+66         40    21

    68 1.11111111111111111111111111111111111111100000E+67         40    21

    69 1.11111111111111111111111111111111111111000000E+68         40    21

    70 1.11111111111111111111111111111111111111100000E+69         40    21

    71 1.11111111111111111111111111111111111111000000E+70         39    21

    72 1.11111111111111111111111111111111111111100000E+71         40    21

    73 1.11111111111111111111111111111111111111000000E+72         40    21

    74 1.11111111111111111111111111111111111111100000E+73         40    21

    75 1.11111111111111111111111111111111111111000000E+74         40    21

    76 1.11111111111111111111111111111111111111100000E+75         40    21

    77 1.11111111111111111111111111111111111111000000E+76         40    21

    78 1.11111111111111111111111111111111111111100000E+77         40    21

    79 1.11111111111111111111111111111111111111000000E+78         40    21

    80 1.11111111111111111111111111111111111111100000E+79         40    21

    81 1.11111111111111111111111111111111111111000000E+80         39    21

    82 1.11111111111111111111111111111111111111100000E+81         40    21

    83 1.11111111111111111111111111111111111111000000E+82         40    21

    84 1.11111111111111111111111111111111111111100000E+83         40    21

    85 1.11111111111111111111111111111111111111000000E+84         40    21

    86 1.11111111111111111111111111111111111111100000E+85         40    21

    87 1.11111111111111111111111111111111111111000000E+86         40    21

    88 1.11111111111111111111111111111111111111100000E+87         40    21

    89 1.11111111111111111111111111111111111111000000E+88         40    21

    90 1.11111111111111111111111111111111111111100000E+89         40    21

    91 1.11111111111111111111111111111111111111000000E+90         39    21

    92 1.11111111111111111111111111111111111111100000E+91         40    21

    93 1.11111111111111111111111111111111111111000000E+92         40    21

    94 1.11111111111111111111111111111111111111100000E+93         40    21

    95 1.11111111111111111111111111111111111111000000E+94         40    21

    96 1.11111111111111111111111111111111111111100000E+95         40    21

    97 1.11111111111111111111111111111111111111000000E+96         40    21

    98 1.11111111111111111111111111111111111111100000E+97         40    21

    99 1.11111111111111111111111111111111111111000000E+98         40    21

   100 1.11111111111111111111111111111111111111100000E+99         40    21

   101 1.1111111111111111111111111111111111111100000E+100         38    21

   102 1.1111111111111111111111111111111111111110000E+101         39    21

   103 1.1111111111111111111111111111111111111100000E+102         39    21

   104 1.1111111111111111111111111111111111111110000E+103         39    21

   105 1.1111111111111111111111111111111111111100000E+104         39    21

   106 1.1111111111111111111111111111111111111110000E+105         39    21

   107 1.1111111111111111111111111111111111111100000E+106         39    21

   108 1.1111111111111111111111111111111111111110000E+107         39    21

   109 1.1111111111111111111111111111111111111100000E+108         39    21

   110 1.1111111111111111111111111111111111111110000E+109         39    21

   111 1.1111111111111111111111111111111111111100000E+110         39    21

   112 1.1111111111111111111111111111111111111110000E+111         40    21

   113 1.1111111111111111111111111111111111111100000E+112         40    21

   114 1.1111111111111111111111111111111111111110000E+113         40    21

   115 1.1111111111111111111111111111111111111100000E+114         40    21

   116 1.1111111111111111111111111111111111111110000E+115         40    21

   117 1.1111111111111111111111111111111111111100000E+116         40    21

   118 1.1111111111111111111111111111111111111110000E+117         40    21

   119 1.1111111111111111111111111111111111111100000E+118         40    21

   120 1.1111111111111111111111111111111111111110000E+119         40    21

   121 1.1111111111111111111111111111111111111100000E+120         39    21

   122 1.1111111111111111111111111111111111111110000E+121         40    21

   123 1.1111111111111111111111111111111111111100000E+122         40    21

   124 1.1111111111111111111111111111111111111110000E+123         40    21

   125 1.1111111111111111111111111111111111111100000E+124         40    21

   126 1.1111111111111111111111111111111111111110000E+125         40    21

126 rows selected.

정확한 값이 필요할 때는 고정 소수점 방식으로 사용하고, 넓은 범위 값의 저장이 필요할 때는 부동 소수점 방식을 사용하면 됩니다.

NUMBER로 정의하는 게 경험상 가장 무난하다고 생각됩니다.

이유는 바로 이 에러 때문에 서비스 장애가 발생할 수 있기 때문입니다.