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

जांचें कि पैरामीटर WHERE क्लॉज के भीतर NULL है या नहीं

SQL कथन में ही अपनी प्रक्रिया की पैरामीटर स्थिति का मूल्यांकन करने के बजाय, उस evaulation को युक्त PL/SQL ब्लॉक में ले जाएँ ताकि इसे आदर्श SQL कथन प्रस्तुत करने से पहले केवल एक बार निष्पादित किया जा सके। उदाहरण के लिए:

CREATE OR REPLACE PROCEDURE my_sp (p_DrumNo VARCHAR2)
IS
BEGIN
    IF p_DrumNo IS NULL THEN
        SELECT ...
        INTO ... -- Assumed
        FROM ...
        WHERE my_column = p_DrumNo;
    ELSE
        SELECT ...
        INTO ... -- Assumed
        FROM ...
        WHERE ORDER_ID IN (SELECT ORDER_ID FROM ORDERDELIVERY);
    END;
END;

मुझे SQL कथनों को OR . के साथ ट्यून करने में भी कुछ सफलता मिली है UNION ALL के साथ कथन को दो परस्पर अनन्य कथनों में तोड़कर:

SELECT ...
FROM ...
WHERE p_DrumNo IS NULL
AND ORDER_ID IN (SELECT ORDER_ID FROM ORDERDELIVERY)
UNION ALL
SELECT ...
FROM ...
WHERE p_DrumNo IS NOT NULL
AND my_column = p_DrumNo;


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Ansible playbook के साथ Oracle SQL स्क्रिप्ट चलाना

  2. मेरे सारणीबद्ध रूप को गतिशील बनाना

  3. हाइबरनेट पुराने डेटा को hibernate.jdbc.batch_versioned_data के साथ सहेजता है

  4. Oracle में समर्थित प्रदेशों की सूची कैसे लौटाएं?

  5. varchar2 वर्णानुक्रम में वर्णों को क्रमबद्ध करें