Oracle
 sql >> Database >  >> RDS >> Oracle

Differenza tra tipo di dati numero e intero nelle viste del dizionario Oracle

la migliore spiegazione che ho trovato è questa:

Qual è la differenza tra INTEGER e NUMBER? Quando dovremmo usare NUMBER e quando dovremmo usare INTEGER? Volevo solo aggiornare i miei commenti qui...

NUMBER memorizza sempre come abbiamo inserito. La scala va da -84 a 127. Ma INTEGER arrotonda al numero intero. La scala per INTEGER è 0. INTEGER è equivalente a NUMBER(38,0). Significa che INTEGER è un numero vincolato. La cifra decimale verrà arrotondata. Ma NUMBER non è vincolato.

  • INTERO(12.2) => 12
  • INTERO(12.5) => 13
  • INTERO(12.9) => 13
  • INTERO(12.4) => 12
  • NUMERO(12.2) => 12.2
  • NUMERO(12.5) => 12.5
  • NUMERO(12.9) => 12.9
  • NUMERO(12.4) => 12.4

INTEGER è sempre più lento di NUMBER. Poiché intero è un numero con vincolo aggiunto. Occorrono cicli CPU aggiuntivi per applicare il vincolo. Non ho mai notato alcuna differenza, ma potrebbe esserci una differenza quando carichiamo diversi milioni di record nella colonna INTEGER. Se dobbiamo assicurarci che l'input sia numeri interi, INTEGER è l'opzione migliore per andare. In caso contrario, possiamo utilizzare il tipo di dati NUMBER.

Ecco il link