解决方案 »

  1.   

    IN表示向存储过程传递参数,OUT表示从存储过程返回参数,而IN OUT 表示传递参数和返回参数;
    不过一般不用in out
      

  2.   

    procedure helo_mail(conn inout utl_smtp.connection)
    as ...
    --传入的是非空的连接,出来就是连接到smtp服务器的连接procedure write_header(conn inout utl_smtp.connection)
    as ...
    --传入的是连接到smtp服务器的连接,出来就是开始完成头部的的连接一般的是若干代码块 要连续的去改变一个参数的状态,给下一段代码用,就用inout
      

  3.   

    刚看了一篇文章可不可以这样理解,IN传递的参数不可以在存储过程中给其赋值,out可以在存储过程中赋值,但是不能把out赋值给其他参数,IN OUT表示两者皆可?
      

  4.   

    刚看了一篇文章可不可以这样理解,IN传递的参数不可以在存储过程中给其赋值,out可以在存储过程中赋值,但是不能把out赋值给其他参数,IN OUT表示两者皆可?
    IN:传入参数进PROCEDURE给存储过程用
    OUT:将存储过程处理的结果传出来
    IN OUT:传入参数给存储过程,再将处理后的结果传出来。
      

  5.   

    刚看了一篇文章可不可以这样理解,IN传递的参数不可以在存储过程中给其赋值,out可以在存储过程中赋值,但是不能把out赋值给其他参数,IN OUT表示两者皆可?
    IN:传入参数进PROCEDURE给存储过程用
    OUT:将存储过程处理的结果传出来
    IN OUT:传入参数给存储过程,再将处理后的结果传出来。

    IN,我理解了,那我想调用create or replace procedure myproc2(
      dno in dept.deptno%type,
      name out dept.dname%type,
      dl dept.loc%type)
    这样的存储函数应该怎么调用
    DECLARE
    num dept.deptno%type;
    BEGIN 
    num:=33;
    myproc2(num,'ss','南京') ;
    DBMS_OUTPUT.put_line(num) ;
    END;
    报错说‘ss’不能作为赋值目标
      

  6.   

    刚看了一篇文章可不可以这样理解,IN传递的参数不可以在存储过程中给其赋值,out可以在存储过程中赋值,但是不能把out赋值给其他参数,IN OUT表示两者皆可?
    IN:传入参数进PROCEDURE给存储过程用
    OUT:将存储过程处理的结果传出来
    IN OUT:传入参数给存储过程,再将处理后的结果传出来。

    我好想懂了,刚刚那个myproc2(num,'ss','南京')中的‘ss’应该用参数对不对,然后把ss赋给参数