Non ho molta familiarità con iseries/DB2. Tuttavia, lavoro su un sito Web che lo utilizza come database principale.Perché ottengo un'eccezione "[SQL0802] Conversione dei dati dell'errore di mappatura dei dati"?
Una nuova colonna è stata recentemente aggiunta a una tabella esistente. Quando ho vista tramite AS400, vedo il seguente tipo di dati:
Type: S
Length: 9
Dec: 2
Questo mi dice che è un campo numerico a 6 cifre prima della virgola e 2 cifre dopo la virgola.
Quando interrogo i dati con un semplice SELECT (SELECT MYCOL FROM MYTABLE
), ottengo indietro tutti i record senza problemi. Tuttavia, quando provo con un DISTINCT
, GROUP BY
o ORDER BY
su quella stessa colonna ottengo la seguente eccezione:
[SQL0802] Data conversion of data mapping error
ho dedotto che almeno un record ha dati non validi - quello che i miei chiamate DBA "spazi vuoti" o "4 O". Come è possibile questo però? Il database non dovrebbe generare un'eccezione quando si tenta di aggiungere dati non validi a quella colonna?
C'è un modo per aggirare questo problema, come filtrare quei record non validi nella mia query?
Una colonna numerica zonata (9,2) avrebbe 7 cifre a sinistra del punto decimale (ad esempio 9 meno 2) – WarrenT
Qual è il codice del tipo di errore visualizzato nel testo di secondo livello del messaggio SQL0802? – WarrenT
@WarrenT "SQLSTATE 22023" –