Riferimento
Errori IBM i
- -007 Carattere non valido nell'istruzione L'istruzione contiene un carattere che SQL non accetta: tipicamente apici tipografici incollati da Word, Teams o da un'email. SQL0007
- -010 Costante stringa non chiusa Manca l'apice di chiusura di una stringa, oppure un apice dentro il testo non è raddoppiato ('dell'anno'). SQL0010
- -104 Token non valido Errore di sintassi: virgola mancante o in più, parentesi non bilanciate, parola chiave nel posto sbagliato. Il messaggio dice il token e un elenco parziale di quelli attesi; l'errore può stare anche prima del token. SQL0104
- -117 Numero di valori sbagliato In una INSERT il numero di valori non coincide con quello delle colonne, spesso perché la lista delle colonne è omessa e la tabella ne ha più di quante si pensi. SQL0117
- -119 Colonna non valida nella HAVING Nella HAVING c'è una colonna o un'espressione che non sta in una funzione di aggregazione e non è nel GROUP BY. SQL0119
- -122 Colonna non raggruppata nella SELECT Nella SELECT c'è una colonna che non è nel GROUP BY e non sta dentro una funzione di aggregazione. SQL0122
- -138 Argomento non valido per SUBSTR SUBSTR (o LEFT, o OVERLAY) con posizione iniziale o lunghezza oltre la lunghezza della stringa, o con un argomento che non è un intero. SQL0138
- -150 Vista, indice o tabella in sola lettura INSERT, UPDATE, DELETE o MERGE su una vista o un logico che si possono solo leggere: DISTINCT, GROUP BY, aggregazioni, più tabelle, UNION, colonne tutte calcolate. SQL0150
- -151 Colonna non aggiornabile Si prova ad aggiornare una colonna di una vista che deriva da un'espressione, da una costante o da un registro speciale. SQL0151
- -158 Numero di colonne non coerente In CREATE VIEW o CREATE TABLE AS la lista dei nomi di colonna ha un numero di elementi diverso dalla SELECT che segue. SQL0158
- -170 Numero di argomenti non valido Una funzione è chiamata con troppi o troppo pochi argomenti. SQL0170
- -171 Argomento della funzione non valido Tipo, lunghezza o valore di un argomento non accettato dalla funzione (un numero dove serve una stringa, una lunghezza negativa). SQL0171
- -180 Sintassi della data, dell'ora o del timestamp non valida Una stringa convertita in data, ora o timestamp non rispetta il formato atteso: per esempio '05/10/2026' quando il job usa *ISO. SQL0180
- -181 Valore di data, ora o timestamp fuori intervallo La stringa ha il formato giusto ma la data non esiste: '2026-02-30', '0000-00-00'. Classico quando si convertono date numeriche con zeri o 99999999. SQL0181
- -183 Risultato di un calcolo su date fuori intervallo Sommare o sottrarre durate porta la data prima di 0001-01-01 o dopo 9999-12-31. SQL0183
- -199 Parola chiave inattesa Una parola chiave nel posto sbagliato, per esempio clausole in ordine errato (ORDER BY prima di WHERE). SQL0199
- -203 Nome ambiguo In una join una colonna con lo stesso nome esiste in più tabelle e non è qualificata. SQL0203
- -204 Oggetto non trovato La tabella o l'oggetto non si trova. Su IBM i la causa più comune è la convenzione dei nomi: con i nomi SQL un nome non qualificato si cerca nello schema predefinito (di solito quello che ha il nome dell'utente), non nella lista librerie. SQL0204
- -205 Colonna non presente nella tabella La colonna, qualificata con il nome o l'alias di una tabella, in quella tabella non c'è. SQL0205
- -206 Colonna o variabile globale non trovata La colonna non c'è in nessuna delle tabelle della FROM: un errore di battitura, o una colonna di un'altra tabella o di un'altra vista. SQL0206
- -208 Colonna dell'ORDER BY non nel risultato Con UNION, EXCEPT o INTERSECT, l'ORDER BY usa una colonna che non è una colonna con nome del risultato. SQL0208
- -302 Errore di conversione su una variabile in ingresso Il valore di una variabile o di un parametro non si può convertire per l'istruzione: troppo lungo, fuori intervallo o non valido. Il messaggio dice il tipo di errore. SQL0302
- -303 Variabile non compatibile o valore troppo lungo Il valore restituito non si può assegnare alla variabile: tipi non compatibili, o variabile troppo corta. SQL0303
- -304 Errore di conversione nell'assegnazione a una variabile Il valore restituito non entra nella variabile: tipico con SUM o COUNT su variabili dimensionate troppo piccole. SQL0304
- -305 Serve una variabile indicatore La query restituisce NULL e la variabile non ha un indicatore. Succede spesso con le outer join, o con MAX e SUM quando nessuna riga soddisfa la condizione. SQL0305
- -312 Variabile non definita o non utilizzabile Il precompilatore non trova la variabile o non la può usare: nome sbagliato, variabile di un'altra procedura, o tipo senza un equivalente SQL. Il messaggio dà un codice motivo. SQL0312
- -313 Numero di variabili non valido In EXECUTE ... USING o OPEN ... USING il numero di variabili non coincide con quello dei parameter marker (?) dell'istruzione preparata. SQL0313
- -401 Operandi del confronto non compatibili Un confronto fra tipi che Db2 for i non sa confrontare. I numeri e i caratteri invece si confrontano: la stringa viene convertita, e se non contiene un numero l'errore è un altro (-420). SQL0401
- -404 Valore troppo lungo per la colonna o la variabile In INSERT, UPDATE, MERGE o SET una stringa supera la lunghezza della colonna o della variabile. Il messaggio dice le due lunghezze. SQL0404
- -406 Errore di conversione nell'assegnazione a una colonna Un valore numerico calcolato o convertito non entra nella colonna di destinazione. Il messaggio dice il tipo di errore (1 è overflow). SQL0406
- -407 NULL in una colonna che non lo ammette INSERT, UPDATE o MERGE mette NULL in una colonna NOT NULL. Spesso la colonna è stata lasciata fuori dalla INSERT e non ha un valore predefinito. SQL0407
- -408 Valore non compatibile con la colonna Il valore assegnato ha un tipo che non si può mettere in quella colonna. Le assegnazioni fra numeri e caratteri invece sono ammesse (e se il testo non è un numero l'errore è -420). SQL0408
- -412 La subquery restituisce più colonne Una subquery usata in un confronto o in IN con una sola espressione restituisce più di una colonna. SQL0412
- -420 Valore non valido nella conversione Una stringa convertita in numero contiene caratteri che non sono un numero: CAST('12A' AS INT), spazi in mezzo, la virgola al posto del punto. SQL0420
- -433 Dati significativi troncati durante CAST Il CAST verso un tipo carattere (o XMLCAST, XMLSERIALIZE) ha una lunghezza troppo corta per contenere il valore. SQL0433
- -443 Errore in un trigger o in una routine esterna Un programma esterno (RPG, CL, Java) usato come trigger, procedura o funzione è andato in errore e lo ha restituito a SQL. SQL0443
- -501 Cursore non aperto FETCH o CLOSE su un cursore non aperto, spesso perché l'OPEN è fallito e l'SQLCODE non è stato controllato. SQL0501
- -502 Cursore già aperto OPEN su un cursore ancora aperto. Tipico quando il programma viene richiamato nello stesso activation group senza aver chiuso il cursore la volta prima. SQL0502
- -504 Cursore non dichiarato Il cursore è usato prima della sua DECLARE nel sorgente. Il precompilatore legge il sorgente in ordine fisico, non nell'ordine di esecuzione. SQL0504
- -508 Cursore non posizionato su una riga bloccata UPDATE o DELETE WHERE CURRENT OF dopo che la FETCH ha restituito +100, o prima di qualsiasi FETCH. SQL0508
- -518 Istruzione preparata non trovata EXECUTE di un'istruzione che non è stata preparata, spesso perché la PREPARE è fallita e l'errore non è stato controllato. SQL0518
- -530 Violazione di chiave esterna INSERT, UPDATE o MERGE con un valore di chiave esterna che non esiste nella tabella padre. SQL0530
- -532 Cancellazione bloccata da un vincolo referenziale DELETE di una riga padre che ha righe figlie, con regola RESTRICT o NO ACTION. SQL0532
- -545 Violazione di un vincolo CHECK La riga inserita o aggiornata non rispetta un vincolo CHECK della tabella. SQL0545
- -551 Non autorizzato all'oggetto L'utente non ha l'autorità necessaria sulla tabella, sulla vista o sulla routine. SQL0551
- -552 Non autorizzato all'operazione L'utente non può fare l'operazione richiesta. Ogni istruzione ha le sue: CREATE TABLE vuole *USE sul comando CRTPF, CREATE VIEW e CREATE INDEX su CRTLF, CREATE SCHEMA su CRTLIB. SQL0552
- -601 Oggetto già esistente CREATE (o RENAME) di una tabella, vista, indice o alias con un nome già usato nello schema. SQL0601
- -603 Indice unico impossibile per chiavi duplicate CREATE UNIQUE INDEX, o un vincolo UNIQUE, su una tabella che contiene già valori duplicati per quella chiave. SQL0603
- -802 Errore di conversione o di mappatura dati Su IBM i la causa più frequente sono i dati decimali non validi in tabelle DDS (campi packed con spazi): è il tipo di errore 6. Poi la divisione per zero (tipo 8) e l'overflow (tipo 1). SQL0802
- -803 Chiave duplicata INSERT o UPDATE che viola una chiave primaria, un vincolo UNIQUE o un indice unico. SQL0803
- -811 La SELECT restituisce più di una riga Una SELECT INTO, o una subquery usata in un confronto, restituisce più righe. SQL0811
- -901 Errore di sistema SQL Un errore interno. Il dettaglio non è nell'SQLCODE ma nei messaggi precedenti del joblog. SQL0901
- -904 Limite di risorse superato Un limite superato: il messaggio dice quale con un tipo. I più frequenti: lo spazio massimo del profilo utente (tipo 1), il limite di risorse di una query (tipo 3), la dimensione massima della tabella (tipo 6). SQL0904
- -910 Modifica in sospeso sull'oggetto L'oggetto ha una modifica non ancora confermata fatta sotto commitment control, che impedisce l'operazione: per esempio un DDL non ancora committato. SQL0910
- -913 Riga o oggetto in uso Un altro job tiene un lock sulla riga o sulla tabella, e il tempo di attesa scade. Se il sistema lo sa, il messaggio nomina il job che tiene il lock. SQL0913
- -952 Elaborazione dell'istruzione interrotta L'istruzione è stata fermata prima della fine. Il codice motivo 1 vuol dire una richiesta di annullamento del client (ODBC, JDBC), spesso per un timeout. SQL0952
- -7007 COMMIT, ROLLBACK o SAVEPOINT non validi Il programma fa COMMIT, ROLLBACK o SAVEPOINT ma il commitment control non è attivo: per esempio è compilato con COMMIT(*NONE). SQL7007
- -7008 Oggetto non valido per l'operazione La causa più comune è una tabella non journalizzata usata sotto commitment control: nel messaggio è il codice motivo 3. Run SQL Scripts di ACS e molti client JDBC partono con il commitment control attivo. SQL7008
Nessun errore corrisponde alla ricerca.