执行存储过程以删除表时出错

时间:2015-12-04 12:51:27

标签: oracle stored-procedures plsql

执行删除表的存储过程时出错。

我已成功编译过程(使用动态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选项”
  *原因:
  *行动:

感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

在删除表的末尾添加一个空格。

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