oracle过程调用,设置1个in参数1个out参数返回值,为什么调用时错误?OUT值也需要传入吗?求救,马上结贴。

解决方案 »

  1.   

    CREATE OR REPLACE PACKAGE BODY Mj_Package_Product AS
    PROCEDURE tests(
    i_yn IN NUMBER,
    v_retuens OUT NUMBER
    ) AS
    --v_retuens NUMBER;
    BEGIN
    IF i_yn = 1 THEN
    Mj_Package_Product.insert_huayan(999999,999.99,999.99,999.99,999.99,999.99,999.99,999.99,999.99,999.99,999.99,'AAA,NULL,'1');
    v_retuens := 1;
    ELSE
    v_retuens := 0;
    END IF;
    EXCEPTION
    WHEN OTHERS THEN
    ROLLBACK;
    END tests;
    END Mj_Package_Product;
      

  2.   

    错误信息
    SQL> call mj_package_product.tests(1);
    call mj_package_product.tests(1)
         *
    ERROR 位于第 1 行:
    ORA-06553: PLS-306: 调用 'TESTS' 时参数个数或类型错误
      

  3.   

    in 要传入.
    out先定义个变量,然后调用:
    例如:declare
      in_v number;
    begen 
      yourPro(1,in_v);
      dbms_output.put_line(in_v);
    end;
      

  4.   

    楼上正确,
    只是把begin敲错了
      

  5.   

    那我怎么再能才sql*plus中测试呢,如果能请把例子代码贴一下谢谢。
      

  6.   

    set serveroutput ondeclare
      out_v number;
    begin 
      mj_package_product.tests(1,out_v);
      dbms_output.put_line(out_v);
    end;
      

  7.   

    谢谢,结贴了。我头一次做oracle包和过程,见笑了,以后还需要麻烦你们的。