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

वास्तविक डेटा प्राप्त करने का प्रयास कर रहा है जो अपवाद का कारण बनता है

सुनिश्चित नहीं है कि वास्तव में आपकी क्वेरी का उत्तर दिया गया है, लेकिन आप अपने मामले में अपवाद सरणी की सामग्री को प्रदर्शित करने के लिए अपवाद ब्लॉक में लूप वैरिएबल i का उपयोग कर सकते हैं। एक उदाहरण प्रक्रिया के नीचे देखें:

CREATE OR REPLACE PROCEDURE PROC1 (V_EMP_ID DBMS_SQL.NUMBER_TABLE)
IS
     lv_error_string VARCHAR2(4000);
BEGIN
    FORALL INDX IN V_EMP_ID.FIRST..V_EMP_ID.LAST SAVE EXCEPTIONS
    UPDATE EMPLOYEES 
     ---trying to rasie an exception by using a calculation
    SET SALARY=SALARY * 99999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999
    WHERE ID_E= V_EMP_ID(INDX);

EXCEPTION
    WHEN OTHERS 
    THEN
    FOR i IN 1 .. SQL%BULK_EXCEPTIONS.COUNT
    LOOP
        ---Am printing the value of the exception array.
        dbms_output.put_line('exception Raised for record' ||V_EMP_ID(i));           

    END LOOP;
END;
/

आउटपुट:

SQL> DECLARE
     empid   DBMS_SQL.NUMBER_TABLE;
    BEGIN
     empid (1) := 1;
     empid (2) := 9;

     PROC1 (empid);
   END;  

/
exception Raised for record  1

PL/SQL procedure successfully completed.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. GIMR . के माध्यम से एक यात्रा

  2. Oracle में एक चर घोषित और प्रदर्शित कैसे करें

  3. जब मैं एक दिनांक कॉलम के लिए java.sql.Timestamp पास करता हूं तो Oracle इतना धीमा क्यों होता है?

  4. ओरेकल पीएल/एसक्यूएल में एचटीएमएल इकाइयों में <,>, और और वर्णों से कैसे बचें

  5. Oracle में एकाधिक पंक्तियाँ सम्मिलित करना