【发布时间】:2021-08-25 05:55:28
【问题描述】:
当试图改变一个表时,只有选择语句的过程之一变得无效。 表格脚本:
create table t1(a number,b number);
create or replace procedure p1
is
x number;
y number;
begin
select a,b into x,y from t1;
end;
/
create or replace procedure p2(i number)
is
x number;
y number;
begin
select a,b into x,y from t1 where i=1;
end;
/
alter table t1 add (d number);
select object_name,status from dba_objects where object_name in ('T','P1','P2');
T VALID
P1 VALID
P2 INVALID
观察到,当过程接受参数时,如果我们在 select 语句中使用它,对象就会变得无效,否则它不会变得无效。
是否可以在程序无效的情况下更改表?
【问题讨论】:
-
this 有帮助吗?
标签: oracle stored-procedures plsql compilation