JAVA中如何 调整有返回参数的ORACLE存储过程?
比如:CREATE OR REPLACE PROCEDURE  COMPARE(YEM IN VARCHAR2,CEM OUT VARCHAR2) ISBEGIN……调用这个存储过程的SQL怎么写  ?JAVA中如何获得这个存储过程返回的参数  CEM?

解决方案 »

  1.   

    搜索之 java调用存储过程
    网上例子很多
    用jdbc或类似封闭了jdbc的对象操作
      

  2.   

    --先定义一个变量去接收过程里的out出来的值,然后你就可以使用这个变量了
    declare
    v_cem VARCHAR2(100);
    begin
    COMPARE('abc',v_cem);
    dbms_output.put_line(v_cem);
    end;
      

  3.   

    create or replace procedure test2(i_in IN NUMBER, o_out OUT VARCHAR2)
    AS
    begin
      if i_in=1 then
        select 'I love you' as i into o_out from dual;
      elsif i_in=2 then
        select '我爱你!' as i into o_out from dual;
      else
        select '输入有误!' as errors into o_out from dual;
      end if;
    end;
    /set serveroutput on;
    var o_out varchar2(40);
    exec test2(1,:o_out);
    print o_out;
      

  4.   

    在JAVA程序中如何接收存储过程的传出参数  或者是  存储过程的返回值 呢 ?
      

  5.   


    var v_cem varchar2(10)
    exec COMPARE('in参数',:v_cem)
    print v_cem
      

  6.   

    这个问题去java板块问问,不懂java
    不跟java里接收select语句结果一样嘛......
      

  7.   

    有没有人帮忙啊   在struts中调用带 传入  和 传出 参数 的储存过程,并取得存储过程的返回值 和  传出参数值  代码怎么写啊
      

  8.   

    现在要从 TABLE E(name,code)   中查询,如果E中有数据则 cem为a 否则为 b    udata varchar2(6);begin 
    select code into udata from E where rownum=1;if udata is null then 
    cem :='b';
    dbms_output.put_line(cem);
    return;else
    cem :='a';
    cbms_output.put_line(cem);
    end if;这段语句为什么不起作用呢?
      

  9.   

    --还不只那一个错误,你对照着看看吧
    SQL> set serveroutput on;
    SQL> declare
      2  udata number;
      3  cem varchar2(10);
      4  begin
      5  select count(*) into udata from emp where rownum=1;
      6  if udata=0 then
      7  cem :='b';
      8  dbms_output.put_line(cem);
      9  else
     10  cem :='a';
     11  dbms_output.put_line(cem);
     12  end if;
     13  end;
     14  /
    aPL/SQL 过程已成功完成。
      

  10.   

    加上 SET SERVEROUTPUT ON;后会有 
    Compilation errors for PROCEDURE FFDY.ELC_INITError: PLS-00103: 出现符号 "SET"在需要下列之一时:
            begin function package
              pragma procedure subtype type use <an identifier>
              <a double-quoted delimited-identifier> form current cursor
              external language
    Line: 2
    Text: SET SERVEROUTPUT ON;Error: Hint: Variable 'DECLARE' is declared but never used in 'ELC_INIT'
    Line: 3
    Text: DECLARE
      

  11.   

    if udata=0 then  
    cem :='b';
    dbms_output.put_line(cem);
    return;else
    cem :='a';
    cbms_output.put_line(cem);
    end if;
    测试这个pro,在执行到return时,会有ora-200000:oru-10028:line length overflow 错误  
      

  12.   

    好了 ,我的传出参数是CHAR型的 所以会overflow