ORA-01000: 超出打开游标的最大数!! 在线急等!

fendouxiaoqingnian 2013-08-05 09:27:20
static void Main(string[] args)
{
DateTime begin = DateTime.Now;
OracleDataReader odr = null;
OracleConnection conn = null;
int i = 0;
for (int j = 0; j < 10;j++ )
{

try
{
Console.WriteLine("start");
string connsql = "Data Source=(DESCRIPTION =" + "(ADDRESS = (PROTOCOL = TCP)(HOST = 129.129.129.16)(PORT = 1521))" + "(CONNECT_DATA =(SERVER = DEDICATED)(SERVICE_NAME = orcl) ) );" + "User ID=tcyb_sjqy;PassWord=tcyb_sjqy;Unicode=True";
conn = new OracleConnection(connsql);//创建一个新连接?

conn.Open();
OracleCommand cmd = conn.CreateCommand();
cmd.CommandText = "select t.jtbh,t.xm,t.ylzh, t.rowid from yw_cb_grjbzl t where t.yzbm is null ";//在这儿写sql语句?
odr = cmd.ExecuteReader();

Console.WriteLine("Conn 已经打开");
while (odr.Read())
{
String YLZH = odr.GetOracleString(2).ToString();
cmd.CommandText = "update yw_cb_grjbzl t set t.yzbm = '" + MathExample.GetStrMiWen(YLZH) + "' where t.ylzh = '" + YLZH + "'"; //MathExample.GetStrMiWen(YLZH) 此处调用了个加密算法
cmd.ExecuteReader();
Console.WriteLine(i++);

}
cmd.Dispose();
odr.Dispose();
conn.Dispose();

odr.Close();
conn.Close();

}
catch (Exception ex)
{
Console.WriteLine(ex);
}
finally
{
odr.Close();
conn.Close();
}
}
TimeSpan ts = DateTime.Now - begin;
Console.WriteLine("ts = " + ts.TotalMilliseconds);
Console.ReadKey();

}
执行到299 就报“System.Data.OracleClient.OracleException: ORA-01000: 超出打开游标的最大数” 的错误 ,忘各位大虾能给解决下 ,新手求指点!!最好能给个成功的例子!!谢谢!!
...全文
173 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
智商余额不足 2013-08-05
  • 打赏
  • 举报
回复
智商余额不足 2013-08-05
  • 打赏
  • 举报
回复
while 前面 释放 cmd while ... 循环里面每次cmd=conn.CreateCommand(); ... 执行完更新后cmd.Dispose(); end while
fendouxiaoqingnian 2013-08-05
  • 打赏
  • 举报
回复
谢谢二楼 ,二楼正解!!谢谢 !!
fendouxiaoqingnian 2013-08-05
  • 打赏
  • 举报
回复
谢谢两位的回复,但我试了还是不行 !!
全栈极简 2013-08-05
  • 打赏
  • 举报
回复
while (odr.Read()) { String YLZH = odr.GetOracleString(2).ToString(); cmd.CommandText = "update yw_cb_grjbzl t set t.yzbm = '" + MathExample.GetStrMiWen(YLZH) + "' where t.ylzh = '" + YLZH + "'"; //MathExample.GetStrMiWen(YLZH) 此处调用了个加密算法 cmd.ExecuteReader(); cmd.ExecuteNonQuery(); Console.WriteLine(i++); }
智商余额不足 2013-08-05
  • 打赏
  • 举报
回复

while (odr.Read())
{
....
   //cmd.ExecuteReader();
   cmd. ExecuteNonQuery();
....
}
fendouxiaoqingnian 2013-08-05
  • 打赏
  • 举报
回复
比较急,分数不多,忘高手解救谢了!!

110,499

社区成员

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

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

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