Access aiheuttaa virheen vietäessä kenttiä, joiden tietotyyppi on yksittäinen tai kaksinkertainen Oracleen

Alkuperäinen KT-numero: 301915

Huomautus

Edellyttää makrojen, koodauksen ja yhteensopivuuden perustaitoja. Tämä artikkeli koskee Microsoft Access -tietokantaa (.mdb) ja Microsoft Access -projektia (.adp).

Oireet

Kun käytät Oracle ODBC -ohjainta Access-taulukon viemiseen, jossa on kenttiä, joiden tietotyyppi on Yksittäinen tai Kaksinkertainen, ohjain ei voi viedä näitä kenttiä seuraavasti.

Microsoft Oracle -ohjain näyttää seuraavan virhesanoman:

Microsoft Access ei voinut liittää kaikkia tietoja taulukkoon. Lukutietueiden> kenttien <sisältö poistettiin ja 0 tietuetta menetettiin avainvirheiden vuoksi.

  • Jos tiedot poistettiin, liitetyt tai tuodut tiedot eivät vastaa kohdetaulukon kentän tietotyyppejä tai Kentän koko -ominaisuutta.
  • Jos tietueita menetettiin, liitetyt tietueet sisältävät perusavainarvoja, jotka ovat jo kohdetaulukossa, tai liitetyt tietueet rikkovat taulukoiden välisen yhteyden viite-eheyssääntöjä. Haluatko silti jatkaa?

Oracle ODBC -ohjaimet versioon 8.1.6 saakka näyttävät seuraavan virhesanoman:

ODBC - kutsu epäonnistui [Oracle][ODBC][ORA] ORA-01401: Lisätty arvo on liian suuri sarakkeelle (#1401)

Syy

Microsoft Access 97:ssä vientiprosessi muuntaa yksi- ja kaksinkertainen-tietotyyppikentät VarChar2(40) -kentiksi. Microsoft Access 2000:ssa ja sitä uudemmissa versioissa kentät kuitenkin muunnetaan VarChar2(4)-kentiksi, mikä on liian pieni tietojen säilyttämiseen.

Ratkaisu

Jos haluat viedä tiedot Oracleen, käytä asianmukaisiin taulukoihin perustuvaa kyselyä. Käytä CStr()-funktiota tietotyypin muuntamiseen merkkijonoksi.

Otetaan esimerkiksi seuraava SQL-syntaksi:

SELECT tblExample.pkeyDataID, tblExample.dblTest
FROM tblExample;

jossa dblTest on kenttä, jonka tietotyyppi on Double. Muunna dblTest merkkijonotietotyypiksi tekemällä seuraava muutos SQL-syntaksiin:

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

Kysely voidaan nyt viedä Oracleen.

Tämä ongelma on ratkaistu Microsoft Jet 4.0 Database Engine Service Pack 8 :ssa (SP8).

Tila

Microsoft on vahvistanut, että tämä on ongelma Microsoft-tuotteissa, jotka on lueteltu tämän artikkelin alussa.

Lisätietoja

Tässä artikkelissa käsitellyt muiden ohjelmistovalmistajien tuotteet ovat Microsoftista riippumattomien yritysten valmistamia. Microsoft ei anna näiden tuotteiden suorituskykyä tai luotettavuutta koskevaa takuuta.