想不通过 out 来返回单个记录,但这样不知道为什么就是取不到值,各位帮忙啊

解决方案 »

  1.   

    password into password 同名了????
      

  2.   

    用函数而不是过程。此外对于返回long raw的返回,没有测试过。
    create or replace function GetPassword(name in varchar) return long raw
    is
    ....
    ..
      return password;
    end GetPassword;或者使用out参数。
      

  3.   

    你这有两个问题:
    1.在存储过程的申明的变量不要和你要用到的地段同名
    2.获取的值都没有传出去,程序接口有如何会获取的到呢,如果用PROCEDURE就在参数里加个入口参数或者用FUNCTION来实现
    PROCEDURE:create or replace procedure GetPassword(name in varchar2, out_pass out long raw)
    is
       v_password long raw;
    begin
      SELECT
    password into v_password
    FROM Users
    WHERE UserName = name;
    out_pass := v_password;
      return;
    end GetPassword;FUNCTION:create or replace function GetPassword(name in varchar2)
    return long raw
    is
       v_password long raw;
    begin
      SELECT
    password into v_password
    FROM Users
    WHERE UserName = name;
      return v_password;
    end GetPassword;