Announcement

Collapse
No announcement yet.

Erzeugen einer Datei

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

  • Erzeugen einer Datei

    Hallo zusammen,

    ich habe eine Prozedur geschrieben, die HL7 - Nachrichten (Einfach formatierte Textdateien zur Kommunikation zweier Datendanken) erzeugt. Dies habe ich mit UTL_FILE.FOPEN realisiert (Oracle 9).
    Nun habe ich das Problem, dass die Prozedur mehrere Tausende Dateien erstelle muss. Das funktioniert zwar, jedoch laufen mir hier die temporären Tablespaces zu, da die Daten erst dann geschrieben werden, wenn die Prozedur beendet ist.

    Gibt es keine Möglichkeit, die Dateien einen nach dem anderen zu schreiben?

    Ich hatte mal versucht, einen eigenen Prozedur zur Dateierzeugung, die durch die Prozedur zur Ermittlung des Inhaltes angestoßen wird, zu schreiben, in der Hoffnung, dass die Daten einzeln geschrieben werden. Leider vergebens, da die Daten alle auf einmal am Ende geschrieben werden.

    Wäre nett, wenn mir da einer helfen könnte.

    Viele Grüße,

    Stephan

    BEGIN;

    v_file := UTL_FILE.FOPEN('C:\temp','HL7-'||vSEQUENCE||'.hl7', 'w');
    UTL_FILE.PUT_LINE(v_file,vHL7head||vHL7WERTE);
    UTL_FILE.FCLOSE(v_file);

    v_sem := UTL_FILE.FOPEN('C:\temp','HL7-'||vSEQUENCE||'.sem', 'w');
    UTL_FILE.FCLOSE(v_sem);

    END;

  • #2
    Hallo Stephan,

    ich hab zwar mit UTL_FILE noch nicht viel gemacht und weiß nicht ob es was bringt, aber versuch es doch mal mit einem COMMIT; zwischen den einzelnen Aufrufen.

    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


    • #3
      Hallo Falk,

      habe ich auch schon versucht. Hilft leider nichts. :-(

      Trotzdem danke und Grüße,

      Stepha

      Comment


      • #4
        Hallo Stephan,
        seit Oraclie 9 Release 2 gibt es für PUT_LINE einen zusätzlichen Übergabeparameter AUTOFLUSH. Alternativ dazu gibt es auch noch eine UTL_FILE.FFLUSH Prozedur. Ist vielleicht ein Versuch wert, sofern Du das 9er Release 2 einsetzt. Kann nicht genau sagen, ob das in früheren Versionen auch schon verfügbar war.
        <br>
        Thoma
        Thomas Steinmaurer

        Firebird Foundation Committee Member
        Upscene Productions - Database Tools for Developers
        Mein Blog

        Comment

        Working...
        X