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;
由于
答案 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;