使用存储过程返回结果集,并绑定到ado.net对象中在sql server里面是非常直观的。

procedure GetAllRecords
as
from dept;

存储过程返回一个结果集,然后通过SqlDataAdapter绑定给DataSet。

 

但是在Oracle里面返回结果集存储过程是不可以这样写的,返回的结果集要通过游标来完成的。

首先创建一个包,新建一个应用游标类型

is
cursor;
end cust_types;

然后再使用该类型声明一个返回参数

is
begin
from dept;
end GetDept;

 

在.net中调用是要这样写:

].ConnectionString;
   2:  
new OracleConnection())
   4: {
   5:     conn.ConnectionString = connStr;
   6:     conn.Open();
   7:     var cmd = conn.CreateCommand();
;
   9:     cmd.CommandType = CommandType.StoredProcedure;
, OracleDbType.RefCursor){Direction = ParameterDirection.Output});
new OracleDataAdapter(cmd);
new DataSet();
  13:     adapter.Fill(ds);
  14: }
  15:  
  16:  

这样才能使用存储过程返回结果集。

相关文章: