我有此过程来创建一个表“圆”,并向其中插入一些半径和相应的区域,这是我的代码
create or replace procedure table1
is
BEGIN
execute immediate'drop table circle';
execute immediate'create table circle (r int, a int)';
end;
declare
r int;
ar float;
begin
for r in 3 .. 7 loop
ar:=3.14*r*r;
INSERT INTO circle VALUES(r,ar);
end loop;
execute immediate 'select * from circle';
end;
但是当我运行它时,我得到这个警告
Warning: Procedure created with compilation errors.
当我尝试查找表格时,我会得到
SQL> select * from circle;
select * from circle
*
ERROR at line 1:
ORA-00942: table or view does not exist
我的代码有什么问题?
答案 0 :(得分:1)
在上面提到的代码中,您只是在创建一个过程。在匿名块中使用表之前,还需要成功执行它。 我已经创建了您的过程here,并且该过程已成功创建。
仅当尝试执行它时,处理过程代码中不存在表圈的异常,然后执行(或调用)它。此外,您可以使用匿名块将值插入表中。
答案 1 :(得分:0)