Announcement

Collapse
No announcement yet.

BLOB Daten in Oracle-Tabelle zerstört

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • BLOB Daten in Oracle-Tabelle zerstört

    Hallo, ich versuche vergeblich, Word-Dokumente in einer Oracle-Tabelle als Stream zu speichern und zu lesen (Verfahren Kosch). Wenn ich die Daten wieder auslese, sind diese "verfremdet". Man kann am Ende im Hex-Editor noch einige originale Wörter erkennen, aber das Ergebnis ist ziemlich durcheinandergewürfelt. Nur kleine Dokumente werden korrekt gespeichert. Diese müssen aber nicht unbedingt kleiner als 4K (gepackt) sein.

    Im SQL-Monitor ist zu erkennen, das der Insert-Befehl korrekt erzeugt wird (einige Tips verweisen auf das Problem, das bei Oracle der Insertbefehl eine spezielle Form haben muß). Das kann es also nicht sein.

    Ich habe die Oracle-Tabelle mit folgenden Parametern angelegt:

    CREATE TABLE DOC_OLE (
    DOC_ID NUMBER(38) NOT NULL,
    DOC_NAME VARCHAR2(255) NOT NULL,
    DOC_DATA BLOB,
    CONSTRAINT PK_DOC_OLE
    PRIMARY KEY ( DOC_ID )
    USING INDEX PCTFREE 10
    STORAGE(INITIAL 10240 NEXT 10240 PCTINCREASE 50 )
    TABLESPACE TS_TABLE)
    TABLESPACE TS_TABLE PCTUSED 40 PCTFREE 10
    STORAGE(INITIAL 10240 NEXT 36864 PCTINCREASE 50 )
    PARALLEL (DEGREE 1 INSTANCES 1) NOCACHE
    lob (DOC_DATA) store as lob_Doc_Data
    (tablespace TS_DOCLOBS
    STORAGE (initial 256K next 256K pctincrease 0 maxextents unlimited)
    chunk 32k pctversion 10 nocache logging);

    Hat jemand eine Idee, wo das Problem liegt ? Ich finde keine Erklärung mehr.

    Grüsse.

  • #2
    Wolfgang,

    ich gehe davon aus, dass du die bde und die sql-links nutzt. hier gibt es probleme!
    entweder über ttable und sql-links (ich höre schon den aufschrei von einigen, aber es ist stabiler, ABER: nur für diesen speziellen fall allerdings blob und oracle!!!) oder
    umstieg auf doa oder odac, d.h. oracle-komponente ohne bde!!!

    :-) thoma

    Comment


    • #3
      Thomas,
      das hört sich ja nicht gut an. Ich setze nähmlich am liebsten keine Third-Party-Komponenten ein. Was meinst Du mit "ttable und sql-links"?. Ich habe das jetzt so verstanden, dass ich auf die TDatabase-Komponente verzichte und dann in TTable den Oracle-Service einstelle. Funktioniert aber auch nicht. Oder meinst Du was anderes?

      An alle,
      Ich habe übrigens noch Ado versucht. Das kennt den Datentyp Blob aber nicht. Zumindest meldet es "unbekannter Datentyp". Gibt es da vielleicht auch eine Möglichkeit in dieser Richtung. ADO ist aber ziemlich langsam, oder?

      Grüss

      Comment


      • #4
        So, es funktioniert. Und zwar mit der Freeware von Romanchenko Andrey: dOCI 1.10 (Sourcen inkl.) Bei Eingabe von "dOCI" in eine Suchmaschine werden mehrere Quellen angegeben. Ist zwar ein bischen umständlich vom Handling her, aber ich habe keine wesentlichen Probleme mehr.

        Grüss

        Comment


        • #5
          wolfgang,

          statt den weg über tdatabase - tquery die kompo ttable nehmen.
          wg. doa und odac: die zwei sind zum einen führend in dem bereich, der support ist excellent und eine weiterentwicklung (demnächst auch kylix) ist bei den großen firmen garantiert.

          ;-) thoma

          Comment

          Working...
          X