SQL-Aufruf aus DosBatch mit Exit?

Hallo Leute!

Habe mir heute ein kleines Batch gebastelt, in dem mehrere SQL-Files aufgerufen werden. Allerdings muss ich dann waehrend des Ablaufs des Batches jedes mal exit eingeben, damit SQL beendet wird und das Batch weiterlaeuft.

Mein Batch schaut ungefaehr so aus:

sqlplus xx/yy@zz @user.sql
sqlplus aa/bb@zz @tables.sql

Bei SQL-Aufrufen aus einem SQL-File heraus kann man das ja mit dem doppelten Klammeraffen (@@) verhindern. Leider funzt das nicht aus dem DOS-Batch heraus. Gibt’s da 'ne andere Loesung?

Danke
Ottifant

Habe mir heute ein kleines Batch gebastelt, in dem mehrere
SQL-Files aufgerufen werden. Allerdings muss ich dann waehrend
des Ablaufs des Batches jedes mal exit eingeben, damit SQL
beendet wird und das Batch weiterlaeuft.

Wie meinst du das? Muss im SQL-Skript EXIT stehen (sollte eigentlich nicht so schlimm sein) oder musst du es jedesmal zur Laufzeit eingeben?

Bei mir funktioiert Folgendes - Ich starte folgende Batchdatei(Win2k) :

svrmgrl @su.sql

und rufe somit die Datei su.sql auf:

connect / as sysdba
startup
exit

Das Ganze (man ahnt es schon) soll die DB starten. Das exit funktioniert in diesem Fall prima.

Also - was genau ist das Problem ?

Stimmt - das wichtigste habe ich vergessen!
Die SQL-Skripte, die in meinem DOS-Batch aufgerufen werden, werden automatisch von einem Generator erzeugt (den ich leider nicht beeinflussen kann). Und die enthalten keinen EXIT-Befehl am Ende! Deshalb muß ich jedes mal zur Laufzeit EXIT eintippen - und das ist lästig! *g*

Ottifant

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Die SQL-Skripte, die in meinem DOS-Batch aufgerufen werden,
werden automatisch von einem Generator erzeugt (den ich leider
nicht beeinflussen kann). Und die enthalten keinen EXIT-Befehl
am Ende! Deshalb muß ich jedes mal zur Laufzeit EXIT eintippen

  • und das ist lästig! *g*

Du könntest einfach mit DOS-Batch-Mitteln ein temporäres Skript erzeugen, dass das angefügt hat:

type script.sql >> temp.sql
echo exit; >> temp.sql
… ausführen von temp.sql …
del temp.sql

Wichtig ist das „>>“ für die Umleitung, bei „>“ überschreibt er die Datei, bei „>>“ hängt er an.

Grüße, Robert

Prima Idee - werde ich gleich nächste Woche probieren.

vielen Dank
Ottifant

Du könntest einfach mit DOS-Batch-Mitteln ein temporäres
Skript erzeugen, dass das angefügt hat:

type script.sql >> temp.sql
echo exit; >> temp.sql
… ausführen von temp.sql …
del temp.sql