sql >> Base de Datos >  >> RDS >> Oracle

Diferencia entre el tipo de datos numérico y entero en las vistas del diccionario de Oracle

la mejor explicación que he encontrado es esta:

¿Cuál es la diferencia entre INTEGER y NUMBER? ¿Cuándo deberíamos usar NÚMERO y cuándo deberíamos usar ENTERO? Solo quería actualizar mis comentarios aquí...

NÚMERO siempre se almacena como ingresamos. La escala es de -84 a 127. Pero INTEGER se redondea a números enteros. La escala para INTEGER es 0. INTEGER es equivalente a NUMBER(38,0). Significa que INTEGER es un número restringido. El lugar decimal será redondeado. Pero NUMBER no está restringido.

  • ENTERO(12.2) => 12
  • ENTERO(12.5) => 13
  • ENTERO(12.9) => 13
  • ENTERO(12.4) => 12
  • NÚMERO(12.2) => 12.2
  • NÚMERO(12.5) => 12.5
  • NÚMERO(12.9) => 12.9
  • NÚMERO(12.4) => 12.4

INTEGER siempre es más lento que NUMBER. Dado que el número entero es un número con restricción adicional. Se necesitan ciclos de CPU adicionales para hacer cumplir la restricción. Nunca observé ninguna diferencia, pero podría haber una diferencia cuando cargamos varios millones de registros en la columna INTEGER. Si necesitamos asegurarnos de que la entrada sea un número entero, INTEGER es la mejor opción. De lo contrario, podemos quedarnos con el tipo de datos NUMBER.

Aquí está el enlace