修改表结构后一定会另依赖对象失效吗?
create table wxh_tbd as select * from dba_objects;
Table created.
create or replace PROCEDURE wxh_test_tbd
2 is
3 a VARCHAR2(4000);
4 BEGIN
5 SELECT object_name INTO a FROM wxh_tbd WHERE object_id=2 and object_type='TABLE';
6 Dbms_Lock.sleep(3000);
7 END;
8 /
Procedure created.
1)新增字段,有效
alter table wxh_tbd add col1 varchar2(100);
select object_name,status
2 from dba_objects
3 where object_name='WXH_TEST_TBD';
OBJECT_NAME STATUS
------------------------------ --------------
WXH_TEST_TBD VALID
2)删除字段,但是存储过程中不包含这个字段。有效
select object_name,status
2 from dba_objects
3 where object_name='WXH_TEST_TBD';
OBJECT_NAME STATUS
------------------------------ --------------
WXH_TEST_TBD VALID
3)修改字段,存储过程中包含这个字段。无效。
alter table wxh_tbd modify object_name varchar2(300);
Table altered.
select object_name,status
2 from dba_objects
3 where object_name='WXH_TEST_TBD';
OBJECT_NAME STATUS
------------------------------ --------------
WXH_TEST_TBD INVALID
4)删除字段,存储过程中包含。无效。
alter table wxh_tbd drop column object_type;
Table altered.
select object_name,status
2 from dba_objects
3 where object_name='WXH_TEST_TBD';
OBJECT_NAME STATUS
------------------------------ --------------
WXH_TEST_TBD INVALID
create table wxh_tbd as select * from dba_objects;
Table created.
create or replace PROCEDURE wxh_test_tbd
2 is
3 a VARCHAR2(4000);
4 BEGIN
5 SELECT object_name INTO a FROM wxh_tbd WHERE object_id=2 and object_type='TABLE';
6 Dbms_Lock.sleep(3000);
7 END;
8 /
Procedure created.
1)新增字段,有效
alter table wxh_tbd add col1 varchar2(100);
select object_name,status
2 from dba_objects
3 where object_name='WXH_TEST_TBD';
OBJECT_NAME STATUS
------------------------------ --------------
WXH_TEST_TBD VALID
2)删除字段,但是存储过程中不包含这个字段。有效
select object_name,status
2 from dba_objects
3 where object_name='WXH_TEST_TBD';
OBJECT_NAME STATUS
------------------------------ --------------
WXH_TEST_TBD VALID
3)修改字段,存储过程中包含这个字段。无效。
alter table wxh_tbd modify object_name varchar2(300);
Table altered.
select object_name,status
2 from dba_objects
3 where object_name='WXH_TEST_TBD';
OBJECT_NAME STATUS
------------------------------ --------------
WXH_TEST_TBD INVALID
4)删除字段,存储过程中包含。无效。
alter table wxh_tbd drop column object_type;
Table altered.
select object_name,status
2 from dba_objects
3 where object_name='WXH_TEST_TBD';
OBJECT_NAME STATUS
------------------------------ --------------
WXH_TEST_TBD INVALID
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/22034023/viewspace-686453/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/22034023/viewspace-686453/