如果参数为null,Oracle无法使用值default

时间:2017-11-14 08:15:32

标签: c# oracle

我有存储过程

t2  on (t2.Location, t2.Date) = ('Location2', 'Date2');

运行:

if(data[0].USR==1)
       {
         this.navCtrl.push(DashboardPage);

       }

结果:

dashboard.html

我的问题:我使用1个参数<ion-header> <ion-navbar hideBackButton="true"> <button ion-button icon-only menuToggle> <ion-icon name="menu"></ion-icon> </button> <ion-title>dashboard..</ion-title> </ion-navbar> </ion-header> 执行SP,SP可以获得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******* 。告诉我该怎么做。我使用NULL DEFAULT VALUE从SP Oracle获取参数

更新:我说完了,使用了Oracle命令的BybindName,非常感谢大家

1 个答案:

答案 0 :(得分:3)

只需使用命名参数并省略p_ObjID

VARIABLE p_Result REFCURSOR;
EXEC PAR.TESTAPI(p_Contract => 'PPHP0001', p_Result =>:p_Result);