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

Anteckning

Office 365 ProPlus byter namn till Microsoft 365-appar för företag. Mer information om den här ändringen finns i det här blogginlägget.

Ursprungligt KB-nummer:   301915

Anteckning

Kräver grundläggande makron, kodning och kompatibilitetsfärdigheter. Den här artikeln gäller 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 innehåller fält med datatypen Single eller Double går det inte att exportera dessa fält enligt följande.

Följande felmeddelande visas i Microsoft Oracle-drivrutinen:

Det gick inte att lägga till alla data i tabellen i Microsoft Access. Innehållet i fält i poster togs bort och <number> 0(er) förlorades på grund av viktiga överträdelser.

  • Om data har tagits bort matchar de data du klistrade in eller importerade inte fältdatatyperna eller egenskapen Fältstorlek i måltabellen.
  • Om poster förlorats antingen de poster som du klistrade in innehåller primärnyckelvärden som redan finns i måltabellen eller om de bryter 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 kolumn (#1401)

Orsak

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

Lösning

Om du vill exportera data till Oracle kan du använda en fråga som baseras på relevanta tabeller. Använd funktionen KontStr()om du vill konvertera datatypen till Sträng.

Tänk på följande SQL syntax:

SELECT tblExample.pkeyDataID, tblExample.dblTest
FROM tblExample;

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

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

Frågan kan nu exporteras till Oracle.

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

Status

Microsoft har bekräftat att det här är ett problem i de Microsoft-produkter som listas 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.