我有存储过程
create or replace PROCEDURE TestApi (
p_Contract IN varchar2,
p_ObjID IN INT DEFAULT 0, ------ This Question
p_Result OUT SYS_REFCURSOR
--p_Message OUT varchar2
) IS
p_Message varchar2(500);
Begin
IF p_ObjID =0 THEN p_Message:= `Null`;
ELSE p_Message:=`Not Null`;
END IF;
Open p_Result For
Select ID as "SupportListID",
p_ObjID as "ObjID"
FROM SupportList
where rownum<=5 ;
End ;
字符串
运行:
VARIABLE p_Result REFCURSOR;
EXEC PAR.TESTAPI('PPHP0001',null,:p_Result);
-- If i don't set Parameter with NUll , execute will cause an error
print p_Result;
型
测试结果:
SupportListID ObjID
------------- ---------------------------------------
107*******
107*******
107*******
107*******
107*******
型
我的问题:我用1个参数NULL
执行SP,SP可以得到DEFAULT VALUE
注:如果我使用除REFCURSOR
之外的任何类型数据,我都可以得到DEFAULT VALUE
。告诉我怎么做。我使用OracleCommandBuilder.DeriveParameters
C#
从SP Oracle获取参数
更新:我完成了,使用OracleCommand的BybindName,非常感谢大家
1条答案
按热度按时间1u4esq0p1#
只需使用命名参数并省略
p_ObjID
:字符串