Wie verwende ich sql * plus im Windows-Befehlsskript, um den Fluss zu steuern?

8

Ich versuche, sql * plus zu verwenden, um ein kleines Windows-Befehlsskript zu steuern.

Grundsätzlich möchte ich etwas PL / SQL ausführen (vielleicht aus einer Ansicht oder Tabelle auswählen oder eine Funktion ausführen), die mir den Status einiger Zeilen in der Datenbank anzeigt, und dann, abhängig vom Zustand der Zeilen, einige ausführen Windows-Befehle.

Mein Problem ist, wie man die Ergebnisse in das Befehlsskript zurückbringt.

%Vor%     
Cade Roux 07.05.2012, 16:13
quelle

6 Antworten

5

Das habe ich am Ende benutzt.

Mein .cmd-Skript:

%Vor%

Wo script.sql:

%Vor%     
Cade Roux 24.07.2012, 21:43
quelle
7

Ich würde wahrscheinlich das Skript (oder die Bedingung, abhängig von den Anforderungen) aus dem aufgerufenen script.sql selbst schreiben.

Beispielsweise erstellt das folgende script.sql eine .bat-Datei windows_commands.bat :

%Vor%

Sie können dann script.sql von einer anderen .bat-Datei wie folgt aufrufen:

%Vor%     
René Nyffenegger 08.05.2012 07:15
quelle
3

Ich möchte Sie dazu ermutigen, nicht BAT-Dateien zu verwenden. Sie haben viele andere Alternativen: C / C ++ oder VB, Windows-Scripting oder Powershell oder sogar kostenlose Downloads wie Perl oder Bash .

Aber hier ist ein Beispiel für die Rückgabe von Fehlercodes in .bat-Dateien:

Aber sehen Sie sich bitte einige der oben angegebenen Links an. Durch die Vermeidung von .bat-Dateien wird es für Sie einfacher und die Pflege in Zukunft einfacher.

IMHO ...

    
paulsm4 07.05.2012 16:25
quelle
2

Ich mache so etwas, indem ich eine .bat-Datei erstelle, die den Windows-Kram erledigt und nach Bedarf SQL-Skripte aufruft. Verwenden Sie SQL, um Ihre Ergebnisse zu einer Textdatei zu spoolen, die Sie lesen können.

  

... dos Befehle hier

     

sqlplus / nolog @C: \ Dump \ DropRecreateUsers.sql

     

sqlplus / nolog @C: \ Dump \ Cleanup.sql

     

... DOS-Befehle

In der SQL verwenden Sie diesen Befehl spool C: \ yourResults.txt oder für anspruchsvollere Anwendungen erstellen Sie eine Prozedur, die, wenn sie aufgerufen wird, schreibt die Ergebnisse in eine Textdatei mit UTL_FILE

    
kevinsky 07.05.2012 16:20
quelle
1

Ich empfehle Ihnen, sich die beiden Skripts anzusehen, die zum Sichern und Wiederherstellen in Oracle XE enthalten sind. Diese Skripte haben mir eine Menge beigebracht, wie man mit Batch-Scripting und Oracle auf der Windows-Plattform umgehen kann.

  • C: \ oraclexe \ app \ oracle \ produkt \ 11.2.0 \ server \ bin \ Backup.bat
  • C: \ oraclexe \ app \ oracle \ produkt \ 11.2.0 \ server \ bin \ Restore.bat
Bjarte Brandt 08.05.2012 06:55
quelle
0

Verbunden mit: Oracle Database 11g Enterprise Edition Version 11.2.0.1.0 - 64-Bit-Produktion Mit den Optionen Partitionierung, OLAP, Data Mining und Real Application Testing

%Vor%     
Rizwan Basheer 24.11.2015 09:13
quelle