Hallo zusammen,
ich bin neu in diesem Bereich und hoffe hier bei euch etwas Hilfe zu finden.
Ich muss ein Shell Skript anpassen, welches von einem anderen Shell Skript zwei Parameter übergeben bekommt. Anschließend meldet er sich bei der Oracle Datenbank an und führt einige SQL Skripte aus. Vor dem Ausführen der Skripte werden die beiden Parameter als Bindvariablen in Oracle hinterlegt.
Jetzt kommt mein kleines Problem: Bei einem SQL Skript muss eine Fallunterscheidung eingebaut werden. Er soll nur dann ausgeführt werden, wenn der Parameter2 einen bestimmten Wert (AKT) übergeben bekommen hat. Ansonsten soll er nicht ausgeführt werden.
Das Skript sieht im Moment in etwa so aus:
P1=$3
P2=$4
sqlplus -s $1@$2 <<EOF 1>>$LOGDIR/$SessLogFile 2>&1
define date = $P1
define p_name = $P2
@"SQL_Skript1.sql"
@"SQL_Skript2.sql"
@"SQL_Skript3.sql"
exit
EOF
Ich habe mir überlegt die IF-Anweisung vor der Anmeldung in SQLPlus zu machen. D.h. mein Skript würde in etwa so aussehen:
P1=$3
P2=$4
IF [$P2 == AKT]
THEN
sqlplus -s $1@$2 <<EOF 1>>$LOGDIR/$SessLogFile 2>&1
define date = $P1
define p_name = $P2
@"SQL_Skript1.sql"
@"SQL_Skript2.sql"
@"SQL_Skript3.sql"
exit
ELSE
sqlplus -s $1@$2 <<EOF 1>>$LOGDIR/$SessLogFile 2>&1
define date = $P1
define p_name = $P2
@"SQL_Skript2.sql"
@"SQL_Skript3.sql"
exit
FI
EOF
Leider scheint das Skript bei mir die IF - Anweisung zu ignorieren. Ich würde mich über Hinweise freuen.
Danke und viele Grüße,
Dietmar