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

ora-01406 Errore durante il recupero dei valori tramite OCI

Il bug elencato nella domanda è stato corretto in 10.2.0.3 e l'errore viene fornito solo nelle versioni Oracle precedenti. Modifica:lo stesso problema è stato riscontrato in Oracle 10.2.0.4. Stiamo ancora esaminando questo

Edit2:Quando si definiscono i cursori per le colonne CHAR/VARCHAR in OCI (usiamo un wrapper per questo scopo), la dimensione della stringa che è associata a una colonna deve essere almeno uno maggiore della larghezza massima della colonna.

per esempio. Nome colonna:U_NAME Tipo:VARCHAR(30)

1.char zName[30];pCursor->Definisci(zName, 3O); // questo andrebbe in crash se la colonna ha un valore con 30 caratteri

2.char zName[31];pCursor->Definisci(zName, 3O); // questo andrebbe in crash se la colonna ha un valore con 30 caratteri

3.char zName[31];pCursor->Definisci(zName, 31); // Corretta. non andrebbe in crash per nessun valore