您的位置:首页 > 其它

OCP 1Z0 052 59

2014-06-13 10:10 197 查看
59. In your database, the current status of a PL/SQL procedure has become INVALID. Which action

would fix the problem and make the PL/SQL procedure usable?

A.Recompile the PL/SQL procedure.

B.Modify the procedure to run with a definer's right.

C.Modify the procedure to run with an invoker's right.

D.Grant the EXECUTE privilege on the PL/SQL procedure to PUBLIC.

Answer: A

proc失效,重新编译就可以了。

在调用该失效的proc时,也会自动编译。

SESSION2> CREATE OR REPLACE PROCEDURE p_test AS
2    v_count INT;
3  BEGIN
4    SELECT COUNT(*) INTO v_count FROM emp2;
5    dbms_output.put_line(v_count);
6  END;
7  /
Procedure created

SESSION2> SELECT O.status FROM USER_OBJECTS O WHERE O.OBJECT_NAME = UPPER('p_test');
STATUS
-------
VALID
1 row selected

SESSION2> DROP TABLE EMP2 PURGE;
Table dropped

SESSION2> CREATE TABLE EMP2 AS SELECT * FROM EMP;
Table created

SESSION2> SELECT O.status FROM USER_OBJECTS O WHERE O.OBJECT_NAME = UPPER('p_test');
STATUS
-------
INVALID
1 row selected

SESSION2> SET SERVEROUTPUT ON
SESSION2> EXEC p_test;
19
PL/SQL procedure successfully completed

SESSION2> SELECT O.status FROM USER_OBJECTS O WHERE O.OBJECT_NAME = UPPER('p_test');
STATUS
-------
VALID
1 row selected
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: