Zum Inhalt springen

[Access2000/Oracle 9i] Datentypen


DJTank

Empfohlene Beiträge

Hallo Gemeinde,

folgendes Problem:

Ich habe hier ein ziemlich großes Update-Statement in Access.

jetzt bekomme ich bei einigen Feldern jeweils die Meldung "Typen unverträglich".

Zieldatenbank ist Oracle 9i, welche in Access per ODBC darauf verlinkt ist.

Beispielsweise möchte ich ein ursprüngliches Byte-Feld in ein Oracle-Feld mit den Attributen "Number, Größe:3" updaten, ich bekomme aber immer diesen Fehler.

Wie bzw. wo muss ich die inkompatiblen Dinge konvertieren, dass es funktioniert? Im Update-Statement selber habe ich sogar schonmal alle Werte sicherheitshalber in "sichere Datentypen" konvertiert, ohne Erfolg.

Hat jemand allgemeine Tipps für mich?

Dankeschön!

lg

Stefan

Link zu diesem Kommentar
Auf anderen Seiten teilen

also in access bringst du in den datentyp byte (der tatsächlich ein byte benötigt) nur ganzzahliges von 0 bis 255 rein. wenn du oracles number(3) nach access per odbc verknüpfst, erkennt er es als decimal mit 28 stellen genauigkeit und 12 byte speicherverbrauch - versuch es mal als number ohne angabe von size bzw. scale.

edit: ahjo, schau dir mal die access-faq von donkarl an, pkt. 8.8 gibt dir einige infos zu datentypen in oracle/access:

http://www.donkarl.com/index.htm?/FAQ/FAQ8Kommunikation.htm

und lg nach vlbg aus wien ;)

s'Amstel

Link zu diesem Kommentar
Auf anderen Seiten teilen

Aber nochmal eine Zusatzfrage:

Wenn ich versuche, die wirklich passenden Datentypen zu verwenden (lt. dem Microsoft Dokument von einer der obigen Quellen), dann bleibt es weiterhin bei "Typen unverträglich", lediglich der Einsatz von Strings funktioniert einwandfrei.

Ist das richtig so oder mache ich etwas falsch, dass ich zB. in ein Oracle-Feld mit number (Größe:1, Scale:0) keinen Access-Integer-Wert einfügen kann.

Liegt das eventuell daran, dass ein integer-Wert größer sein kann als ein number-Wert aus Oracle mit Größe 1?

lg

Stefan

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ist das richtig so oder mache ich etwas falsch, dass ich zB. in ein Oracle-Feld mit number (Größe:1, Scale:0) keinen Access-Integer-Wert einfügen kann.

Liegt das eventuell daran, dass ein integer-Wert größer sein kann als ein number-Wert aus Oracle mit Größe 1?

number(3) bei oracle heisst: maximal drei vorkommastellen, sonst nix, d.h. maximal 999. 999 geht noch, bei 1000 bekommst du einen ORA-01438.

wenn du integer (das ja, je nachdem ob es signed oder unsigned ist, maximal 32768 oder 65536 sein kann) in oracle speichern willst, musst du number mit einer grösseren size (oder ganz ohne) angeben. die scale bei number ist nur für die nachkommastellen zuständig.

s'Amstel

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...