Default Values für Parameter in SQLPlus-Script
Ein SQLPlus-Script kann mit Parametern aufgerufen werden. Fehlt ein Parameter beim Scriptaufruf, wird im Standard der Scriptablauf unterbrochen und eine manuelle Eingabe des fehlenden Parameters durch SQLPlus erzwungen.
Wünschenswert wäre die Belegung von fehlenden Übergabeparametern mit Default Values, welche im eigentlichen Script verankert sind.
Mit dem folgenden SQLPlus-Script (Template) wird die manuelle Eingabe verhindert und stattdessen mit Default Werten (Values) belegt.
Dieses Vorgehen ist bei der Abwärtskompatiblität eines SQLPlus-Scriptes oft sehr hilfreich.
SQLPlus-Script – Default Values für fehlende Parameter
Das nachfolgende Template sollte jeden in die Lage versetzen das Grundprinzip auf seinen Anwendungsfall anzuwenden.
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 58 59 60 61 62 |
/*********************************************** * * Author: Karsten Besserdich * Firma: Besserdich & Redmann GmbH * Date: 04.11.2014 * URL: http://www.besserdich.com * EMail: karsten.besserdich@besserdich.com * * Beschreibung * Das SQLPlus Script setzt DefaultWerte für fehlende * Parameter ohne Benutzeraufforderung * * Beispiele * * sqlplus test/test @script.sql PARA1 PARA2 PARA3 * PARAMETERUEBERGABE / DEFAULTVALUES * ********************************** * * _parameter_01 <PARA1> * * _parameter_02 <PARA2> * * _parameter_03 <PARA3> * * sqlplus test/test @script.sql PARA1 * PARAMETERUEBERGABE / DEFAULTVALUES * ********************************** * * _parameter_01 <PARA1> * * _parameter_02 <DefaultWertFuerParameter02> * * _parameter_03 <DefaultWertFuerParameter03> * * sqlplus test/test @script.sql * PARAMETERUEBERGABE / DEFAULTVALUES * ********************************** * * _parameter_01 <DefaultWertFuerParameter01> * * _parameter_02 <DefaultWertFuerParameter02> * * _parameter_03 <DefaultWertFuerParameter03> * ************************************************/ SET VERIFY OFF SET TERMOUT OFF COLUMN 1 NEW_VALUE 1 COLUMN 2 NEW_VALUE 2 COLUMN 3 NEW_VALUE 3 SELECT '' "1" FROM dual WHERE ROWNUM = 0; SELECT '' "2" FROM dual WHERE ROWNUM = 0; SELECT '' "3" FROM dual WHERE ROWNUM = 0; -- Parameter werden auf interne Variablen legen DEFINE _parameter_01 = &1 "DefaultWertFuerParameter01" DEFINE _parameter_02 = &2 "DefaultWertFuerParameter02" DEFINE _parameter_03 = &3 "DefaultWertFuerParameter03" SET TERMOUT ON PROMPT PARAMETERUEBERGABE / DEFAULTVALUES PROMPT ********************************** PROMPT * _parameter_01 <&_parameter_01> PROMPT * _parameter_02 <&_parameter_02> PROMPT * _parameter_03 <&_parameter_03> PROMPT ********************************** QUIT |
1 KOMMENTAR

03
.
09
.
2015
Sehr schön, habe ich gerade dringend gebraucht, funktioniert natürlich super. Danke