Praxisbeispiel – Menügeführtes Script mittels SQLPlus realisieren
Ein menügeführtes SQLPlus Script kann mit sehr wenige Aufwand umgesetzt werden.
Zu beachten ist jedoch, das SQLPlus eine interne Grenze bei verschachtelten Aufrufen hat. Diese liegt bei 20, d.h. nach 20 Aktionen bricht das Script mit der Fehlermeldung – SP2-0309: SQL*Plus-Befehlsprozeduren erlauben Verschachtelung nur bis zur 20 Stufen – ab.
Daher sollten solche menügeführten Scripte, welche sich immer wieder selbst aufrufen, nicht unbedingt auf produktiven Umgebungen eingesetzt werden. Ich empfehle eine Umsetzung mittels Shell Scripte.
Beispiel eines menügeführten SQLPlus Scriptes
Dieses Script muss in eine Datei abgespeichert werden und dann nach erfolgreicher Anmeldung an einer Datenbank mittels SQLPlus ausgeführt werden.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 |
/*********************************************** * * Author: Karsten Besserdich * Firma: Besserdich IT Consulting * Date: 30.07.2012 * URL: http://www.besserdich.com * EMail: karsten.besserdich@besserdich.com * * SQLPlus Script zeigt ein Menue an und kann mittels * numerischer Eingabe einzelne Scripte ausführen. * Achtung: Nach 20 Aufrufen wird das Script mit * der Fehlermeldung - * SP2-0309: SQL*Plus-Befehlsprozeduren erlauben * Verschachtelung nur bis zur 20 Stufen - * abbrechen. * * Eine stabilere Lösung ist z.B. eine Umsetzung * mittels SHELL Script ************************************************/ CLEAR SCREEN SET SERVEROUTPUT ON; SET VERIFY OFF; PROMPT PROMPT ** Hauptmenue *************** PROMPT ** 1 - Statistik auslesen PROMPT ** 2 - Benutzer auflisten PROMPT ** 3 - Statistik neu berechnen PROMPT ** 4 - Hilfe PROMPT ** 5 - Beenden PROMPT ***************************** PROMPT ACCEPT scriptauswahl CHAR PROMPT "Treffen Sie Ihre Auswahl (1-5): " -- In Abhaengigkeit der ausgewaehlten Menueoption wird das -- entsprechende Script ausgefuehrt -- -- TODO: Scriptnamen anpassen und Menue ggf. erweitern column ausgewaehltes_script NEW_VALUE auszufuehrendes_script NOPRINT select case '&scriptauswahl' when '1' then 'script_01.sql' when '2' then 'script_02.sql' when '3' then 'script_03.sql' when '4' then 'hilfe.sql' when '5' then 'exit.sql' end as ausgewaehltes_script from dual; @&auszufuehrendes_script PAUSE Fortfahren mit ENTER -- Nachdem das eigntliche auszufuehrende Script ausgefuehrt wurde, -- rufe sich das Script selbst wieder auf @starte_menue.sql |
SCHREIBEN SIE EINEN KOMMENTAR