Sybase المخزن PROC تم استدعاؤه من Isql على AIX: كيفية التعامل مع رمز الإرجاع

StackOverflow https://stackoverflow.com/questions/888066

سؤال

لدي وظيفة دفعة 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"
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top