Drop a table in a procedure
oracle, oracle11g, plsql
Solution
you'd need to change your procedure to:
CREATE OR REPLACE PROCEDURE SP_VEXISTABLA(NOMBRE IN VARCHAR2)
IS
CANTIDAD NUMBER(3);
BEGIN
SELECT COUNT(*) INTO CANTIDAD FROM USER_TABLES WHERE TABLE_NAME = NOMBRE;
IF (CANTIDAD >0) THEN
execute immediate 'DROP TABLE ' || NOMBRE;
END IF;
END;
Problem
Possible Duplicate: Oracle: If Table Exists Drop table if it exists I'm trying to create this procedure but I get an error. ``` 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; ``` The error is: Error(8,1): PLS-00103: Encountered the symbol "END" when expecting one of the following: ( begin case declare exit for goto if loop mod null pragma raise return select update while with << continue close current delete fetch lock insert open rollback savepoint set sql execute commit forall merge pipe purge. Do you know what am I doing wrong?