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

एसक्यूएल प्लस में एक से अधिक पंक्तियों के साथ बाइंड वैरिएबल का उपयोग करना?

@ ग्लेन के दृष्टिकोण के समान, लेकिन आप SQL * प्लस में एक बाइंड वैरिएबल घोषित कर सकते हैं और इसे एक सादे SQL क्वेरी में उपयोग कर सकते हैं। पहले इसे var[iable]<के साथ घोषित करें /कोड> आदेश:

variable comment_id number;

फिर इसे exec[ute]<के साथ सेट करें /कोड> कमांड, जो अनिवार्य रूप से एक अनाम ब्लॉक है:

execute :comment_id := 3052753;

फिर अपनी मूल क्वेरी :comment_id . के साथ चलाएँ संदर्भ, और कोई BEGIN . नहीं या END :

select e.label as doc_name,
                       e.url,
                       i.item_id,
                       'multi' as form_type
                from cr_items i, cr_extlinks e
                where i.parent_id = :comment_id
                and e.extlink_id = i.item_id
               UNION
                select null as doc_name,
                       utl_raw.cast_to_varchar2(DBMS_LOB.SUBSTR(r.content, 2000, 1))  as url,
                       r.item_id,
                       'single' as form_type
                from cr_revisions r
                where r.revision_id = ( select content_item.get_latest_revision(:comment_id) from dual);

मुझे नहीं लगता कि व्यक्तिगत वरीयता से परे दो दृष्टिकोणों के बीच बहुत कार्यात्मक अंतर है, और दोनों SQL डेवलपर में भी काम करते हैं (जब एक स्क्रिप्ट के रूप में चलाया जाता है)। मुझे यह आसान लगता है जब SQL को एक प्रो*सी फ़ाइल से कॉपी किया जाता है जो पहले से ही : . का उपयोग करती है बाइंड फॉर्म, विशुद्ध रूप से क्योंकि आपको कोड को बिल्कुल भी संशोधित करने की आवश्यकता नहीं है।

संयोग से, आप लिख सकते हैं:

where r.revision_id = ( select content_item.get_latest_revision(:comment_id) from dual)

बिना अतिरिक्त चुनें , के रूप में:

where r.revision_id = content_item.get_latest_revision(:comment_id)


  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 11g को पूरी तरह से अनइंस्टॉल कैसे कर सकता हूं?

  2. ऑरैकल का उपयोग करके अपडेट किए जाने वाले कॉलम की संख्या को कैसे प्रतिबंधित करें?

  3. क्या कर्सर के अंदर रिकॉर्ड प्रकार को कॉल करना संभव है?

  4. एसक्यूएल क्वेरी पीएल/एसक्यूएल में काम करती है लेकिन विजुअल स्टूडियो में नहीं

  5. आप सहयोगी, संस्करण-नियंत्रित वातावरण में Oracle पैकेज पर कैसे काम करते हैं?

© कॉपीराइट http://hi.sqldat.com सर्वाधिकार सुरक्षित