sql >> Database teknologi >  >> RDS >> Oracle

Hvordan man bruger kommandoer som DROP TABLE etc. i en lagret 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;

EXECUTE IMMEDIATE sætning udfører en dynamisk SQL-sætning eller anonym PL/SQL-blok, inden for en PL/SQL-blok eller Stored Procedure eller Package. Dette bruges mere specifikt, hvis du har brug for at køre DDL-sætninger som DROP , CREATE TABLE osv. Du kan ikke udføre DDL-kommandoer fra PL/SQL som DML-sætninger, så den eneste måde er dynamisk SQL. Mere info her og her .




  1. Databasebevidst belastningsbalancering:Sådan migreres fra HAProxy til ProxySQL

  2. Hvordan gør man ækvivalent af grænse distinkt?

  3. Sådan fjerner du uønskede ledende tegn fra en streng i MySQL

  4. MySQL bruger ikke indeks til ORDER BY