Az Access hibát okoz, ha egy- vagy dupla adattípusú mezőket exportál az Oracle-be

Eredeti tudásbáziscikk száma: 301915

Megjegyzés:

Alapvető makró-, kódolási és együttműködési képességekre van szükség. Ez a cikk a Microsoft Access-adatbázisokra (.mdb) és a Microsoft Access-projektekre (.adp) vonatkozik.

Jelenségek

Ha az Oracle ODBC-illesztővel exportál egy Olyan Access-táblát, amelynek adattípusa Egy vagy Dupla, az illesztő nem tudja exportálni ezeket a mezőket az alábbiak szerint.

A Microsoft Oracle-illesztő a következő hibaüzenetet jeleníti meg:

A Microsoft Access nem tudta hozzáfűzni az összes adatot a táblához. A számrekord>(ok) mezőinek <tartalma törölve lett, és a kulcs megsértése miatt 0 rekord elveszett.

  • Ha az adatokat törölték, a beillesztett vagy importált adatok nem egyeznek meg a mező adattípusával vagy a céltábla FieldSize tulajdonságával.
  • Ha a rekordok elvesztek, a beillesztett rekordok olyan elsődleges kulcsértékeket tartalmaznak, amelyek már léteznek a céltáblában, vagy megsértik a táblák közötti kapcsolat hivatkozási integritási szabályait. Mégis folytatja?

Az Oracle ODBC-illesztőprogramok a 8.1.6-os verzióig a következő hibaüzenetet jelenítik meg:

ODBC – a hívás meghiúsult [Oracle][ODBC][ORA] ORA-01401: A beszúrt érték túl nagy az oszlophoz (#1401)

A probléma oka

A Microsoft Access 97-ben az exportálási folyamat varChar2(40) értékké alakítja az egy- és dupla adattípusú mezőket. A Microsoft Access 2000-es és újabb verzióiban azonban a mezők VarChar2(4) formátumra lesznek konvertálva, ami túl kicsi az adatok tárolásához.

Megoldás

Az adatok Oracle-be való sikeres exportálásához használjon a megfelelő táblákon alapuló lekérdezést. Az adattípus sztringgé alakításához használja a CStr()függvényt.

Vegyük például a következő SQL-szintaxist:

SELECT tblExample.pkeyDataID, tblExample.dblTest
FROM tblExample;

ahol a dblTest egy dupla adattípusú mező. Konvertálja a dblTestet sztring adattípussá az SQL szintaxisának következő módosításával:

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

A lekérdezés most már sikeresen exportálható az Oracle-be.

Ez a probléma a Microsoft Jet 4.0 adatbázismotor Service Pack 8 (SP8) verziójában oldódott meg.

Állapot

A Microsoft megerősítette, hogy ez egy probléma a cikk elején felsorolt Microsoft-termékekben.

További információ

A cikkben említett, külső gyártóktól származó termékek a Microsofttól független gyártók termékei. a Microsoft sem törvényi, sem másfajta garanciát nem vállal e termékek teljesítményére és megbízhatóságára vonatkozóan.