Announcement

Collapse
No announcement yet.

Anweisungen laufen parallel?

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

  • Anweisungen laufen parallel?

    Hallo,

    ich habe folgendes Problem:

    In folgendem Skrip werden aus der Funktion DUMP_CSV heraus csv-Dateien erzeugt. In den Prozeduren " log_file_start sowie log_file_ende werden in einer Logdatei (die auch von DUMP_CSV benutzt wird) Vor- und Schlussätze geschrieben.

    Code:
    declare
        l_rows  number;
    begin
    
        log_file_start;
    
        l_rows := dump_csv( 'select * from Tabelle1 '
                          , 'Tesdatei1'
                          , ';'
                          , 'daten01.csv'
                          , 'J'
                          , 'W' );
    
        l_rows := dump_csv( 'select * from Tabelle2 '
                          , 'Tesdatei2'
                          , ';'
                          , 'daten02.csv'
                          , 'J'
                          , 'W' );
     
        l_rows := dump_csv( 'select * from Tabelle3 '
                          , 'Tesdatei3'
                          , ';'
                          , 'daten03.csv'
                          , 'J'
                          , 'W' );
    
        l_rows := dump_csv( 'select * from Tabelle4 '
                          , 'Tesdatei4'
                          , ';'
                          , 'daten04.csv'
                          , 'J'
                          , 'W' );
    
     
        log_file_ende;
    
    end;
    /

    Nun scheinen diese Aufrufe der Funktionen parallel zu laufen, denn der Schlussdatz, der eigentlich als letzter Fehler im Ablauf steht, wird mitten drin geschrieben.



    Code:
    ===================
    Testlauf Start: 12.05.2009 13:48:39
    ===================
    Export erfolgreich: daten01.csv Geschrieben Sätze: 2
    Export erfolgreich: daten02.csv Geschrieben Sätze: 3468
    Export erfolgreich: daten03.csv Geschrieben Sätze: 6936
    ===================
    Testlauf Ende: 12.05.2009 13:48:39
    ===================
    Export erfolgreich: daten04.csv Geschrieben Sätze: 6936
    Habe ich eine Möglichkeit diese einzelnen Schritte nicht parallel sondern sequentiell ablaufen zu lassen. Bin über jede Idee dankbar. Google und Co. hatten leider auch keine Antwort.

    Viele Dank!

  • #2
    Die Abläufe laufen nicht parallel. In PL/SQL kannst Du überhaupt keine Threads o.ä. aufrufen.

    Ich vermute eher, dass Du die Datei nicht korrekt schließt und daher der Buffer erst geleert wird, wenn das Programm endet.

    Wie sehen den deine UTL_FILE Aufrufe aus?
    Zuletzt editiert von TomT; 12.05.2009, 16:06.

    Comment


    • #3
      Hallo TomT,

      vielen Dank für Deine schnelle Antwort. Das war tatsächlich das Problem. Ich habe vergessen im Exception-Teil die Log-Datei zu schließen.

      Also noch einmal vielen Dank!

      Gruß
      Termi

      Comment

      Working...
      X