Oracle
 sql >> डेटाबेस >  >> RDS >> Oracle

जब भी SQLERROR कभी काम नहीं करता

सामान्य स्निपेट के नीचे विचार करें:

$ cmd1 < <(cmd2) # Or cmd1 <(cmd2)
$ echo $?

यहाँ, $? cmd1 . की निकास स्थिति पर सेट है . cmd2 . की निकास स्थिति खो गया है।

आपके मामले में, sqlplus cmd2 होता है। तो, उस आदेश की निकास स्थिति $? . में कैप्चर नहीं की जाती है ।

आप इसे आजमा सकते हैं;

$ sqlplus ... | cmd1
$ status=(${PIPESTATUS[@]})
$ for i in ${status[@]}; do
>     [ $i -ne 0 ] && echo Exited with $i
> done
$ echo Exited with 0

ध्यान दें कि यदि cmd1 एक जटिल संरचना है (जैसे while read उदा.) कोई भी चीज़ जो आप उसमें चलाते हैं, जबकि लूप एक सबशेल में चलाया जाएगा और कोई भी परिवेश (चर/pwd) बदला गया खो जाएगा।




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Oracle फॉर्म / फॉर्म 6i में टाइमर बनाना और एक घड़ी प्रदर्शित करना

  2. सम्मिलित ट्रिगर पर SQL सर्वर परिवर्तन स्तंभ मान

  3. Oracle SQL क्वेरी का उपयोग करके XML में किसी विशेष नोड नाम और उसके मानों का चयन कैसे करें?

  4. Oracle:तालिका परिवर्तनशील है

  5. किसी उपयोगकर्ता को डेटाबेस की एकाधिक योजना से कैसे संबद्ध करें?