oracle : odbc : insert : LONG



  • hallo zusammen,

    ich verfluche schon seit einigen tagen das oracle system.
    unserere anwendung soll per ODBC dort daten eintragen.
    soweit gut, das einzige problem ist der datentyp "LONG"
    für zeichenketten, die über 4000 hinausgehen, was leider auch vorkommt.

    sobald ich die anfrage abschicke bekomme ich ein fehler:

    ora-01704: Zeichenfolge zu lang

    bis jetzt ist mir noch keine professionelle lösung in den sinn gekommen, bzw.
    noch habe ich keine gefunden.

    ich hab nur "irgendwo" im inet gelesen, dass man im sql statement zwischen ' und ' nur die begrenzten zeichen eintragen darf?
    ein CONCAT im Update geht aber auch nicht 😞

    wie löst der experte das?
    vielen dank im voraus!

    liebe grüße
    André



  • Ich kenn Oracle nicht, aber wenn der Datentyp ein BLOB-Datentyp ist, dann würde man das mit Streams machen.



  • Hallo Smeagol,

    mir ist der String-Type LONG bisher nicht über den Weg gelaufen. Im Netz findet man nur Hinweise, dass der Typ veraltet ist und eigentlich bis 2GB Daten aufnehmen kann. Die Begrenzung auf 4000 Byte findet man in der Doku allerdings für den Typ VARCHAR2. Gibt's da vllt. ein implizite Konvertierung?

    Grüße
    don_basto



  • Hallo Leute,

    über eine bindevariable hab ich es nun so mehr oder weniger hinbekommen.
    leider ist dann nach 32000 schluss 😞

    DECLARE my_var long:='hier ganz langer text > 400 zeichen';
      BEGIN
        UPDATE PERSONENMERKMALE SET BESCHREIBUNG = (my_var) WHERE ID = 1;
      END;
    

    dabei ist mir aufgefallen, dass ich gar keinen plan hab, wie
    ein sqlstatement aussehen müsste um BLOB/CLOB zu füllen.
    oder die angesprochenen streams von Joe? 😉
    hat jemand n beispiel, tipp oder link für mich?

    Danke schon mal!


Anmelden zum Antworten