Sybase gespeicherte Prozedur von isql unter AIX genannt: wie Return-Code zu handhaben
-
23-08-2019 - |
Frage
Ich habe einen AIX Batch-Job bekommt, die isql eine gespeicherte Prozedur in Sybase ausführen verwendet. Die gespeicherte Prozedur zurückgibt einen Fehlercode unter bestimmten Bedingungen. Ich mag für isql, dass Rückkehrcode an den AIX-Skript zu übergeben.
Kann ich erfassen die den Rückkehrcode des gespeicherten proc innerhalb isql, oder muss ich eine Ausgabedatei von einer Art zu schreiben und meine AIX-Skript, das überprüfen?
Hier ist, was der isql Befehl aussieht. Es wird in einem Korn-Shell-Skript ausgeführt wird.
isql -D$database -S$server -U$userId -P$password << EOF
EXEC MY_STORED_PROC $AN_INPUT_PARAMETER
go
EOF
Lösung
Wenn ich mich richtig erinnere, ist der $?
auf den Befehl Rückgabewert gesetzt.
Fügen Sie so etwas wie dies nach dem EOF
Zeile:
if [[ $? != 0 ]]; then
print "stored procedure failed"
exit
fi
Andere Tipps
Ist das, was Sie erreichen wollen?
isql -D$database -S$server -U$userId -P$password << EOF | grep RETVAL | awk -F"=" '{print $2}' | read value
declare @retval int
EXEC @retval = MY_STORED_PROC $AN_INPUT_PARAMETER
SELECT "RETVAL=" + convert(varchar, @retval)
go
EOF
echo "Procedure returned: $value"
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow