sql >> Databáze >  >> RDS >> Oracle

příkaz delete nemazání záznamů

Bylo by, kdybyste to zavolali, ale bohužel ne.

Toto není problém SQL, je to logický problém. Pokud neumyjeme nádobí, zůstane špinavé. Podobně, pokud nezavoláte rutinu, která odstraní záznamy, záznamy nebudou odstraněny.

Funkci musíte zavolat v proceduře. Nejste si jisti, proč jste z toho udělali funkci, a stejně se nezkompiluje, protože nemá klauzuli RETURN. Tak to taky napravme.

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

Nyní tomu říkáme:

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;

Takže když spustíte svůj anonymní blok, stávající studenti budou smazáni a nahrazeni novými.




  1. Dotaz na optimalizaci/indexování časového pásma

  2. neplatná cesta při pokusu o zápis souboru do pl sql

  3. Kdy použít NULL v tabulkách MySQL

  4. Jak získat model obnovy databáze v SQL Server pomocí T-SQL