oracle(四)之存储过程

好久没有写存储过程啦,看看留个标记.

CREATE OR REPLACE PROCEDURE ModeTest(

p_In IN NUMBER,

p_Out OUT NUMBER,

p_inout IN OUT NUMBER)

IS

v_Local Number;

BEGIN

v_Local := p_In;

p_Out := 7;

p_InOut := 7;

END ModeTest;

/

注意: 如果在SQLPLUS里看详细的信息,show errors

In模式形参可以有默认值 DEFAULT 或者 :=

两种命名方法

名字标识法:

Test_procedure(outPara=>a,intPara=>b,inoutPara=>c);

outPara , intPara , inoutPara 为行参名字

位置标识法:

Test_procedure(a,b,c);

注意:要想直接在sqlplus运行procedure

 

Variable a number;

Variable b number;

Exec test_procedure(inpara=>100,outpara=>2);

输出结果

Print

以上命令只能用在SQLPLUS的CONSOLE

匿名块每次都编译,有名块第一次编译,以后不用。

删除PROCEDURE : drop procedure_name

 

 

一、Debug 存储过程

var rset refcursor;

exec spCLV(:rset,'01/12/2012' , 5, 31, null,null,'UNMATCHED,MATCHED,MATCHEDWITHISSUES',null,null,null,null,0,'',0,0,100);

print rset;

 

猜你喜欢

转载自ldaolong.iteye.com/blog/2123646