У вас есть двойные кавычки вокруг имени вашей таблицы "LEADS_DELETED" должно быть "LEADS_DELETED".
Я бы также обернул имя таблицы в вашем запросе тоже UPPER (table_name).
Вытакже необходимо поместить команду DROP TABLE в оболочку EXECUTE IMMEDIATE.
Вы также объявляете свою переменную в месте wrog, ее необходимо объявить перед предложением BEGIN.
CREATE OR REPLACE
FUNCTION TABLE_EXISTS(name VARCHAR(50))
RETURNS BOOLEAN
AS
counttable INTEGER;
BEGIN
SELECT COUNT(1)
INTO counttable
FROM USER_TABLES
WHERE TABLE_NAME=UPPER(name);
if counttable=0
then
return false
else
return true
end if;
END;
/
-- I suggest you use a bind variable instead of the literal table name.
IF TABLE_EXISTS('LEADS_DELETED')
THEN
EXECUTE IMMEDIATE 'DROP TABLE LEADS_DELETED';
END IF;
/
-- Could be
IF table_exists(v_table_name)
THEN
EXECUTE IMMEDIATE 'DROP TABLE :tablename'
USING v_table_name;
END IF;