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

रिकॉर्ड हटाएं नहीं बयान हटाएं

यदि आप इसे कॉल करते तो ऐसा होता, लेकिन अफसोस कि आप ऐसा नहीं करते।

यह एक SQL समस्या नहीं है, यह एक तर्क समस्या है। अगर हम धुलाई नहीं करते हैं तो बर्तन गंदे रहते हैं। इसी तरह यदि आप रिकॉर्ड्स को मिटाने वाले रूटीन को कॉल नहीं करते हैं तो रिकॉर्ड्स डिलीट नहीं होते हैं।

आपको प्रक्रिया में फ़ंक्शन को कॉल करने की आवश्यकता है। सुनिश्चित नहीं है कि आपने इसे एक फ़ंक्शन क्यों बनाया है, और यह वैसे भी संकलित नहीं होगा, क्योंकि इसमें रिटर्न क्लॉज नहीं है। तो चलिए इसे भी ठीक करते हैं।

CREATE OR REPLACE FUNCTION DELETE_ALL_STUDENTS RETURN NUMBER AS
BEGIN
    DELETE FROM STUDENTS;
    return sql%rowcount; -- how many rows were deleted
END;
/

अब हम इसे कहते हैं:

create or replace PROCEDURE DELETE_ALL_STUDENTS_VIASQLDEV AS
    n number;  
BEGIN
    dbms_output.put_line('--------------------------------------------');
    dbms_output.put_line('Deleting all student rows');
    n := DELETE_ALL_STUDENTS;
    dbms_output.put_line('No of students deleted = '|| to_char(n));
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. PostgreSQL - उद्धरणों के बिना क्वेरी सिंटैक्स

  2. डिफ़ॉल्ट मानों के साथ oracle sql कुल कार्य

  3. ora_hash को कैसे कार्यान्वित करें (बीज योग्य हैश जो किसी भी sql डेटाटाइप को n बकेट में विभाजित करता है)

  4. आकाशवाणी। एलडीएपी के साथ प्रमाणीकरण हमेशा रिटर्न -16

  5. Oracle 21c को SQL सर्वर से कनेक्ट करना