使用一般输入参数的处理形式运行到那句话就不动了嵌入sql需要怎样特殊的处理呢?

解决方案 »

  1.   

    in out 的话,表示该参数可以有返回值
      

  2.   


    过程很简单,我把in out的参数简单改为out的就可以执行,OCI和Pro C都可以。
    但是一旦改为in out的,OCI和Pro C到了调用的那句话就都不动了我的存储过程很简单:
    create or replace procedure SecondProc
    (
            s_i varchar2,
            i_o out number,
            s_o out varchar2
    )
    IS
    BEGIN
            i_o := LENGTH(s_i);
            s_o := UPPER(s_i);
    END;
      

  3.   

    你在调用的时候,传入的参数有没有从一个改为三个?
    因为你将out 改为 in out后,你的传入参数就是三个了
    不过没有明白,为什么要改成in out 的形式?
      

  4.   

    我是用OCI绑定参数来调用存储过程/函数的。
    如果把语句直接prepare、运行只能正确处理in或者out的参数,处理in/out参数时就会出错。
    但我把语句放在begin、end块里面作为一个pl/sql块来执行就可以正确处理in/out参数了。不知道还有没有别的办法。这里把我的方法写出来大家交流一下。