比如一个存储过程的参数是按如下定义的
TEST_PRO(
para1 IN VARCHAR2,
para2 IN VARCHAR2,
para3 IN VARCHAR2,
para4 IN VARCHAR2,
para5 IN VARCHAR2 DEFAULT '参数5',
para6 IN VARCHAR2 DEFAULT '参数6',
para7 IN VARCHAR2 DEFAULT '参数7',
para8 IN VARCHAR2 DEFAULT '参数8')但是我调这个存储过程的时候就只第五个参数想使用默认值,请问应该怎么写呢。TEST_PRO(‘1’, ‘2’, ‘3’, ‘4’, ★这个想使用默认值★, ‘6’, ‘7’, ‘8’) 

解决方案 »

  1.   

    你可以這樣寫exec TEST_PRO(para1=>'1',para2=>'2',para3=>'3',para4=>'4',para6=>'6',para7=>'7',para8=>'8');
      

  2.   

    你還可以這樣寫exec TEST_PRO('1','2','3','4','5','6');--此處最後兩個就是使用默認值但是不可以像你那樣跳著寫,如果不用=>這種寫法,必醃順序賦值
      

  3.   

    谢谢回答,oracle里没有那种类似default的关键字让它自动找默认值赋吗?
      

  4.   

    para5 IN VARCHAR2 DEFAULT '参数5',
    你這個不就是default嗎
    如果你想exec TEST_PRO('1','2','3','4',default,'6','7','8');是沒這個功能的,這種是錯的
      

  5.   

    TEST_PRO(
    para1 => '',
    para2 => '',
    para3 ,
    para4 ,
    para6 ,
    para7 ,
    para8 )调用的时候别给这个变量赋值不就ok了么!