存储过程结构如下:
Create or Replace Procedure xx_yy
(
    i_OrderID 
in number,
    i_ReturnValue 
out number
)
is
    v_RealValue number;
    v_TotalValue number;
    v_AdvendorID  number;
begin
   自己写就行
end;
下面讲一下调用:

表结构
create table ORDERTABLE
(
  ORDERID NUMBER not 
null,
  TEXT    NUMBER not 
null
)
存储过程 

 (
    i_OrderID 
in number,
    i_ReturnValue 
out number
)
is
  spass ordertable.text
%type;
begin
  select text into spass from ordertable where orderid
=i_OrderID; 
  i_ReturnValue:
=spass;
  exception
   when no_data_found
   then i_ReturnValue:
=-1
end;

源码:
using System.Data .OracleClient ;//(别忘了添加)
OracleConnection  Oraclecon = new OracleConnection ("Password=dloco;User ID=dloco;Data Source=dloco;");
            OracleCommand myCMD 
=  new OracleCommand();
            OracleParameter[] parameters 
= new OracleParameter("i_OrderID", OracleType.Number, 10),new OracleParameter("i_ReturnValue",OracleType.Number,10 )};
            parameters[
0].Value = 1;
            parameters[
1].Direction = ParameterDirection.Output;

            myCMD.Connection 
= Oraclecon;
            myCMD.CommandType 
= CommandType.StoredProcedure;
            myCMD.CommandText 
= "dloco.xx_yy";

            myCMD.Parameters .Add (parameters[
0]);
            myCMD.Parameters .Add (parameters[
1]);

            myCMD.Connection.Open();            

            myCMD.ExecuteNonQuery();                
                
            
string result=myCMD.Parameters["i_ReturnValue"].Value.ToString();
            MessageBox.Show (result);

            Oraclecon.Close();