Sybase المخزن PROC تم استدعاؤه من Isql على AIX: كيفية التعامل مع رمز الإرجاع
-
23-08-2019 - |
سؤال
لدي وظيفة دفعة AIX تستخدم ISQL لتنفيذ إجراء مخزن في Sybase. الإجراء المخزن يعيد رمز خطأ في ظل ظروف معينة. أرغب في اجتياز رمز الإرجاع إلى البرنامج النصي AIX.
هل يمكنني التقاط رمز إرجاع Proc المخزن داخل ISQL، أو هل يجب علي كتابة ملف إخراج من نوع ما ولديك البرنامج النصي ل AIX الخاص بي؟
إليك ما يشبه الأمر ISQL. انها تعمل داخل البرنامج النصي شل كورن.
isql -D$database -S$server -U$userId -P$password << EOF
EXEC MY_STORED_PROC $AN_INPUT_PARAMETER
go
EOF
المحلول
إذا كنت أتذكر بشكل صحيح، $?
تم تعيين إلى قيمة إرجاع الأمر. أضف شيئا مثل هذا بعد EOF
خط:
if [[ $? != 0 ]]; then
print "stored procedure failed"
exit
fi
نصائح أخرى
هل هذا ما تريد تحقيقه؟
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"
لا تنتمي إلى StackOverflow