2015-12-04 3 views
0

Ошибка при выполнении хранимой процедуры, которая удаляет таблицу.Ошибка при выполнении хранимой процедуры для удаления таблицы

Я успешно скомпилировал процедуру (используется динамический SQL для кода). Инструмент, используемый SQL Developer.

CREATE OR REPLACE PROCEDURE sp_DROP(P_VAR IN VARCHAR2) 
IS 
BEGIN 
    EXECUTE IMMEDIATE 'DROP TABLE'||P_VAR; -- passing table via parameter 
END; 

, но я получаю сообщение об ошибке при выполнении этой процедуры:

EXECUTE sp_DROP('CON1'); -- i have made sure CON1 is a legit table. 

Ошибка:

ORA-00950: недопустимая опция DROP
ORA-06512: на «HR. SP_DROP ", строка 4
ORA-06512: по строке 3
00950. 00000 -" недействительный вариант DROP "
* Причина:
* Действие:

Спасибо за помощь.

+5

Вы включаете пробел в начале 'P_VAR'? в противном случае вам не хватает одного, поскольку после '' DROP TABLE '' – SomeJavaGuy

+0

нет, это было пустое пространство. Спасибо за помощь. –

+0

Запустите запрос, выберите * из dba_objects, где object_name = '' и поделитесь результатами. –

ответ

1

Добавить место до конца таблицы падения.

CREATE OR REPLACE PROCEDURE sp_DROP(P_VAR IN VARCHAR2) 
IS 
BEGIN 
    EXECUTE IMMEDIATE 'DROP TABLE '||P_VAR; -- passing table via parameter 
END; 
Смежные вопросы