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

अगर (तालिका से गिनती (स्तंभ) चुनें)> 0 तो

आप PL/SQL एक्सप्रेशन में सीधे SQL स्टेटमेंट का उपयोग नहीं कर सकते:

SQL> begin
  2     if (select count(*) from dual) >= 1 then
  3        null;
  4     end if;
  5  end;
  6  /
        if (select count(*) from dual) >= 1 then
            *
ERROR at line 2:
ORA-06550: line 2, column 6:
PLS-00103: Encountered the symbol "SELECT" when expecting one of the following:
...
...

आपको इसके बजाय एक चर का उपयोग करना चाहिए:

SQL> set serveroutput on
SQL>
SQL> declare
  2     v_count number;
  3  begin
  4     select count(*) into v_count from dual;
  5
  6     if v_count >= 1 then
  7             dbms_output.put_line('Pass');
  8     end if;
  9  end;
 10  /
Pass

PL/SQL procedure successfully completed.

बेशक, आप पूरी बात SQL में करने में सक्षम हो सकते हैं:

update my_table
set x = y
where (select count(*) from other_table) >= 1;

यह साबित करना मुश्किल है कि कुछ संभव नहीं है। ऊपर दिए गए साधारण परीक्षण मामले के अलावा, आप IF . के सिंटैक्स आरेख को देख सकते हैं बयान; आपको SELECT दिखाई नहीं देगा किसी भी शाखा में विवरण।



  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 डाटाबेस में LIMIT क्लॉज के साथ PL/SQL बल्क कलेक्ट

  2. Oracle SQL डेवलपर में टेबल कैसे बनाएं?

  3. यदि किसी अन्य तालिका में रिकॉर्ड पाया जाता है तो तालिका से चयन करें

  4. ओरेकल में टेबल को कैसे अपडेट करें

  5. Oracle डेटाबेस बैकअप:बैकअप और बैकअप रणनीति का प्रकार