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.
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?
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.
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.