Provider di dati per gli errori comuni di DB2
I provider di dati per DB2 utilizzano la stored procedure IBM SQLCAMESSAGE con cui restituire messaggi di errore dettagliati. Per usare questa funzionalità, è necessario configurare l'origine dati per l'uso di un valore EBCDIC per Host CCSID.
Nella tabella seguente vengono descritti i possibili errori del server DB2 e le azioni che è necessario eseguire per correggerli.
SQLSTATE | SQLCODE | Message | Descrizione |
---|---|---|---|
42601 | -104 | Simbolo non valido. Token non valido/Token imprevisto. È stato trovato un token di token <> imprevisto dopo <il testo>. I token previsti possono includere: <token-list>. |
Motivo: il server non può eseguire un'istruzione SQL che contiene simboli o token non validi, non validi o imprevisti. Azione: verificare la sintassi SQL usando il riferimento SQL IBM DB2 per la piattaforma e la versione IBM DB2 specifiche. Controllare se l'applicazione consumer di dati usa identificatori di oggetto delimitati non supportati (ad esempio parentesi quadre ([<object-name>]) anziché usare delimitatori supportati (virgolette doppie). |
42602 | -113 | CARATTERE NON VALIDO TROVATO IN: <stringa>, REASON CODE <reason-code>. È stato rilevato un carattere non valido in un nome. <l'identificatore> contiene un carattere non consentito o non contiene caratteri. |
Motivo: il server non può elaborare un'istruzione SQL SET CURRENT SQLID quando il client si connette al server DB2. Azione: verificare le informazioni di connessione per verificare che il valore qualificatore predefinito corrisponda all'insieme DB2 in cui è catalogato l'oggetto. Per altre informazioni, vedere Qualificatore predefinito. |
42802 | -117 | IL NUMERO DI VALORI ASSEGNATI NON CORRISPONDE AL NUMERO DI COLONNE SPECIFICATE O IMPLICITE. L'istruzione contiene un numero di valori errato. Il numero di valori assegnati non corrisponde al numero di colonne o variabili specificate o implicite. |
Motivo: il server non può eseguire un'istruzione SQL INSERT quando il numero di valori specificati non corrisponde al numero di colonne nelle tabelle. Azione: verificare che il numero di colonne corrisponda agli oggetti nell'istruzione SQL eseguendo una query sul catalogo di sistema, ad esempio SYSIBM. SYSCOLUMNS) o esecuzione di una query dello schema client (ad esempio, OLE DB IDBSchemaRowsets::GetSchemas(DBSCHEMA_COLUMNS) o ADO.NET MsDb2Connection.GetSchema(Columns). |
22007 | -181 | LA RAPPRESENTAZIONE STRINGA DI UN VALORE DATETIME NON È UN VALORE DATETIME VALIDO. Valore nella stringa data, ora o timestamp non valido. La rappresentazione stringa di un valore datetime non è compresa nell'intervallo. |
Motivo: il server non può eseguire l'istruzione SQL in cui un valore DATETIME non è formattato correttamente o non è compreso nell'intervallo. Azione: verificare che i valori DATETIME siano compresi nell'intervallo supportato per l'anno 0001-9999, mese di 1-12, giorno di 28/29/30/31 (a seconda del mese e dell'anno bisestile), ora di 0-24 (12 per USA), minuti di 0-59, secondi di 0-59 e microsecondi di 0-999999. Controllare le informazioni di connessione per assicurarsi che l'opzione DateTime As Date sia impostata su True per indicare al client di eliminare la parte temporale dei valori dei dati DateTime di Windows mappati ai valori dei dati timestamp DB2, consentendo al database DB2 di leggere questi valori come valori di dati DB2 Date. Per altre informazioni, vedere DateTime As Date. |
42704 | -204 | <schema>.<l'oggetto> è un nome non identificato. È stato rilevato un nome di oggetto o di vincolo non definito. <name è un nome> non definito. |
Motivo: il server non può eseguire un'istruzione SQL che fa riferimento a uno schema> non valido<.<nome dell'oggetto>. Azione: verificare il nome dell'oggetto specificato nell'istruzione SQL. Verificare le informazioni di connessione per assicurarsi che il valore di Qualificatore predefinito corrisponda alla raccolta DB2 in cui è catalogato l'oggetto. Per altre informazioni, vedere Qualificatore predefinito. |
42703 | -206 | <NOME> NON VALIDO NEL CONTESTO IN CUI VIENE USATO Nome> di colonna <non nelle tabelle specificate. <name> non è valido nel contesto in cui viene usato. |
Motivo: il server non può eseguire un'istruzione SQL in cui un nome di colonna specificato non è una colonna della tabella di origine o di destinazione o vista a cui si fa riferimento all'istruzione . Azione: verificare che i riferimenti alle colonne corrispondano agli oggetti nell'istruzione SQL eseguendo una query sul catalogo di sistema, ad esempio SYSIBM. SYSCOLUMNS) o esecuzione di una query dello schema client (ad esempio, OLE DB IDBSchemaRowsets::GetSchemas(DBSCHEMA_COLUMNS) o ADO.NET MsDb2Connection.GetSchema(Columns). |
08S01 | -360 | Impossibile trovare la risorsa host. Verificare che il valore di Catalogo iniziale corrisponda al nome della risorsa host. | Motivo: il server non è riuscito a connettere il client al database RDBNAM DRDA richiesto (Nome database relazionale). Azione: verificare le informazioni di connessione per verificare che il valore del catalogo iniziale corrisponda a DB2 per z/OS location name, DB2 for IBM i relational database directory entry (RDBDIRE) o DB2 per il nome del database Windows. Per altre informazioni, vedere Catalogo iniziale. |
42884 | -440 | NESSUN <tipo di> routine IN BASE AL NOME <> CHE HA ARGOMENTI COMPATIBILI È STATO TROVATO NEL PERCORSO CORRENTE Non è stata trovata alcuna routine con il nome e gli argomenti compatibili specificati. Non è stata trovata alcuna routine autorizzata denominata <routine-name> di tipo <> routine con argomenti compatibili. |
Motivo: il server non può eseguire un'istruzione SQL CALL contenente il numero errato di argomenti o tipi di dati di parametro non validi o fa riferimento a uno schema> non valido<.<nome dell'oggetto>. Azione: verificare il numero di argomenti. Controllare i tipi di dati dei parametri. Verificare il nome di oggetto specificato nell'istruzione SQL. Verificare le informazioni di connessione per assicurarsi che il valore di Qualificatore predefinito corrisponda alla raccolta DB2 in cui è catalogato l'oggetto. Per altre informazioni, vedere Qualificatore predefinito. |
24501 | -501 | IL CURSORE IDENTIFICATO IN UN'ISTRUZIONE FETCH O CLOSE NON È APERTO. Nome cursore <> non aperto. Il cursore specificato in un'istruzione FETCH o CLOSE non è aperto o una variabile di cursore in un riferimento alla funzione scalare del cursore non è aperta. |
Motivo: il server non può eseguire un'istruzione SQL SELECT o CALL che richiede un'istruzione FETCH o CLOSE su un CURSOR che non si trova in uno stato aperto. Azione: verificare che l'applicazione non emetta commit o ROLLBACK, che potrebbe chiudere il cursore. Verificare la presenza di un messaggio restituito ricevuto in precedenza che potrebbe indicare che il server ha chiuso automaticamente il cursore in base a un evento di sistema(ad esempio, SQLCODE -404, -652, -679, -802, -901, -904, -909, -910, -911, -913 o -952). Verificare le informazioni di connessione per assicurarsi che l'opzione Commit automatico sia impostata su True durante l'interazione con alcuni consumer generici, inclusi SQL Server Integration Services e Distributed Query Processor, per l'utilizzo di transazioni RUW (Remote Unit of Work). Per altre informazioni, vedere AutoCommit. |
42501 | -551 | Accesso all'oggetto non autorizzato. Non autorizzato a object-name nel tipo resource-name> resource-type><.<<> <authorization-ID> non dispone dell'autorizzazione o del privilegio necessario per eseguire l'operazione su <> object-name<>. |
Motivo: il server non può eseguire un'istruzione SQL SELECT o CALL che richiede un'istruzione CURSOR archiviata in un pacchetto SQL statico a cui l'utente corrente non è autorizzato. Per il supporto dell'esecuzione di istruzioni SQL SELECT, il client si basa su istruzioni SQL predefinite nelle sezioni dei pacchetti SQL statici di DB2. Per impostazione predefinita, se l'utente di runtime dispone dell'autorità BIND, EXECUTE e GRANT sulla raccolta DB2 specificata nella proprietà di connessione Raccolta pacchetti, il client definisce un pacchetto in modo automatico. Azione: verificare le informazioni di connessione per assicurarsi che il valore della raccolta pacchetti corrisponda alla raccolta DB2 in cui i pacchetti HIS 2010 sono definiti per l'esecuzione in base all'identificatore utente corrente o PUBLIC. Creare manualmente i pacchetti di HIS 2010, che devono essere eseguiti dall'ID utente corrente o da PUBLIC, mediante Strumento di accesso ai dati, la Creazione guidata origine dati, Collegamenti dati o Libreria di accesso ai dati. Eseguire la connessione a DB2 utilizzando un ID di autorizzazione che dispone dei privilegi necessari per creare automaticamente i pacchetti di HIS 2010 (privilegi CREATE, BIND e EXECUTE). Per altre informazioni, vedere Raccolta pacchetti. |
42501 42602 |
-567 -567 |
<BIND-type> AUTHORIZATION ERROR USING <auth-id> AUTHORITY PACKAGE = package-name> PRIVILEGE = <<privilege>. Il nome autorizzazione &1 non è consentito. <authorization-ID non è un ID> di autorizzazione valido. |
Motivo: il server non può eseguire un'istruzione SQL SELECT quando l'account utente non dispone dell'autorizzazione per creare o eseguire i pacchetti DB2 necessari. Azione: verificare le informazioni di connessione per assicurarsi che il valore della raccolta pacchetti corrisponda alla raccolta DB2 in cui i pacchetti HIS 2010 vengono definiti per l'esecuzione in base all'identificatore utente corrente o PUBLIC. Creare manualmente i pacchetti di HIS 2010, che devono essere eseguiti dall'ID utente corrente o da PUBLIC, mediante Strumento di accesso ai dati, la Creazione guidata origine dati, Collegamenti dati o Libreria di accesso ai dati. Eseguire la connessione a DB2 utilizzando un ID di autorizzazione che dispone dei privilegi necessari per creare automaticamente i pacchetti di HIS 2010 (privilegi CREATE, BIND e EXECUTE). Per altre informazioni, vedere Raccolta pacchetti. |
42710 | -601 | IL NOME (VERSIONE O NUMERO DI SERIE DEL VOLUME) DELL'OGGETTO DA DEFINIRE O LA DESTINAZIONE DI UN'ISTRUZIONE RINOMINA È IDENTICA AL NOME> ESISTENTE (NUMERO DI SERIE VERSIONE O VOLUME) <DELL'OGGETTO TYPE <OBJECT TYPE>. <nome> nel <tipo di> schema><esiste già. Il nome dell'oggetto da creare è identico al nome del nome <> esistente del tipo<>. |
Motivo: il server non può assegnare un nome a un oggetto quando tale nome è già in uso per un altro oggetto dello stesso tipo. Azione: Assegnare un nome univoco all'oggetto rispetto agli oggetti di database esistenti. |
42721 | -725 | IL REGISTRO <> SPECIALE NEL PERCORSO DELLA POSIZIONE><È STATO FORNITO UN VALORE NON VALIDO | Motivo: il server non può elaborare l'istruzione SET CURRENT SQLID quando contiene un valore non valido per l'identificatore utente o il nome della raccolta. Azione: verificare le informazioni di connessione per assicurarsi che il valore del qualificatore predefinito corrisponda all'insieme DB2 in cui è catalogato l'oggetto. Per altre informazioni, vedere Qualificatore predefinito. |
23505 | -803 | UN VALORE INSERITO O AGGIORNATO NON È VALIDO PERCHÉ L'INDICE IN INDEX SPACE <INDEXSPACE-NAME> LIMITA LE COLONNE DELLA TABELLA IN MODO CHE NESSUNA DUE RIGHE POSSA CONTENERE VALORI DUPLICATI IN TALI COLONNE. RID OF EXISTING ROW IS X <row identifier> È stato specificato un valore chiave duplicato. Uno o più valori nell'istruzione INSERT, nell'istruzione UPDATE o nell'aggiornamento della chiave esterna causata da un'istruzione DELETE non sono validi perché la chiave primaria, il vincolo univoco o l'indice univoco identificato da <index-id> limita il nome> della tabella di tabella <da cui sono presenti valori duplicati per la chiave di indice. |
Motivo: il server non può eseguire un'istruzione INSERT o UPDATE su una tabella vincolata da un INDICE UNIQUE in cui l'istruzione genera valori duplicati. Azione: verificare che i valori dei dati non violano un vincolo, eseguendo query sul catalogo di sistema , ad esempio SYSIBM. SYSINDEXES) o esecuzione di una query dello schema client (ad esempio OLE DB IDBSchemaRowsets::GetSchemas(DBSCHEMA_INDEXES) o ADO.NET MsDb2Connection.GetSchema(Indexes). |
51002 | -805 | DBRM O PACKAGE NAME <location-name>.<collection-id>.<dbrmname>.<coerenza-token> NOT FOUND IN PLAN <plan-name>. >MOTIVO.< Nome pacchetto <SQL nel nome>> della raccolta non trovato in <DRDA Server. Il <nome> del pacchetto non è stato trovato. |
Motivo: il server non è riuscito a trovare il pacchetto SQL statico DB2 richiesto dal client DB2 per eseguire un'istruzione SQL SELECT dinamica. Azione: verificare le informazioni di connessione per assicurarsi che il valore della raccolta pacchetti corrisponda alla raccolta DB2 in cui i pacchetti HIS 2010 vengono definiti per l'esecuzione in base all'ID utente corrente o PUBLIC. Per altre informazioni, vedere Raccolta pacchetti. |
58004 | -901 | ESECUZIONE NON RIUSCITA A CAUSA DI UN ERRORE DI SISTEMA CHE NON PRECLUDE L'ESECUZIONE DI ISTRUZIONI SQL SUCCESSIVE. Errore di sistema SQL. L'istruzione SQL non è riuscita a causa di un errore di sistema non grave. È possibile elaborare le istruzioni SQL successive. (Motivo<>).) |
Motivo: il server non è riuscito a eseguire l'istruzione SQL corrente, ma le istruzioni SQL successive potrebbero avere esito positivo. Questo errore può essere causato da un commit della transazione non riuscito in un'unità di lavoro distribuita, da un aggiornamento non riuscito a causa di un vincolo o da un'istruzione SQL con una lunghezza non valida (0 o superiore alla lunghezza massima). Azione: l'utente deve controllare il codice motivo in cui è disponibile per determinare se è necessaria un'ulteriore azione utente o amministratore, nonché per determinare come evitare l'errore modificando l'applicazione, la transazione o il comando. |
57011 | -904 | ESECUZIONE NON RIUSCITA A CAUSA DI UNA RISORSA NON DISPONIBILE. REASON-code, TYPE OF RESOURCE resource-type, AND RESOURCE NAME resource-name.REASON reason-code<>, TYPE OF RESOURCE <resource-type>, AND RESOURCE NAME resource-name<>. Limite di risorsa superato. Esecuzione non riuscita a causa di una risorsa non disponibile. Codice motivo: <reason-code>, tipo di risorsa: <tipo> di risorsa e nome risorsa: <resource-name>. |
Motivo: il server non può eseguire l'istruzione SQL perché l'oggetto dell'istruzione non è disponibile. Azione: verificare che l'oggetto e il database siano disponibili e non in uno stato deadlock, offline o altro non disponibile. |
57033 | -913 | ESECUZIONE NON RIUSCITA A CAUSA DI DEADLOCK O TIMEOUT. REASON CODE reason-code, TYPE OF RESOURCE resource-type, AND RESOURCE NAME resource-name.REASON CODE reason-code<>, TYPE OF RESOURCE <resource-type>, AND RESOURCE NAME resource-name<.> Riga o nome oggetto <nel <tipo di risorsa tipo resource-type> resource-type <>> in uso. Esecuzione non riuscita a causa di deadlock o timeout. Codice motivo motivo-codice<>. |
Motivo: il server non può eseguire l'istruzione SQL perché l'oggetto dell'istruzione non è disponibile. Azione: verificare che l'oggetto e il database siano disponibili e non in uno stato deadlock, offline o altro non disponibile. Eseguire il commit o il rollback della precedente operazione, quindi disconnettersi dal database. Verificare il codice motivo del server per ulteriori informazioni sullo stato dell'oggetto. Il codice motivo 00C90088 di DB2 per z/OS indica, ad esempio, un deadlock, mentre 00C9008E indica un timeout. |