程序抛出编译时错误 oracle
Procedure is throwing compile time error oracle
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;
谢谢
您不能在过程中直接 运行 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;
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;
谢谢
您不能在过程中直接 运行 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;