when you call your procedure:
定义一个同类型的变量
string strb;
...A(...,strb)....;
//then use the value strored in  strb

解决方案 »

  1.   

    create procedure a(inta in number,strb out varchar2)
    as
    begin
    strb:=inta;
    end;
    /declare
    v_strb varchar2(10);
    begin
    a(1,v_strb);
    dbms_output.put_line(v_strb);
    end;
    /
      

  2.   

    create procedure a(inta in number,strb out varchar2)
    as
    begin
    strb:=inta;
    end;
    /declare
    v_strb varchar2(10);
    begin
    a(1,v_strb);
    dbms_output.put_line(v_strb);
    end;
    /
      

  3.   

    SQL> create or replace procedure test(id in integer,Name out string)
      2  as
      3  begin
      4  dbms_output.put_line(to_char(id)||':'||'your name is:'||Name);
      5  Name:=',I know you!';
      6  end test;
      7  /Procedure createdSQL> set serveroutput on;SQL> declare
      2   strName string(100);
      3  begin
      4   test(1,strName);
      5  end;
      6  /1:your name is:PL/SQL procedure successfully completed
      

  4.   

    你们说的是在存储过程中,或函数中,我的意思在ado上如何调用带参数输出的存储过程,或者其他数据接口上。嘿嘿。
      

  5.   

    CREATE OR REPLACE PACKAGE pkg_test
    AS
       TYPE myrctype IS REF CURSOR;   PROCEDURE get (p_id NUMBER, p_rc OUT myrctype);
    END pkg_test;
    /CREATE OR REPLACE PACKAGE BODY pkg_test
    AS
       PROCEDURE get (p_id NUMBER, p_rc OUT myrctype)
       IS
          sqlstr   VARCHAR2 (500);
       BEGIN
          IF p_id = 0 THEN
             OPEN p_rc FOR
                SELECT ID, NAME, sex, address, postcode, birthday
                  FROM student;
          ELSE
             sqlstr :=
                'select id,name,sex,address,postcode,birthday
               from student where id=:w_id';
             OPEN p_rc FOR sqlstr USING p_id;
          END IF;
       END get;
    END pkg_test;
    /在asp调用out参数以下:
    <% 
    set cm1 = Server.CreateObject("ADODB.Command")
    cm1.ActiveConnection = MM_conn_STRING
    cm1.CommandType = 1
    cm1.CommandTimeout = 0
    cm1.Prepared = true
    cm1.CommandText = "{call pkg_test.get(?)}"
    set para = cm1.Parameters
    para.Append cm1.CreateParameter("p_id",3,1,,1)

    set rs = Server.CreateObject("ADODB.Recordset")
    set rs=cm1.Execute  
    %>具体开发语言不同而使用方法不同.
      

  6.   

    同意楼上各位的,
    但是对fetch表示不同意见fetch可以输出函数的返回值,但是好像不能得到out类型的变量吧
      

  7.   

    各位朋友,小弟近日正在学习oracle,由于授课教师水平不高,所以学习没有多大进展,本人想请各位朋友帮我找一些oracle的电子文档或幻灯片,以助我学习提高,小弟感激不尽.来信请发:
    [email protected]
      

  8.   

    CBuilder下:
    StoreProce->Params->CreateParam(ftInteger,"intA", ptInput); //输出
    StoreProce->Params->CreateParam(ftString,"strB", ptOutput);
    ...
    StoreProce->ExecProc();
    ....
    AnsiString strResult = StoreProce->Params->Items[1] ->AsString;