注:OCP-052最新题库完整详细解答版请联系小麦苗私聊。解题不易,请大家尊重原创。
A. They are automatically recompiled against the new definition of a referenced object when they are called.
B. They must be manually recompiled before they can be used if a DDL is performed on a table that is referenced in the PL/SQL object.
C. They are automatically recompiled against the new definition of a referenced object at the same time as the referenced object is modified.
D. They can be manually recompiled only by using SQL commands.
A
答案
Answer:A
失效的PL/SQL对象在下一次执行时会自动进行编译操作,排除B、C和D。
实验如下:
LHR@OCPLHR1> create table test_ddl(id number);
Table created.
LHR@OCPLHR1> create or replace procedure pro_test_ddl as begin insert into test_ddl(id) values(1);commit; end;
2 /
Procedure created.
LHR@OCPLHR1> show errors
No errors.
LHR@OCPLHR1> select status from user_objects where object_name='PRO_TEST_DDL';
STATUS
-------
VALID
LHR@OCPLHR1> alter table test_ddl add name varchar2(10);
Table altered.
LHR@OCPLHR1> select status from user_objects where object_name='PRO_TEST_DDL';
STATUS
-------
VALID
LHR@OCPLHR1> alter table test_ddl drop column id;
Table altered.
LHR@OCPLHR1> select status from user_objects where object_name='PRO_TEST_DDL';
STATUS
-------
INVALID
LHR@OCPLHR1> alter table test_ddl add id number;
Table altered.
LHR@OCPLHR1> select status from user_objects where object_name='PRO_TEST_DDL';
STATUS
-------
INVALID
LHR@OCPLHR1> exec PRO_TEST_DDL;
PL/SQL procedure successfully completed.
LHR@OCPLHR1> select status from user_objects where object_name='PRO_TEST_DDL';
STATUS
-------
VALID
About Me:小麦苗
● 本文作者:小麦苗,只专注于数据库的技术,更注重技术的运用
● 作者博客地址:http://blog.itpub.net/26736162/abstract/1/
● 本系列题目来源于作者的学习笔记,部分整理自网络,若有侵权或不当之处还请谅解
● 版权所有,欢迎分享本文,转载请保留出处
● 题目解答若有不当之处,还望各位朋友批评指正,共同进步