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

पीएल/एसक्यूएल एसक्यूएल*प्लस स्टेटमेंट पर ध्यान नहीं दिया गया

प्रश्न का ट्रिगर्स से कोई लेना-देना नहीं है। आपको निम्न पंक्ति में बस एक सिंटैक्स त्रुटि है:

IF :NEW.EVENT_ID AND :NEW.DESCRIPTION IS NOT NULL THEN

if कथन और तार्किक संचालक एक बूलियन व्यंजक की अपेक्षा करते हैं। पीएल/एसक्यूएल में बूलियन मानों में निहित डेटा प्रकार रूपांतरण नहीं होते हैं।

इसका अर्थ है :NEW.EVENT_ID मान्य बूलियन व्यंजक नहीं है इसलिए इसका उपयोग and . के साथ नहीं किया जा सकता है -ऑपरेटर और इसलिए संकलन विफल रहता है:

PLS-00382: expression is of wrong type

अनिवार्य रूप से आपकी समस्या को निम्न उदाहरण तक सीमित किया जा सकता है:

declare
  v_foo number;
begin
  -- compilation fails because a number (or any other non-boolean
  -- data type) is not a boolean expression.
  if v_foo
  then
    null;
  end if;
end;
/

कार्य उदाहरण (ठीक संकलित):

declare
  v_foo number;
  function to_boolean(p_x in number) return boolean is
  begin
    return p_x > 0;
  end;
begin
  -- a function returns a boolean value
  if to_boolean(v_foo)
  then
    null;
  end if;

  -- a > operator returns a boolean value
  if v_foo > 0
  then
    null;
  end if;

  -- is null operator returns a boolean value
  if v_foo is null
  then
    null;
  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. परिणाम सेट बंद करने के बाद Oracle कर्सर को नहीं हटाता है

  2. क्या Oracle की तारीख'[yyyy-mm-dd]' शाब्दिक हमेशा yyyy-mm-dd पैटर्न का उपयोग करती है?

  3. एक मेज पर एकाधिक विभाजन?

  4. Oracle प्रपत्रों में क्वेरी पर प्रदर्शन आइटम मान को पॉप्युलेट करना

  5. एक प्रक्रिया द्वारा लौटाए गए आरईएफ कर्सर से प्राप्त करें और थोक संग्रह करें