如:
    vEncrypted    := dbms_obfuscation_toolkit.des3encrypt(v_text,
                                                          key_string => rawkey,
                                                          which => iMode);

解决方案 »

  1.   

    oracle实参与形参有二种对应方式
    1.一种是位置方式,和面向对象语言参数传递类似;
    2.另外一种是=> 作为形参对应,因为位置对应方法有缺限,比如一个函数有四个参数,但第三个是可以不传(有默认值),这里就没办法位置对应方法,oralce内部一般用此种方法作参数传递
      

  2.   

    =>这个符号在oracle中是赋值的意思
    如:
    vEncrypted := dbms_obfuscation_toolkit.des3encrypt(v_text,
    key_string => rawkey,
    which => iMode);就是把key_string的值赋给rawkey
      

  3.   

    已彻底明白,示例如下:
    create or replace function sf_test(v_1 varchar2,
                                       v_2 varchar2 default '222',
                                       v_3 varchar2) return varchar2 is
    begin
      return 'v_1='||v_1 ||' v_2=' || v_2 || ' v_3=' ||v_3;
    end sf_test;
    /
    create or replace function sf_test2(v_4  varchar2) return varchar2 is
     v_a varchar2(100) ;
    begin
        return  sf_test(v_3=>'33',v_1 => '11');
    end sf_test2;
    /
    SQL> select sf_test(v_3=>'33',v_1 => '11')) from dual;
     
    v_1=11 v_2=222 v_3=33