Ich bin neu in Shell-Skript. Ich schreibe einen Code für DBA-Automatisierung, in dem ich master.sql-Datei haben Deklarationen von n Anzahl von SQL. und diese sqls werden in bestimmten Ordner platziert. ich habe ein Skript, das diese Master.sql anruft und diese sqls auf einmal indirekt und Speichern in der ProtokolldateiWie sqlplus Befehl in Unix-Shell-Skript zu stoppen, wenn sql fehlschlägt
sqlplus Befehl die Ausgabe aller sqls innerhalb Master.sql erklärte einmal bei wwhat ich will Ausführung spart ist es muss die Ausführung stoppen, wenn der erste sql fehlschlägt und den Fehler mit dem spezifischen sql zurückgeben, der fehlgeschlagen ist oder nach Rollback fragen und fragen, wollen Sie fortfahren oder nicht? versucht mit sqlplus wann immer ,, sqlerror, $? nichts funktionierte
sqlplus ${USER}/${PASS}@$SID @master.sql > /home/deploy/vidya/properties/result/result.log
Nun, was ich versuche zu tun .... Ich mag die Ausführung von sqls zu stoppen, wenn eine der SQL vom Startfehlschlägt und fordert auf der Kommandozeile mit dem Fehler und geben Sie die sQL nicht
Master.sql
SET ECHO ON
@/home/deploy/vidya/properties/001_dba_demo.sql
@/home/deploy/vidya/properties/003_dba_demo1.sql
@/home/deploy/vidya/properties/002_dba_demo2.sql
@/home/deploy/vidya/properties/004_dba_demo2.sql
EXIT
mein .sh-Skript, das Master.sql Aufruf wird und seine Arbeit richtig
#!/bin/bash
echo "Enter schema Name you want to connect: "
read USER
echo "Enter password: "
read -s PASS
#echo "Enter Oracle SID for the environment you want to connect with : "
#read SID
echo "Enter Environment for the environment you want to connect with : "
read ENV
echo "Enter Oracle SID for the environment you want to connect with : "
read SID
export ORACLE_SID=${SID}
if [ $ENV == UAT ]
then
echo "Connected withh UAT ORACLE HOME:"
export ORACLE_HOME=/u01/app/oracle/product/11.2.0.4/db_1
elif [ $ENV == PROD ]
then
echo "Connected with PROD ORACLE HOME:"
export ORACLE_HOME=/u01/app/oracle/product/11.2.0.4/db_1
else
echo "Wrong Environment Entered :"
fi
export PATH=$ORACLE_HOME/bin:$PATH
echo "want to execute sql? y/n"
read yn
sqlplus ${USER}/${PASS}@$SID @master.sql > /home/deploy/vidya/properties/result/result.log
**
kann jemand helfen **
[WHEN SQLERROR] (https://docs.oracle.com/cd/B19306_01/server.102/b14357/ch12052.htm)? – 7171u