看了解释,知道IN是调入,OUT是调出,就是不太明白怎么用,能写个简单的例子然后解释下吗?

解决方案 »

  1.   

    准确说,in是输入参数,out是输出参数,inout即可做输入参数也可做输出参数
      

  2.   

    in,out一般用在写function或procedure中
    写了个简单的例子给你看看,不知能不帮上忙
    create or replace procedure xx_proc( v_x in integer ,v_y out integer)
    is
    begin
    dbms_output.put_line(to_char(v_x));
    v_y := v_x;
    end;var v_yy integer
    exec xx_proc(990,:v_yy)
    PRINT v_yy
      

  3.   

    create or replace procedure p_test
    (
        i_in          in        varchar2,
        o_out         out       varchar2
    )
    as
    begin
        --o_out := 'haha' || o_out;
        null;
    end;
    /
    set serveroutput on;declare
        v_in          varchar2(20);
        v_out         varchar2(20);
    begin
        v_in := 'hehe';
        v_out := 'heihei';    p_test(v_in, v_out);    dbms_output.put_line('In参数:' || v_in);
        dbms_output.put_line('Out参数:' || v_out);
    end;
    /set serveroutput off;SQL> Procedure createdIn参数:hehe
    Out参数:PL/SQL procedure successfully completed通过这个例子可以看出来,in 参数,才被存储过程调用前后,值不发生变化,而 out 参数,在被调用后,会被重新赋值。