create or replace procedure test_1 ( as_id in varchar2,
        as_name in varchar2,
          ai_retnum  out number,
         as_retstr  out varchar2,
            ) is
这样利用出参来返回值

解决方案 »

  1.   

    CREATE OR REPLACE PROCEDURE testp1 s1 in varchar2,
            s2 in number,
              ret_1 out number,
             ret_2  out varchar2) isBegin
    insert into my_test_tab values(s1,s2,s3);
    ret_1=23;
    ret_2='ooo';End testp1;
      

  2.   

    再参数中用IN 表示是传入参数,OUT表示传出参数,一般情况下你可以用 XXX OUT NUMBER,XXX OUT VARCHAR2...如果想返回一个数据集就要定义一个游标类型,然后返回这个游标类型。
      

  3.   

    这里有一篇文章, C#执行存储过程的,有返回值的, 楼主可以参考一下.
    http://blog.csdn.net/dinya2003/archive/2004/11/05/169146.aspx
      

  4.   

    多谢几位,请问为什么还是有报错呢?解决马上给分
    SQL> exec testp1;begin testp1; end;ORA-06550: 第 1 行, 第 7 列: 
    PLS-00306: 调用 'TESTP1' 时参数数量或类型错误
    ORA-06550: 第 1 行, 第 7 列: 
    PL/SQL: Statement ignored
    create or replace procedure testp1(ret_2 out Varchar2) Is
    begin
    ret_2 := 'ddd2';
    End testp1;
      

  5.   

    好像使用SQL>set feedback on;就可以了。