Nhờ tài liệu tham khảo do @Kacper cung cấp, tôi có thể điều chỉnh sqlplus /nolog
này với trường hợp của tôi; đây là ý tưởng:
- mở
sqlplus
chỉ mà không cần kết nối - đặt một mã trả lại cụ thể trên
SQLERROR
- đây là những gì sẽ xảy ra khiconnect
thất bại - mã trả lại có thể được thu thập như bình thường trong tập lệnh người gọi:
a.sh
sqlplus /nolog << EOF
WHENEVER SQLERROR EXIT 50
WHENEVER OSERROR EXIT 66
connect /@${MISTERY_DB}
exit;
EOF
Sau đó, cuộc gọi:
/ju $ export MISTERY_DB="eg_NON_EXISTING_DB"
/ju $ a.sh
SQL*Plus: Release 11.2.0.4.0 Production on Tue Nov 29 08:43:44 2016
Copyright (c) 1982, 2013, Oracle. All rights reserved.
SQL> SQL> SQL> ERROR:
ORA-12154: TNS:could not resolve the connect identifier specified
/ju $ echo $?
50
Cũng có liên quan: Kết nối với sqlplus trong một tập lệnh shell và chạy các tập lệnh SQL