Announcement

Collapse
No announcement yet.

ORACLE: CLOB-Problem

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

  • ORACLE: CLOB-Problem

    Hallo,
    stehe hier vom riesigen Problem.
    Ich greife aus meiner MFC-Anwendung über ODBC auf ORACLE 9.2 zu.
    Gefordert ist folgendes:
    eine Spalte in der ORACLE Tabelle soll unendlich viele Zeichen aufnehmenmn können.
    Später soll Volltextsuche über diesen Wert laufen.
    Als Datentyp habe ich CLOB verwendet. Wenn ich aber eine lange Zeichenkette (über 4000 Zeichen) reinschreiben will, schmiert meine Anwendung ab.
    Ich habe irgendwo gelesen, dass bei übergrossen Zeichenketten erstmal EMPTY_CLOB() anwenden muss. Sprich:

    CREATE test(ind int,myclob clob);
    INSERT INTO test(1,empty_clob());

    Ich hoffe ich lege bis dahin richtig...
    Nun wie schreibe ich meinen riesigen String darein?

    OCI, OCCI - ist es der richtige weg?

    Wenn ja, welche Biliotheken muss ich anbinden, damit ich via OCI die Aufgaben erledigen kann?
    Hat vielleicht jemand irgendwas in der richtung gemacht und hat ein kleines Beisiel für mich?

    Muss doch nicht schwer sein...

    Danke
    Alex

  • #2
    ...
    kann mir wirklich keiner helfen

    Comment


    • #3
      Hallo Alex,

      sei doch nicht so ungeduldig, manche lesen die Treads hier nur einmal am Tag

      Für das Handling von CLOBS benötigst du das Package DBMS_LOB. Prinzipiell sollte ein Insert so funktionieren:
      declare
      clob_loc CLOB;
      begin
      -- Zuerst das Insert in die Tabelle
      INSERT INTO <i>mytable</i> (..., <i>myLOBField</i>)
      VALUES (..., EMPTY_CLOB())
      -- Der überEMPTY_CLOB() angelegte LOB-Locator wird zurückgegeben
      RETURNING <i>myLOBField</i> INTO clob_loc;
      - Jetzt kommt das eigentliche Schreiben der CLOB-Daten
      DBMS_LOB.WRITE(clob_loc, <i>länge</i>, <i>position</i>, <i>text</i>);
      COMMIT;
      end;

      Wenn du OCI verwendest, dann kannst du auch die Funktionen des LOB-Locator zum schreiben und lesen verwenden. Dazu am besten mal die Docu befragen

      Gruß Fal
      Wenn du denkst du hast alle Bugs gefunden, dann ist das ein Bug in deiner Denksoftware.

      Quellcode ohne ein Mindestmaß an Formatierung sehe ich mir nicht an! Ich leiste keinen Privatsupport per Mail oder PN!

      Comment

      Working...
      X