请参考这里:http://blog.csdn.net/dinya2003/archive/2004/11/05/169146.aspx

解决方案 »

  1.   

    用declare定义几个变量,当参数传进去,变量会把值带出来的
      

  2.   

    DROP PROCEDURE PRO_ADDMESSAGE;
    CREATE PROCEDURE PRO_ADDMESSAGE
    (USERID IN INT,MSG_TITLE IN VARCHAR2,MSG_CONTENT IN VARCHAR2,OUT_VALUE OUT NUMBER)
    AS
    VARREC NUMBER;
    BEGINIF MSG_TITLE IS NULL OR MSG_CONTENT IS NULL THEN
     OUT_VALUE:=-1;
     RETURN;
    END IF;
    SELECT COUNT(*) INTO VARREC FROM USERS WHERE USER_ID=USERID;
    IF VARREC=0 THEN
     OUT_VALUE:=-2;
     RETURN;
    END IF;SELECT MAX("msg_id") INTO VARREC FROM "PersonMsg";
    INSERT INTO "PersonMsg" VALUES(VARREC,MSG_TITLE,MSG_CONTENT,SYSDATE,USERID);COMMIT;
    OUT_VALUE:=0;
    RETURN;EXCEPTION
    WHEN OTHERS THEN 
     OUT_VALUE:=-3;
     RETURN ;
    END;
    这是偶的过程!!在SqlPlus咋写得到偶的OUT的值?
    麻烦大家了!分不够再加!
      

  3.   

    declare aa number;
    begin
    pro_addmessage(0,'kaka','kaka',aa);
    dbms_output.put_line(aa);
    end;
    怎么不显示结果啊?
      

  4.   

    create or replace procedure aaa(result out varchar,result1 out varchar) is
    tmpint integer;
    tmpstr varchar(10);
    ......
    begin
      --result:=
      --result1:=
    end;
    delphi中:存储过程名.paramsbyname('result').asstring;大致如此吧