Jaka jest różnica między precyzją a skalą w Oracle? W samouczkach zwykle pozostawiają pustą skalę i ustawiają precyzję na 6 podczas tworzenia klucza podstawowego.
Co oznacza precyzja i skala?
Precyzja 4, skala 2: 99,99
Precyzja 10, skala 0: 9999999999
Precyzja 8, skala 3: 99999,999
Precyzja 5, skala -3: 99999000
Precyzja to liczba cyfr znaczących. Oracle gwarantuje przenośność numerów z dokładnością od 1 do 38.
Skala to liczba cyfr po prawej (dodatnia) lub po lewej (ujemna) przecinka dziesiętnego. Skala może wynosić od -84 do 127.
W Twoim przypadku identyfikator z dokładnością 6 oznacza, że nie przyjmie liczby zawierającej 7 lub więcej cyfr znaczących.
Odniesienie:
http://download.oracle.com/docs/cd/B28359_01/server.111/b28318/datatype.htm#CNCPT1832
Ta strona zawiera również kilka przykładów, które pomogą Ci zrozumieć precyzję i skalę.
źródło
Precyzja to całkowita liczba cyfr, która może wynosić od 1 do 38.
Skala to liczba cyfr po przecinku, może być również ustawiona jako ujemna do zaokrąglania.
Przykład:
NUMBER (7,5): 12.12345
NUMBER (5,0): 12345
Więcej szczegółów na stronie ORACLE:
https://docs.oracle.com/cd/B28359_01/server.111/b28318/datatype.htm#CNCPT1832
źródło
Może bardziej jasne:
Zauważ, że dokładność to całkowita liczba cyfr, łącznie ze skalą
źródło
Skala to liczba cyfr po przecinku (lub dwukropku, w zależności od ustawień regionalnych)
Precyzja to całkowita liczba cyfr znaczących
źródło
precyzja: całkowita liczba cyfr przed lub po punkcie podstawy. Np .: 123,456 tutaj dokładność wynosi 6.
Skala: całkowita liczba cyfr po punkcie podstawy. Np .: 123.456 tutaj Skala to 3
źródło
Jeśli wartość to 9999,988, a dokładność 4, skala 2, to oznacza 9999 (reprezentuje precyzję). 99 (skala to 2, więc .988 jest zaokrąglane do 0,99)
Jeśli wartość wynosi 9999,9887, a dokładność wynosi 4, skala wynosi 2, to oznacza 9999,99
źródło