Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

Diferença entre o tipo de dados número e inteiro nas visualizações do dicionário oracle


a melhor explicação que encontrei é esta:

Qual é a diferença entre INTEGER e NUMBER? Quando devemos usar NUMBER e quando devemos usar INTEGER? Só queria atualizar meus comentários aqui...

NUMBER sempre armazena como entramos. A escala é de -84 a 127. Mas INTEGER arredonda para um número inteiro. A escala para INTEGER é 0. INTEGER é equivalente a NUMBER(38,0). Isso significa que INTEGER é um número restrito. A casa decimal será arredondada. Mas NUMBER não é restrito.
  • INTEIRO(12,2) => 12
  • INTEIRO(12,5) => 13
  • INTEIRO(12,9) => 13
  • INTEIRO(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 é sempre mais lento que NUMBER. Como integer é um número com restrição adicionada. São necessários ciclos de CPU adicionais para impor a restrição. Eu nunca observei nenhuma diferença, mas pode haver uma diferença quando carregamos vários milhões de registros na coluna INTEGER. Se precisarmos garantir que a entrada seja de números inteiros, INTEGER é a melhor opção. Caso contrário, podemos ficar com o tipo de dados NUMBER.

Aqui está o link