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.
Palaute
https://aka.ms/ContentUserFeedback.
Tulossa pian: Vuoden 2024 aikana poistamme asteittain GitHub Issuesin käytöstä sisällön palautemekanismina ja korvaamme sen uudella palautejärjestelmällä. Lisätietoja on täällä:Lähetä ja näytä palaute kohteelle