Oracle
 sql >> Teknologi Basis Data >  >> RDS >> Oracle

hapus pernyataan tidak menghapus catatan

Itu akan terjadi jika Anda memanggilnya, tetapi sayangnya Anda tidak melakukannya.

Ini bukan masalah SQL, ini masalah logika. Jika kita tidak mencuci piring, piring akan tetap kotor. Demikian pula jika Anda tidak memanggil rutin yang menghapus catatan, catatan tidak akan dihapus.

Anda perlu memanggil fungsi dalam prosedur. Tidak yakin mengapa Anda menjadikannya fungsi, dan itu tidak akan dikompilasi, karena tidak memiliki klausa RETURN. Jadi, mari kita perbaiki juga.

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

Sekarang kami menyebutnya:

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;

Jadi, ketika Anda menjalankan blok anonim Anda, siswa yang ada akan dihapus dan diganti dengan yang baru.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. kesalahan kata kunci yang hilang di oracle CASE WHEN pernyataan sql

  2. ORA-19011:Buffer string karakter terlalu kecil

  3. Oracle:mengekspor tabel dengan gumpalan ke file .sql yang dapat diimpor lagi

  4. ORA-14551:tidak dapat melakukan operasi DML di dalam kueri

  5. Parsing XML dengan ruang nama yang tidak dikenal di Oracle SQL