请教微软专家:Oracle数据库的游标对应C#中是什么类型?

zhangbat 2003-04-22 03:12:15
我在Oracle中做了一个存储过程,其中一个Out类型的参数是游标,在C#中调用的时候不知道该参数用什么类型才好,请指教。
我的相关代码:
OleDbCommand objCmd = new OleDbCommand();
objCmd.Connection = objConn;
objCmd.CommandText = "p_Test_Return";
objCmd.CommandType = CommandType.StoredProcedure;
OleDbParameter objParm =
objCmd.Parameters.Add("as_table_name",OleDbType.VarChar,50);
OleDbParameter objParm2 =
objCmd.Parameters.Add("Result",OleDbType.VarBinary,2147483647);
objParm2.Direction = ParameterDirection.Output;

objCmd.Parameters["as_table_name"].Value = "all_objects";
objCmd.ExecuteNonQuery();

在最后一句会报错,说参数类型不对应。

还有,受到SQL Server的存储过程可以返回结果集被直接当做DataGrid的DataSource的启示,我把上面的存储过程改成函数,让它返回游标对象(代码如下:)
objCmd.Connection = objConn;
objCmd.CommandText = "f_Test_Return";
//Founction,取消了Out类型的参数,改由Return 返回
objCmd.CommandType = CommandType.StoredProcedure;
OleDbParameter objParm =
objCmd.Parameters.Add("as_table_name",OleDbType.VarChar,50);
objCmd.Parameters["as_table_name"].Value = "all_objects";
DataGrid1.DataSource = objCmd.ExecuteReader(CommandBehavior.CloseConnection);

结果报错说“PLS-00221: 'F_TEST_RETURN' 不是过程或尚未定义” ,,

请指教!
...全文
139 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhangbat 2003-04-24
  • 打赏
  • 举报
回复
生命不息 up 不止
zhangbat 2003-04-24
  • 打赏
  • 举报
回复
生命不息 up 不止

刚才微软论坛有个专家指正我说“oracle是不能返回集合的”。
抱歉,忘了说明,我是用包声明了游标类型然后在函数(过程)中把他的实例返回的。
zhangbat 2003-04-24
  • 打赏
  • 举报
回复
谢谢 qiujoe(迷糊) ,
qiujoe 2003-04-24
  • 打赏
  • 举报
回复
好象是对应于datareader,oledbtype.variant
qiujoe 2003-04-24
  • 打赏
  • 举报
回复
我原来解决过,不过好久不用了,忘了,:(
我原来用的是oracle client,不是用的oledb,oracle client上有帮助说明是如何使用的,以及oledb和oracle是如何对应的。你自己去看看吧,good luck
zhangbat 2003-04-23
  • 打赏
  • 举报
回复
生命不息 up 不止
zhangbat 2003-04-22
  • 打赏
  • 举报
回复
生命不息 up 不止
zhangbat 2003-04-22
  • 打赏
  • 举报
回复
生命不息 up 不止
zhangbat 2003-04-22
  • 打赏
  • 举报
回复
求教呀,难道我问的问题都没有人能解决?

110,566

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧