Access způsobí chybu při exportu polí s datovým typem jeden nebo dvojitý do Oracle

Původní číslo KB: 301915

Poznámka

Vyžaduje základní dovednosti v oblasti maker, kódování a vzájemné spolupráce. Tento článek se týká databáze aplikace Microsoft Access (.mdb) a projektu aplikace Microsoft Access (.adp).

Příznaky

Pokud použijete ovladač Oracle ODBC k exportu accessové tabulky, která obsahuje pole datového typu Single nebo Double, ovladač se nepodaří exportovat tato pole následujícím způsobem.

Ovladač Microsoft Oracle zobrazí následující chybovou zprávu:

Aplikaci Microsoft Access se nepodařilo připojit všechna data do tabulky. Obsah polí v <záznamech čísel> byl odstraněn a kvůli porušení klíče došlo ke ztrátě 0 záznamů.

  • Pokud byla data odstraněna, data, která jste vložili nebo importovali, neodpovídají datovým typům pole nebo vlastnosti FieldSize v cílové tabulce.
  • Pokud došlo ke ztrátě záznamů, buď záznamy, které jste vložili, obsahují hodnoty primárního klíče, které již existují v cílové tabulce, nebo porušují pravidla referenční integrity pro relaci definovanou mezi tabulkami. Chcete přesto pokračovat?

Ovladače Oracle ODBC až do verze 8.1.6 včetně zobrazí následující chybovou zprávu:

ODBC – volání [Oracle][ODBC][ORA] ORA-01401: Vložená hodnota pro sloupec je příliš velká (#1401)

Příčina

V aplikaci Microsoft Access 97 převede proces exportu pole datového typu Jeden a Dvojitý na VarChar2(40). V aplikaci Microsoft Access 2000 a novějších verzích jsou však pole převedena na VarChar2(4), což je příliš malé pro uložení dat.

Řešení

Pokud chcete data úspěšně exportovat do Oracle, použijte dotaz založený na příslušných tabulkách. Pomocí funkce CStr() převeďte datový typ na String.

Představte si například následující syntaxi SQL:

SELECT tblExample.pkeyDataID, tblExample.dblTest
FROM tblExample;

kde dblTest je pole s datovým typem Double. Převeďte dblTest na datový typ String provedením následující změny syntaxe SQL:

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

Dotaz se teď dá úspěšně exportovat do Oracle.

Tento problém je vyřešen v aktualizaci Microsoft Jet 4.0 Database Engine Service Pack 8 (SP8).

Stav

Společnost Microsoft potvrdila, že se jedná o problém v produktech společnosti Microsoft, které jsou uvedeny na začátku tohoto článku.

Další informace

Produkty třetích stran, o nichž se hovoří v tomto článku, jsou vyráběny společnostmi nezávislými na společnosti Microsoft. Společnost Microsoft neposkytuje žádnou záruku (předpokládanou ani jinou) týkající se výkonu a spolehlivosti těchto produktů.