Powiel możliwe:
Oracle: If Table Exists
Drop table if it existsupuść tabeli w procedurze
próbuję tworzyć tę procedurę, ale pojawia się błąd.
CREATE OR REPLACE PROCEDURE SP_VEXISTABLA(NOMBRE IN VARCHAR2)
IS
CANTIDAD NUMBER(3);
BEGIN
SELECT COUNT(*) INTO CANTIDAD FROM ALL_OBJECTS WHERE OBJECT_NAME = NOMBRE;
IF (CANTIDAD >0) THEN
DROP TABLE NOMBRE;
END IF;
END;
Błąd jest:
Error (8,1): PLS-00103: Napotkano symbol "END", gdy spodziewa się jedną z następujących czynności: (przypadek zadeklarować rozpocząć zjazd dla goto jeżeli pętla mod zerowy Pragma podbicie powrót Wybierz aktualizacja natomiast z < < nadal blisko prąd kasowania sprowadzić wkładka zamka otwarty wycofywania savepoint zestaw sql wykonać commit forall scalić czystkę rury.
Czy wiesz, co robię źle?
Które narzędzie używasz do uruchomienia tego? –
Oracle SQL Developer wersja 3.2.20.09 –
Nie wolno używać instrukcji DDL ('DROP TABLE NOMBRE; w tym przypadku) wewnątrz bloku PL/SQL. Aby wykonać instrukcję DDL wewnątrz bloku PL/SQL, musiałbyś użyć dynamicznego SQL: 'wykonaj natychmiastowo 'DROP TABLE NOMBRE';' na przykład. –