Access forårsaker en feil når du eksporterer felt med enkel eller dobbel datatype til Oracle

Opprinnelig KB-nummer: 301915

Obs!

Krever grunnleggende ferdigheter for makroer, koding og interoperabilitet. Denne artikkelen gjelder for en Microsoft Access-database (.mdb) og for et Microsoft Access-prosjekt (ADP).

Symptomer

Når du bruker Oracle ODBC-driveren til å eksportere en Access-tabell som har felt av datatypen Enkel eller Dobbel, kan ikke driveren eksportere disse feltene som følger.

Microsoft Oracle-driveren viser følgende feilmelding:

Microsoft Access kan ikke tilføye alle dataene i tabellen. Innholdet i felt i <talloppføringer> ble slettet, og 0 post(er) gikk tapt på grunn av brudd på nøkkeltillatelser.

  • Hvis dataene ble slettet, samsvarer ikke dataene du limte inn eller importerte, med feltdatatypene eller egenskapen FieldSize i måltabellen.
  • Hvis poster gikk tapt, inneholder postene du limte inn, primærnøkkelverdier som allerede finnes i måltabellen, eller de bryter reglene for referanseintegritet for en relasjon som er definert mellom tabeller. Vil du fortsette likevel?

Oracle ODBC-drivere opptil og inkludert versjon 8.1.6 viser følgende feilmelding:

ODBC – kallet mislyktes [Oracle][ODBC][ORA] ORA-01401: Satt inn verdi for stor for kolonne (#1401)

Årsak

I Microsoft Access 97 konverterer eksportprosessen datatypefeltene Enkel og Dobbel til VarChar2(40). Feltene konverteres imidlertid til VarChar2(4) i Microsoft Access 2000 og nyere, som er for små til å inneholde dataene.

Løsning

Hvis du vil eksportere dataene til Oracle, kan du bruke en spørring basert på de relevante tabellene. Bruk CStr()-funksjonen til å konvertere datatypen til Streng.

Vurder for eksempel følgende SQL-syntaks:

SELECT tblExample.pkeyDataID, tblExample.dblTest
FROM tblExample;

der dblTest er et felt med en datatype langt flyttall. Konverter dblTest til en strengdatatype ved å gjøre følgende endring i SQL-syntaksen:

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

Spørringen kan nå eksporteres til Oracle.

Dette problemet er løst i Microsoft Jet 4.0 Database Engine Service Pack 8 (SP8).

Status

Microsoft har bekreftet at dette er et problem i Microsoft-produktene som er oppført i begynnelsen av denne artikkelen.

Mer informasjon

Tredjepartsproduktene som er omtalt i denne artikkelen, produseres av selskaper som er uavhengige av Microsoft. Microsoft gir ingen garantier, implisitt eller på annen måte, om disse produktenes ytelse eller pålitelighet.