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

अगर मेरे पीएलएसक्यूएल ब्लॉक में एकाधिक डीएमएल क्वेरी हैं तो मैं कुल प्रभावित पंक्तियों की गणना कैसे कर सकता हूं?

आप एक सामान्य प्रक्रिया का उपयोग करके एक सामान्य लॉगिंग तालिका में गणना लॉग कर सकते हैं।

लॉगिंग टेबल

CREATE TABLE dml_logs (
     log_id      NUMBER PRIMARY KEY,
     step        VARCHAR2(200),
     row_count   NUMBER,
     log_date    DATE
);

आईडी के लिए अनुक्रम

create sequence seq_dml_logs ;

लॉगिंग प्रक्रिया

CREATE OR REPLACE PROCEDURE log_dml (
     p_step        VARCHAR2,
     p_row_count   NUMBER,
     p_log_date    DATE
) IS
     PRAGMA autonomous_transaction;
BEGIN
     INSERT INTO dml_logs (
          log_id,
          step,
          row_count,
          log_date
     ) VALUES (
          seq_dml_logs.NEXTVAL,
          p_step,
          p_row_count,
          p_log_date
     );
     COMMIT;
END;
/

डीएमएल के साथ पीएल/एसक्यूएल ब्लॉक

DECLARE
v_step dml_logs.step%TYPE;
BEGIN

  v_step := 'cust_temp_a_update';
   UPDATE cust_temp_a SET name = 'new_val' WHERE id = 10;

 log_dml(v_step,SQL%ROWCOUNT,SYSDATE);

 v_step := 'cust_temp_b_update';
   UPDATE cust_temp_b SET name = 'new_val' WHERE id = 20;

 log_dml(v_step,SQL%ROWCOUNT,SYSDATE);
END;
/

फिर, एकत्रीकरण सरल है।

select SUM(row_count) FROM dml_logs 
where step = ? and log_date = ? -- all the required conditions.

यह बेहतर ढंग से पहचानने के लिए कि रिकॉर्ड किसी विशेष रन या बैच से संबंधित हैं, आप dml_logs में एक और कॉलम जोड़ सकते हैं batch_number called कहा जाता है . अपने डीएमएल के अद्वितीय रन की पहचान करने के लिए इस नंबर को लॉग करें और समग्र विवरण प्राप्त करने के लिए आपकी क्वेरी बहुत आसान हो जाती है।




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. _gc_fusion_compression

  2. एक पंक्ति को कई पंक्तियों में स्थानांतरित करें Oracle

  3. ओरेकल कनेक्ट बाय

  4. बाधा उल्लंघन अपवाद ORA-00001

  5. एक संग्रहीत कार्यविधि बनाए बिना Oracle में एकाधिक पंक्तियों को एक में कैसे संयोजित किया जा सकता है?