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

उस कथन के ट्रिगर के अंदर किसी कथन से प्रभावित पंक्तियों की संख्या कैसे प्राप्त करें

पंक्तियों की संख्या को ट्रैक करने के लिए वैश्विक चर का उपयोग करने का एक तरीका है क्योंकि कथन स्तर ट्रिगर से पंक्ति गणना प्राप्त करने का कोई अन्य तरीका नहीं है। फिर आपको तीन ट्रिगर्स की आवश्यकता होगी... स्टेटमेंट चलाने से पहले वेरिएबल को इनिशियलाइज़ करने के लिए एक स्टेटमेंट लेवल, प्रत्येक पंक्ति के लिए वेरिएबल में एक जोड़ने के लिए एक पंक्ति स्तर, पंक्ति गणना का उपयोग करने के लिए एक स्टेटमेंट लेवल जैसा आप चाहें। सबसे पहले, वेरिएबल को सेट करें और इसकी सहायता के लिए कुछ प्रक्रियाएँ:

create or replace package PKG_ROWCOUNT is
  NUMROWS   number;

  procedure INIT_ROWCOUNT;

  procedure ADD_ONE;

  function GET_ROWCOUNT
    return number;
end PKG_ROWCOUNT;
/

create or replace package body PKG_ROWCOUNT as
  procedure INIT_ROWCOUNT is
  begin
    NUMROWS := 0;
  end;

  procedure ADD_ONE is
  begin
    NUMROWS := Nvl(NUMROWS, 0) + 1;
  end;

  function GET_ROWCOUNT
    return number is
  begin
    return NUMROWS;
  end;
end PKG_ROWCOUNT;
/

वैरिएबल को इनिशियलाइज़ करने वाला पहला ट्रिगर:

create or replace trigger CUSTOMER_CHANGES_TRIGGER_1
  before insert or update or delete
  on CUSTOMERS
begin
  PKG_ROWCOUNT.INIT_ROWCOUNT;
end;

प्रति पंक्ति अद्यतन करने के लिए दूसरा:

PKG_ROWCOUNT.ADD_ONE;end;/ से शुरू होने वाली प्रत्येक पंक्ति के लिए CUSTOMER पर डालने या अपडेट करने या हटाने के बाद
create or replace trigger CUSTOMER_CHANGES_TRIGGER_2
  after insert or update or delete
  on CUSTOMERS
  for each row
begin
  PKG_ROWCOUNT.ADD_ONE;
end;
/

कुल प्रदर्शित करने वाला तीसरा:

create or replace trigger CUSTOMER_CHANGES_TRIGGER_3
  after insert or update or delete
  on CUSTOMERS
begin
   Dbms_output.
   PUT_LINE(PKG_ROWCOUNT.GET_ROWCOUNT || ' rows were affected.');
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 क्लाउड ब्रेकडाउन - OCI पर डेटाबेस होस्टिंग की लागत

  2. AUTONOMOUS_TRANSACTION

  3. ORA-00054:निर्दिष्ट NOWAIT के साथ संसाधन व्यस्त और अधिग्रहण

  4. क्या डेटाबेस से django मॉडल उत्पन्न करना संभव है?

  5. [01000] [unixODBC] [चालक प्रबंधक] lib '/usr/local/easysoft/oracle/InstantClient112/lib/libsqora.so' नहीं खोल सकता:फ़ाइल नहीं मिली