2010-06-14 8 views
10

Che tipo in Oracle (10 Express Edition) sarebbe la "stessa" come un int Java?Quale tipo di dati in oracle si assocerebbe a un int Java?

+0

Buona domanda: quando creo una tabella con "INTEGER", sembra convertirla in "NUMBER (22)" e può memorizzare numeri più grandi di MAX_INT. –

+0

Potresti usare un NUMERO. Tuttavia, assicurati di non leggerlo come oggetto: il driver JDBC potrebbe effettivamente produrre un doppio. – Uri

+0

@Uri Non si sono verificati problemi durante l'utilizzo di JPA. –

risposta

17

int di Java ha una gamma di -2.147.483.648 a 2,147,483,647 - così Number (10,0) è il più vicino si sta andando ad ottenere ...

+6

E, se appropriato, è possibile aggiungere un vincolo di controllo alla colonna, 'controllare (nome_colonna tra -2147483648 e 2147483647)' per assicurarsi che i dati memorizzati non rientrino nell'intervallo che l'applicazione può gestire. –

+1

non dovrebbe essere questo NUMERO (9,0)? Con il numero (10,0) si potrebbe avere un valore (ad esempio 9.999.999,999 mila) che superare l'intervallo di un int Java. –

+0

No - allora non sarebbe che copre l'intero campo di del tipo int. –

4

direi number(10,0).

1

prova NUMERO. In Oracle utilizziamo Number for Integer