Åtkomst orsakar ett fel när du exporterar fält med datatypen enkel eller dubbel till Oracle

Ursprungligt KB-nummer: 301915

Obs!

Kräver grundläggande makron, kodning och kompatibilitetsfärdigheter. Den här artikeln gäller för en Microsoft Access-databas (.mdb) och ett Microsoft Access-projekt (.adp).

Symptom

När du använder Oracle ODBC-drivrutinen för att exportera en Access-tabell som har fält av datatypen Single eller Double kan drivrutinen inte exportera dessa fält på följande sätt.

Microsoft Oracle-drivrutinen visar följande felmeddelande:

Microsoft Access kunde inte lägga till alla data i tabellen. Innehållet i fälten i <nummerposter> togs bort och 0 poster förlorades på grund av nyckelöverträdelser.

  • Om data har tagits bort matchar inte de data som du klistrade in eller importerade fältdatatyperna eller egenskapen FieldSize i måltabellen.
  • Om poster har förlorats innehåller posterna som du klistrade in primärnyckelvärden som redan finns i måltabellen, eller så bryter de mot reglerna för referensintegritet för en relation som definierats mellan tabeller. Vill du fortsätta ändå?

Oracle ODBC-drivrutiner upp till och med version 8.1.6 visar följande felmeddelande:

ODBC – anropet misslyckades [Oracle][ODBC][ORA] ORA-01401: Infogat värde för stort för kolumnen (#1401)

Orsak

I Microsoft Access 97 konverterar exportprocessen fälten Enkel och Dubbel datatyp till VarChar2(40). Men i Microsoft Access 2000 och senare konverteras fälten till VarChar2(4), som är för små för att lagra data.

Åtgärd

Om du vill exportera data till Oracle använder du en fråga baserat på relevanta tabeller. Använd funktionen CStr()för att konvertera datatypen till Sträng.

Tänk dig till exempel följande SQL-syntax:

SELECT tblExample.pkeyDataID, tblExample.dblTest
FROM tblExample;

där dblTest är ett fält med datatypen Double. Konvertera dblTest till en strängdatatyp genom att göra följande ändring i SQL-syntaxen:

SELECT tblExample.pkeyDataID, CStr([dblTest]) AS Expr1
FROM tblExample;

Frågan kan nu exporteras till Oracle.

Det här problemet löses i Microsoft Jet 4.0 Database Engine Service Pack 8 (SP8).

Status

Microsoft har bekräftat att detta är ett problem i De Microsoft-produkter som visas i början av den här artikeln.

Mer information

De produkter från andra tillverkare som diskuteras i denna artikel tillverkas oberoende av Microsoft. Produkternas funktion eller tillförlitlighet kan därför inte garanteras.