Probleme beim Ausführen einer Batch-Datei mit exec

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Probleme beim Ausführen einer Batch-Datei mit exec

    Folgende Ausgangssituation:
    Eine Datenbank (Oracle 8i) muß oft mit vielen Datensätzen gefüllt werden (ca.500000). Blöderweise können sie nicht einfach importiert werden, sondern müssen zuvor übersetzt werden und braucht viel Zeit.
    Die Daten werten gezippt im csv-format via uploadskript auf den Server gelegt und entpackt.
    Mein 1. Versuch war ein PHP Skript, dass Übersetzt und dann mit INSERT einfügt. Dauert aber über 30 Minuten....solange darf die PHP-Andendung nicht blockiert sein.
    Daher mein 2. Versuch:
    eine Batchdatei, die zuerst die Datensätze in eine temporäre Tabelle improtiert und dann ein PL-Skript in Oracle startet, welches die Übersetzung vornimmt und die Daten dann in die richtige Tabelle befördert, nicht ohne nachher die temporäre Tabelle zu löschen. Das dauert fast gleichlang wie Versuch 1 aber kann im Hintergrund rennen und ist somit akzeptabel.


    Hier nun das Problem: wenn ich die Batchdatei anklicke, rennt alles problemlos. Wenn ich sie aber mit PHP durch

    exec('d:\\wwwroot\\TGW\\include\\scripts\\ldcsv.bat > &');

    aufrufe, passiert nichts.

    Muß ich der php.exe spezielle Recht geben, damit ich die batchdatei in vollem Umfang ausführen kann?

    Inhalt der Batchdatei ldcsv.bat:

    @echo off
    title Datenimport nach ORACLE
    echo Import startet
    set ORACLE_SID=TEST
    if exist lockimport.txt goto LOCK
    date /t > lockimport.txt
    sqlldr userid=test/test control=ldcsv.ctl
    sqlplus test/test @start_import.sql
    del lockimport.txt
    goto ENDE
    :LOCK
    rem schreibe protokoll
    sqlplus test/test @schreibelockfehler.sql
    :ENDE
    exit

    ____________________________-
    System:
    Windows XP Pro, IIS 5, PHP 4.3.8, Oracle 8i.

    Dank im Voraus, Martin

  • #2
    IMHO du mußt den User IUSR_<Servername> genügend Rechte einräumen, um das Script ausführen zu können.

    Kommentar


    • #3
      Passt zwar nicht zum Thema, aber was ich schon immer mal wissen wollte: Was bedeutet eigentlich "IMHO"? Sicher sowas wie "IDR", nur ich komm nicht drauf was es bedeuten könnte.


      byez und sorry das der Beitrag nicht zum Thema ist ^^ - sagg
      mfg - sagg

      Kommentar


      • #4
        Original geschrieben von sagg
        Was bedeutet eigentlich "IMHO"?
        OffTopic:
        In My Humble Opinion

        Kommentar


        • #5
          Aso, logisch das ich nicht drauf komm, wenn es englisch ist und ich im deutschen überleg.

          thx - sagg
          mfg - sagg

          Kommentar


          • #6
            Danke für die rasche Antwort, but...

            hab IUSR_XXXX alle Recht auf den Ordner mit der Batchdatei gegeben...
            hilft nix.

            immer der selbe Effekt: wenn ich die datei anklicke, rennt alles wies soll, wenn ich sie mit exec von PHP aus aufrufe, rennt das php-script ohne fehler, aber die batchdatei verrichtet die Arbeit nicht...

            Kommentar


            • #7
              Original geschrieben von Entenman

              hab IUSR_XXXX alle Recht auf den Ordner mit der Batchdatei gegeben...
              das reicht nicht! der IUSR_XXX User muß auch rechte zum Ausführen alle Commands in der Batch-Datei haben!

              Kommentar

              Lädt...
              X