này nên giải quyết vấn đề:
- bất cứ khi nào SQLERROR EXIT SQL.SQLCODE
- ống chỉ $ {SPOOL_FILE}
- $ RC trả lại mã thoát của oracle
- mèo từ $ SPOOL_FILE giải thích lỗi
SPOOL_FILE=${LOG_DIR}/${LOG_FILE_NAME}.spool
SQLPLUS_OUTPUT=`sqlplus -s "$SFDC_WE_CORE" <<EOF
SET HEAD OFF
SET AUTOPRINT OFF
SET TERMOUT OFF
SET SERVEROUTPUT ON
SPOOL ${SPOOL_FILE}
WHENEVER SQLERROR EXIT SQL.SQLCODE
DECLARE
BEGIN
foooo
--rollback;
END;
/
EOF`
RC=$?
if [[ $RC != 0 ]] ; then
echo " RDBMS exit code : $RC " | tee -a ${LOG_FILE}
cat ${SPOOL_FILE} | tee -a ${LOG_FILE}
cat ${LOG_FILE} | mail -s "Script ${INIT_EXE} failed on $SFDC_ENV" $SUPPORT_LIST
exit 3
fi
Nguồn
2014-07-15 11:48:23
Đây là khủng khiếp không an toàn, như bất cứ ai có thể xem mật khẩu trong khi "sqlplus" đang chạy bằng cách sử dụng "ps" lệnh. – JPaget
Xin chào @ NetBear, tôi nghĩ bạn cần phải thực hiện 'sqlplus -s admin/password @ server' (phần' @ server' là bộ xử lý giao dịch trong trường hợp của tôi). – sturmer