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

जांचें कि क्या पंक्ति मौजूद है

इस संस्करण में:

  SELECT COUNT(*)
    INTO isFound
    FROM MyTable
   WHERE USERNAME = userName
     AND ROWNUM = 1;

... तालिका का USERNAME कॉलम की तुलना खुद से की जा रही है, इसलिए यह हमेशा मेल खाएगा। आप इसकी तुलना स्थानीय चर से नहीं कर रहे हैं। अगर आप ऐसा करना चाहते हैं, तो आपको वेरिएबल को कॉलम में एक अलग नाम देना होगा:

declare
  isFound  NUMBER;
  localUserName VARCHAR2(30);
begin
  isFound  := 0;
  userName := 'aaaaaa';

  SELECT COUNT(*)
    INTO isFound
    FROM MyTable
   WHERE USERNAME = localUserName
     AND ROWNUM = 1;

  IF isFound > 0 THEN
    dbms_output.put_line('Found');
  ELSE
    dbms_output.put_line('Not found');
  END IF;

end;

या जैसा कि डेविड एल्ड्रिज सुझाव देते हैं, स्थानीय चर को तालिका कॉलम से अलग करने के लिए एक लेबल का उपयोग करें:

<<local>>
declare
  isFound  NUMBER;
  userName MyTable.USERNAME%TYPE;
begin
  isFound  := 0;
  userName := 'aaaaaa';

  SELECT COUNT(*)
    INTO isFound
    FROM MyTable
   WHERE USERNAME = local.userName
     AND ROWNUM = 1;
...

आप उस दृष्टिकोण का उपयोग नामित ब्लॉकों के साथ भी कर सकते हैं; यदि यह किसी फ़ंक्शन के अंदर था तो आप स्थानीय चर को function_name.variable_name के रूप में संदर्भित कर सकते हैं . चूंकि यह एक अनाम ब्लॉक है, इसलिए लेबल function_name . जैसी ही भूमिका निभाता है अनिवार्य रूप से।

दस्तावेज़ में नाम समाधान के बारे में एक अनुभाग है। ।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. .अगला JDBC डालने की समस्या

  2. Oracle SQL - मैं JSP का उपयोग करके ODCI पाइपलाइन फ़ंक्शन को कैसे कॉल कर सकता हूँ?

  3. तालिका में अंतिम और दूसरी अंतिम प्रविष्टि के मूल्यों की तुलना कैसे करें?

  4. मैं एकाधिक डेटाबेस तालिकाओं के बीच एक अद्वितीय पहचानकर्ता कैसे बनाए रख सकता हूं?

  5. ArrayList समान डेटा को पुनरावृत्त करता है