yexiangshu 发表于 2011-12-21 11:08

执行UPDATE 达到一定数量后,报-346错误,召唤

在函数里执行的update 语句;
外部循环调用的,记录少的时候没有问题,多了就报错,一般执行到327**差不多就报错
错误信息:
err_msg=sqlcode update1 [-346]
sqlcode=-346,isam=-101,sqlerrm=
很奇怪啊,不是一执行就报错,是执行到一定数量就不行了。
SQL:
sprintf(sql_str,"update a_acct_accumulate_liuzn set balance =%d,critical_time='%s',error_time='%s'\
            where owner_id=%d and owner_type=%d and ratable_resource_id=%d and cyc_seq_nbr =%d and %d>=balance",
             remain_count_proc.after_balance,
      remain_count_proc.critical_time,
      remain_count_proc.error_time,
      remain_count_proc.owner_id,
      remain_count_proc.owner_type,
      remain_count_proc.ratable_resource_id,
      remain_count_proc.cyc_seq_nbr,
      remain_count_proc.after_balance);
EXEC SQL EXECUTE IMMEDIATE :sql_str;
   
   if (db_sqlcode() != 0)
      {
sprintf(err_msg,"sqlcode update1 [%d]\n",db_sqlcode());
          pub_message(6302996,DEBUG_MESSAGE,DB_ERROR,"md_refresh_remain_count_liuzn()",err_msg);
         return -1;
      
      }

大家帮忙给看看

sychangchun 发表于 2012-01-29 12:57

可能是回滚段不足了。
页: [1]
查看完整版本: 执行UPDATE 达到一定数量后,报-346错误,召唤