程序正在抛出编译时错误oracle

时间:2017-08-08 06:05:36

标签: oracle oracle11g oracle-sqldeveloper

oracle的新功能,在编写程序时遇到编译时错误,所以任何人都可以帮我纠正错误。

代码段:

Create or replace Procedure prc_DropUselessTables(userID number:=0)
as
ncount number:=0;
Begin

Select count(*) from User_Tables where table_name='DummyTable';

if(ncount>0) then

Drop table DummyTable;----Error Line

end if;

end prc_DropUselessTables;

由于

1 个答案:

答案 0 :(得分:0)

您无法在过程中直接运行DDL。您需要使用EXECUTE IMMEDIATE

CREATE OR REPLACE PROCEDURE prc_DropUselessTables (userID NUMBER := 0)
AS
   ncount   NUMBER := 0;
BEGIN
   SELECT COUNT (*)
     INTO NCOUNT
     FROM User_Tables
    WHERE table_name = 'DummyTable';

   IF (ncount > 0)
   THEN
      EXECUTE IMMEDIATE 'Drop table DummyTable';
   END IF;
END prc_DropUselessTables;
相关问题