Announcement

Collapse
No announcement yet.

SQL-Loader

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

  • SQL-Loader

    Hallo Profis, ich bin Anfänger u. brauche Hilfe

    Problem:Um mehrere Dateien aufeinanderfolgend in einer Tabelle zu laden benutze ich den SQL-Loader. Die geladenen Daten werden dann mittels einer Prozedur in einer Zieltabelle eingefügt. Wenn ich die Datei lade und die Prozedur starte ,muss ich wissen wann die Prozedur fertig ist um den SQL-Loader dann für die nächste Datei erneut starten zu können.Mein Problem ist zu erfahren wann die Prozedur fertig ist.

    Meine eigene Lösung dazu:Ich schreibe am Ende der Prozedur eine Meldung in einer Tabelle.Im Programm prüfe ich über eine Schleife wann die Meldung auftritt um den SQL-Loader erneut starten zu können.

    1.Frage:Gibt es auch andere Möglichkeiten zu erfahren wann eine Prozedur zu ende ist ?

    2.Frage:Kann man beim Start vom SQL-Loader das Erscheinen vom DOS-Fenster vermeinden.

    Danke im voraus

    Michael Kurth

  • #2
    schon mal versucht das ganze direkt von der konsole zu machen ? dann hat auch ein blinder die chance fehlermeldungen die in der regel auf der konsole ausgegeben werden zu lesen, und wenn das tool fertig ist, dann weiß man das weil der eingabe-prompt wieder kommt

    Comment


    • #3
      Hallo zusammen,

      ich würde gerne noch mal diese Frage von Michael aufgreifen.

      2. Frage: Kann man beim Start vom SQL-Loader das Erscheinen vom DOS-Fenster vermeinden.

      Ich habe auch das Problem, dass sich bei jedem Ladevorgang ein DOS-Fenster öffnet. Lässt sich dieses Verhalten in irgendeiner Weise konfigurieren?


      VG
      Marcus

      Comment


      • #4
        Ich habe auch das Problem, dass sich bei jedem Ladevorgang ein DOS-Fenster öffnet. Lässt sich dieses Verhalten in irgendeiner Weise konfigurieren?
        Da der sqlloader nun mal ein Kommandozeilentool ist, würd ich sagen: Nein. Windows öffnet eben eine shell wenn man es dazu auffordert. Wenn überhaupt, dann müsste man sehen, ob sich die cmd so konfigurieren lässt, dass sie nicht erscheint.

        Was mich aber interessieren würde: Wo ist da das Problem?

        Dim
        Zitat Tom Kyte:
        I have a simple philosophy when it comes to the Oracle Database: you can treat it as a black box and just stick data into it, or you can understand how it works and exploit it as a powerful computing environment.

        Comment


        • #5
          Würde da nicht eine einfache Batch reichen ?
          Code:
          sqlldr <parameter1> 
          sqlplus <anmeldung> @sql_prozedur
          sqlldr <parameter2>
          sqlplus <anmeldung> @sql_prozedur
          ...
          Das läuft streng nacheinander ab
          Ggf. können noch per ERRORLEVEL Fehler in den SQL-Teilen abgefangen werden.
          Viel Erfolg

          Comment


          • #6
            Über die WinAPI kann man auch ein Prozess versteckt starten.

            Für VB/VBA gibt es noch die Shell() Funktion mit Option die aufgerufene Anwendung zu verstecken.
            Besser ist aber auch hier die WinAPI zu benutzen. Einfach mal nach WaitShell & VBA googlen. Da gibt es ein klasse Modul mit Timeout funktion. Beim Aufruf mit Waitshell als zweiten Parameter 0 angeben, dann wird der SQLLDR nicht angezeigt.

            Gruß
            BD

            Comment

            Working...
            X