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

गणना इनपुट और आउटपुट DBMS_OUTPUT के साथ PL/SQL में लर्निंग बाइंड वेरिएबल्स।PUT_LINE

वेरिएबल बाइंड करें और प्रतिस्थापन चर अलग-अलग चीजें हैं, इसलिए समस्या का शब्दांकन भ्रामक है। और यह बाइंड वेरिएबल्स का सिर्फ SQL*प्लस संस्करण है; इसका अर्थ पार्सर से थोड़ा अलग (या कम से कम कम स्पष्ट) हो सकता है।

अनिवार्य रूप से आप पीएल/एसक्यूएल चर को एसक्यूएल * प्लस प्रतिस्थापन चर के साथ भ्रमित कर रहे हैं। जब आप &d_length . का संदर्भ देते हैं आप एक प्रतिस्थापन चर परिभाषित कर रहे हैं, और उस बिंदु पर उपयोगकर्ता को इसके मूल्य के लिए संकेत दिया जाएगा। लेकिन यह d_length . से पूरी तरह से स्वतंत्र है पीएल/एसक्यूएल में DECLARE ब्लॉक करें।

आप देख सकते हैं ACCEPT कोड> ब्लॉक शुरू करने से पहले उपयोगकर्ता से मूल्य प्राप्त करने के लिए एक साफ-सुथरे तरीके के लिए कमांड, लेकिन आप इसे इस तरह भी कर सकते हैं:

SET SERVEROUTPUT ON
DECLARE
    d_length    NUMBER := &q_length;
    d_height    NUMBER := &q_height;
    d_width     NUMBER := &q_width;
    d_volume    NUMBER;
BEGIN
    DBMS_OUTPUT.PUT_LINE('The length dimension is: ' || d_length);
    DBMS_OUTPUT.PUT_LINE('The height dimension is: ' || d_height);
    DBMS_OUTPUT.PUT_LINE('The width dimension is: ' || d_width);  

    d_volume := d_length * d_height * d_width;

    DBMS_OUTPUT.PUT_LINE(
        'The rectangular prism volume for the swimming pool is: ' 
           || d_volume);

   DBMS_OUTPUT.PUT_LINE(
       'The dimensions of the swimming pool are ' || '?');
END;
/

सुनिश्चित नहीं है कि आप आउटपुट की अंतिम पंक्ति क्या दिखाना चाहते हैं; क्या यह पहले से दिखाए गए तीन आयामों से अलग है?

आप इसे VARIABLE आदेश :

SET SERVEROUTPUT ON
VARIABLE d_length NUMBER;
VARIABLE d_height NUMBER;
VARIABLE d_width NUMBER;

DECLARE 
    d_volume    NUMBER;
BEGIN
    :d_length := &q_length;
    :d_height := &q_height;
    :d_width := &q_width;

    DBMS_OUTPUT.PUT_LINE('The length dimension is: ' || :d_length);
    DBMS_OUTPUT.PUT_LINE('The height dimension is: ' || :d_height);
    DBMS_OUTPUT.PUT_LINE('The width dimension is: ' || :d_width);  

    d_volume := :d_length * :d_height * :d_width;

    DBMS_OUTPUT.PUT_LINE(
        'The rectangular prism volume for the swimming pool is: ' 
           || d_volume);

   DBMS_OUTPUT.PUT_LINE(
       'The dimensions of the swimming pool are ' || '?');
END;
/

ध्यान दें कि d_length , d_height और d_width इस संस्करण में कोलन के साथ उपसर्ग हैं, क्योंकि वे बाध्य चर हैं। लेकिन d_volume ऐसा इसलिए नहीं है क्योंकि यह अभी भी पीएल/एसक्यूएल ब्लॉक में घोषित किया गया है। और वास्तविक मान अभी भी उपयोगकर्ता से प्रतिस्थापन चर के रूप में पुनर्प्राप्त किए जा रहे हैं। हालांकि यह थोड़ा जटिल है; उन्हें बाइंड वैरिएबल बनाना वास्तव में यहाँ कुछ भी नहीं जोड़ रहा है।




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL प्रतिस्थापन चर के लिए आप अभिव्यक्ति का परिणाम कैसे निर्दिष्ट करते हैं?

  2. कनेक्शन खराब होने पर जेबॉस कनेक्शन पूल ओरेकल से फिर से कनेक्ट होने का कोई तरीका है?

  3. PLPDF_TOOLKIT PL/SQL पैकेज का उपयोग करके Oracle में एकाधिक PDF फ़ाइलों को एक PDF में मर्ज/एकीकृत करें

  4. क्रिस्टल रिपोर्ट डेटाबेस से डेटा पुनर्प्राप्त करने में विफल रही

  5. पृष्ठभूमि प्रक्रियाएं