标签:
1.how to find invalid status stored procedure and recompile them?
SELECT OBJECT_NAME , status FROM user_objects WHERE OBJECT_TYPE = ‘PROCEDURE‘;
Alter procedure schme.procedurename compile;
缺少练习的学习不是完整的学习,练习才是学习,总结才有思考。
SELECT OBJECT_NAME , STATUS FROM USER_OBJECTS WHERE OBJECT_TYPE = ‘PROCEDURE‘;
---sample table test(id integer,name varchar2)
CREATE OR REPLACE PROCEDURE testsp(v_msg VARCHAR2)
AS
BEGIN
DBMS_OUTPUT.PUT_LINE(v_msg);
END testsp;
ALTER PROCEDURE TESTSP COMPILE;
SET SERVEROUTPUT ON;
EXEC testsp(‘oracle stored procedure‘);
EXEC testsp(‘hua xiao yao‘);
CREATE OR REPLACE PROCEDURE procOneOutPara(v_msg VARCHAR2,v_out_p OUT varchar2)
AS
BEGIN
DBMS_OUTPUT.PUT_LINE(v_msg);
v_out_p :=‘execute success‘;
END procOneOutPara;
declare
v_out_msg varchar2(100);
begin
procOneOutPara(‘hello java‘,v_out_msg);
dbms_output.put_line(v_out_msg);
end;
CREATE OR REPLACE procedure procCursorReturn(v_id in integer ,outCursor OUT SYS_REFCURSOR )
AS
BEGIN
open outCursor for
select * from test where id = v_id;
exception
when others then
dbms_output.put_line(‘errors occurs‘);
rollback;
END procCursorReturn;
DECLARE
testCursor SYS_REFCURSOR;
mytest test%ROWTYPE;
BEGIN
procCursorReturn(5,testCursor);
LOOP
FETCH testCursor INTO mytest;
EXIT WHEN testCursor%NOTFOUND;
dbms_output.put_line(mytest.name);
END LOOP;
CLOSE testCursor;
END;
标签:
原文地址:http://www.cnblogs.com/huaxiaoyao/p/4295127.html