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

Precisione BigDecimal non persistente con le annotazioni JPA

Ho trovato la risposta. Huzzah!

Ho tentato di eseguire la seguente query tramite l'interfaccia Oracle Apex:

alter table NODE modify (WEIGHTEDSCORE NUMBER(12, 9));

Ho ricevuto un errore in cui si afferma che una colonna contenente dati non può essere modificata per avere una precisione inferiore o una scala inferiore. Questo era il mio problema!

Poiché stavo tentando di modificare la tabella con i dati esistenti, dovevo eliminare la tabella e reinizializzarla oppure modificare la colonna solo per avere maggiore precisione e scalabilità.

Ho tentato con successo la seguente query:

alter table NODE modify (WEIGHTEDSCORE NUMBER(26, 9));

Il ragionamento è che voglio aggiungere 7 posizioni di precisione a destra del decimale, quindi aggiungo 7 alla precisione complessiva per compensare l'aumento della scala. In questo modo, la colonna può mantenere tutta la precisione esistente a sinistra del decimale aggiungendo la precisione sul lato destro.