sql >> Database >  >> RDS >> Oracle

Hoe commando's zoals DROP TABLE enz. te gebruiken binnen een opgeslagen procedure?

CREATE OR REPLACE PROCEDURE proc_name AS
BEGIN
EXECUTE IMMEDIATE 'DROP TABLE SQL2005TEST.ABSENCEFULLDATADIFF_YESTERDAY';
.....
EXECUTE IMMEDIATE 'CREATE TABLE SQL2005TEST.ABSENCELATESTEND_YESTERDAY
                       AS SELECT * FROM SQL2005TEST.ABSENCELATESTEND';
....
....
EXCEPTION
  ....
  ....
END;

De EXECUTE IMMEDIATE statement voert een dynamische SQL-instructie of anoniem PL/SQL-blok uit, binnen een PL/SQL-blok, of Stored Procedure of Package. Dit wordt meer specifiek gebruikt als u DDL-instructies zoals DROP . moet uitvoeren , CREATE TABLE enz. U kunt geen DDL-commando's uitvoeren vanuit PL/SQL als DML-statements, dus de enige manier is dynamische SQL. Meer info hier en hier .




  1. De voorlaatste rij nemen met slechts één selectie in SQL Server?

  2. Wat betekent Overhead in MySQL, wat is er slecht aan en hoe los je het op?

  3. SQL-query die alle datums retourneert die niet in een tabel worden gebruikt

  4. Uitzondering ORA-08103:object bestaat niet meer bij gebruik van setfetchsize van Hibernate