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

शेल स्क्रिप्ट के माध्यम से संग्रहीत कार्यविधि के परिणाम को कैसे कैप्चर करें?

शेल स्क्रिप्ट में अनाम ब्लॉक का संस्करण दिखाए गए अनुसार निष्पादित नहीं किया जाएगा, क्योंकि आपके पास इसे चलाने के लिए ब्लॉक के बाद एक स्लैश . यदि आप इसे चलाते हैं तो आपको कोई आउटपुट नहीं मिलता है। अगर आप इसे स्लैश करने के लिए बदलते हैं:

sqlplus -silent [email protected] <<EOF
set serveroutput on
declare
  DE_REC_COUNT number(10);
begin
    DE_DUP_PROC ('T_MCL_30404_20150317_020','MCL','30404','FT',DE_REC_COUNT);
end;
/
EOF

तब आप देखेंगे:

0

PL/SQL procedure successfully completed.

आपने बिना स्लैश के भी SQL*Plus में इंटरेक्टिव संस्करण दिखाया है, लेकिन आपके द्वारा दिखाए गए आउटपुट को देखने के लिए आपके पास वह होना चाहिए।

यदि आप शून्य चाहते हैं - जो एक dbms_output . से आता हुआ प्रतीत होता है अपनी प्रक्रिया में कॉल करें, बजाय सीधे अपने अनाम ब्लॉक से - n एक शेल चर जिसे आप बाद में संदर्भित कर सकते हैं, आप हेरेडोक के आउटपुट को एक चर के लिए असाइन कर सकते हैं:

MY_VAR=`sqlplus -silent [email protected] <<EOF
set serveroutput on
set feedback off
declare

DE_REC_COUNT number(10);
begin
    DE_DUP_PROC ('T_MCL_30404_20150317_020','MCL','30404','FT',DE_REC_COUNT);
end;
/

EOF`

printf "Got back MY_VAR as %s\n" ${MY_VAR}

ध्यान दें कि मैंने set feedback off जोड़ा है इसलिए आपको PL/SQL procedure successfully completed . दिखाई नहीं दे रही है रेखा। अब जब आप दौड़ेंगे तो आप देखेंगे:

Got back MY_VAR as 0

और आप ${MY_VAR} . के साथ जो कुछ भी करना चाहते हैं वह कर सकते हैं . हालांकि यह निर्भर करता है कि 'कैप्चर' से आपका क्या मतलब है।



  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 में अस्थायी डेटा के लिए प्रदर्शन विचार

  2. पीएल/एसक्यूएल में एक कॉलम पर पुनरावृति

  3. DB2 और Oracle परिप्रेक्ष्य से CLOB और BLOB के बीच अंतर?

  4. cx_Oracle और अपवाद हैंडलिंग - अच्छे अभ्यास?

  5. ORA-12505, TNS:श्रोता वर्तमान में कनेक्ट des . में दिए गए SID के बारे में नहीं जानता है