Oracle数据库返回cursor问题的解决方法(2)

来源:未知 责任编辑:责任编辑 发表时间:2015-09-16 20:04 点击:

这下我就明白了。在我的oracle函数中,我的名字 cur_Static_User 和默认的名字cur_OUT不匹配。


于是我就改了我的存储过程的参数名称,cur_Static_User改为 cur_OUT。


问题就解决了。


经过试验,也可以用如下方法用自己的参数名,而不用默认的参数名。

也可以,在一个PROCEDURE中返回多个 CURSOR


我的存储过程:

 


Procedure STATIC_USER_SelectAll

( cur_OUT_f OUT T_OUT, cur_OUT_g OUT T_OUT)

AS

Begin

OPEN cur_OUT_f FOR Select * from STATIC_USER;

OPEN cur_OUT_g FOR Select * from STATIC_ROLE;

End;


代码如下:


Database db = DatabaseFactory.CreateDatabase("oraserver");

string sqlCommand = "Static_UserPackage.STATIC_USER_SelectAll";

Microsoft.Practices.EnterpriseLibrary.Data.Oracle.OracleCommandWrapper dbCommandWrapper =(Microsoft.Practices.EnterpriseLibrary.Data.Oracle.OracleCommandWrapper)db.GetStoredProcCommandWrapper(sqlCommand);

dbCommandWrapper.AddParameter("cur_OUT_f", OracleType.Cursor, 0, ParameterDirection.Output, true, 0, 0, String.Empty, DataRowVersion.Default, Convert.DBNull);

dbCommandWrapper.AddParameter("cur_OUT_g", OracleType.Cursor, 0, ParameterDirection.Output, true, 0, 0, String.Empty, DataRowVersion.Default, Convert.DBNull);

DataSet dsCustomers = db.ExecuteDataSet(dbCommandWrapper);

DataGrid1.DataSource=dsCustomers.Tables[0];

DataGrid1.DataBind();

DataGrid2.DataSource=dsCustomers.Tables[1];

DataGrid2.DataBind();

发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
用户名: 验证码:点击我更换图片
最新评论 更多>>

推荐热点

  • 在oracle数据库下使用iSQL*Plus DBA访问数据库
  • oracle 让sys用户可以使用isqlplus
  • Oracle数据库Constraint约束的常用操作及异常处理
  • ORACLE10gr2数据导入MySQL方案
  • OCP043第十五讲 Database Security
  • export/import的使用
  • Oracle行列转换小结
  • Table函数使用简介
  • Bulk Collect性能分析(zz)
网站首页 - 友情链接 - 网站地图 - TAG标签 - RSS订阅 - 内容搜索
Copyright © 2008-2015 计算机技术学习交流网. 版权所有

豫ICP备11007008号-1