当前位置: 代码迷 >> Oracle开发 >> 有一大堆UPDATE,如何写效率才高
  详细解决方案

有一大堆UPDATE,如何写效率才高

热度:22   发布时间:2016-04-24 07:34:46.0
有一大堆UPDATE,怎么写效率才高?
ORACLE 10G
下面SQL由程序自动生成,个数是不确定的。
update tb set abc='123' where id=1
update tb set abc='12sdf3' where id=12
update tb set abc='qwe' where id=221
update tb set abc='1s' where id=35351
.....

怎么写个东东访问一次数据库一次性搞定?

------解决方案--------------------
1. 很简单啊,写个存储过程,将这些SQL语句以数据的形式传到存储过程中。
2. 在存储过程中使用循环读出每条SQL语句,然后使用动态SQL来执行。最后commit
------解决方案--------------------
参考下面这个逻辑,一次提交
SQL code
String sql = "update ADJUST set alpha=@alpha where systemMark='a' and orderid=@orderid";OracleTransaction tx = new OracleTransaction();tx.begin();OracleCommand = new OracleCommand(conn, sql);for (int i = 0; i<10000; i++){  OracleParameter[] params = new OracleParameter[2];  params[0] = cmd.Parameters.Add(..)  params[1] = cmd.Parameters.Add(..)  rowsAffected = cmd.ExecuteNonQuery();  cmd.Parameters.Clear();  if ((i+1) % 1000 ==0)  {  tx.commit();  tx.begin();  }}tx.commit();
  相关解决方案