请教微软专家:Oracle数据库的游标对应C#中是什么类型?
我在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' 不是过程或尚未定义” ,,
请指教!