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

IF ELSE स्टेटमेंट जोड़ें

एक शुरुआत के रूप में इस तरह के सिंटैक्स मुद्दे से निपटने के तरीके के बारे में, मेरा सुझाव है कि आप इसे सबसे छोटे संभव उदाहरण तक सरल बनाने का अभ्यास करें, ताकि आप शामिल होने के तर्क से विचलित न हों।

उदाहरण के लिए, आप जल्दी से इसका परीक्षण कर सकते हैं और देख सकते हैं कि यह काम नहीं करेगा :

declare
    rc sys_refcursor;
begin
    open rc for
        case
            when 1 = 1 then select * from dual  -- not valid
        end;
end;

जो विफल हो जाता है

ORA-06550: line 6, column 29:
PLS-00103: Encountered the symbol "SELECT" when expecting one of the following: ...

क्योंकि open rc for select सिंटैक्स को एक ही कथन होना चाहिए और इसे सशर्त तर्क के साथ विभाजित नहीं किया जा सकता है।

ध्यान दें कि कैसे कोई create function नहीं है , पैरामीटर या जॉइन आदि चीजों को जटिल बनाने के लिए। सिंटैक्स को सीधा करने के बाद आप उन सभी को वापस जोड़ सकते हैं। case स्टेटमेंट सिंटैक्स यहां . (ध्यान दें कि case . के दो अलग-अलग प्रकार हैं ।) इसे या तो होना चाहिए

declare
    rc sys_refcursor;
begin
    case
        when 1 = 1 then
            open rc for select * from dual;
    end case;
end;

या समकक्ष if . का उपयोग करके :

declare
    rc sys_refcursor;
begin
    if 1 = 1 then
        open rc for select * from dual;
    end if;
end;


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. सूची डेटा प्रयोग करने योग्य प्रारूप में?

  2. ऑरैकल में क्वेरी के बाहर आईडी से मेल खाने वाले स्थान का चयन करने के लिए तालिका सेट कॉलम को अपडेट करें

  3. Oracle में, मैं किसी वस्तु प्रकार पदानुक्रम से प्रयुक्त वस्तु प्रकार को कैसे सत्यापित करूं?

  4. Oracle D2k फ़ॉर्म में PLSQL कोड प्रदर्शन को ट्यून या टेस्ट कैसे करें

  5. Oracle SQL अपडेट स्टेटमेंट किस क्रम में कॉलम मान बदलता है?