我有一个返回引用游标的过程。它需要4个参数,我正在使用C#。我已经在网上寻找了一些例子,但无法让它们中的任何一个工作
这就是我所拥有的
public static int test(int test_id, int progr, int setID, string BFilter)
{
object cur1 = System.DBNull.Value;
string spname = "SP.GetValues";
using (Oracle.DataAccess.Client.OracleCommand command = DB.GetStoredProcCommand(spname, test_id, progr, setID, BFilter, cur1))
{
using (OracleDataReader reader = command.ExecuteReader())
{
while (reader.Read())
{
//load array
}
}
}
int t = 1;
return t;
}
我使用的数据集工作得很好,除了每次花20秒获得500行,我必须这样做800次。我想使用datareader,将其加载到数组中然后在数组上循环将比读入数据集更快。 SP本身需要1秒才能返回,它会在填充线上花费19秒。
答案 0 :(得分:0)
使用Oracle Ref Cursor时,Mark William的Blog有一个neat article on using "fetch size" to increase performance。非常有趣的阅读,可能是一个开始样品的好地方。
它有点老了(而且,作为承认,几年没有触及ODP.NET),但我怀疑ODP.NET已经从根本上改变了它的位置。
答案 1 :(得分:0)
您需要将其指定为ref类型的输出参数。光标, 请查看以下链接以获取更多详细信息:ODP.NET in-out Curors