最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Oracle出現(xiàn)超出打開(kāi)游標(biāo)最大數(shù)的解決方法

 更新時(shí)間:2016年06月25日 16:25:12   作者:hbiao68  
這篇文章主要介紹了Oracle出現(xiàn)超出打開(kāi)游標(biāo)最大數(shù)的解決方法,涉及針對(duì)Oracle游標(biāo)位置的判斷與處理技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下

本文實(shí)例講述了Oracle出現(xiàn)超出打開(kāi)游標(biāo)最大數(shù)的解決方法。分享給大家供大家參考,具體如下:

Java代碼在執(zhí)行conn.createStatement()和conn.prepareStatement()的時(shí)候,實(shí)際上都是相當(dāng)與在數(shù)據(jù)庫(kù)中打開(kāi)了一個(gè)cursor。尤其是,假如你的createStatement和prepareStatement是在一個(gè)循環(huán)里面的話(huà),就會(huì)非常輕易出現(xiàn)這個(gè)問(wèn)題。因?yàn)橛螛?biāo)一直在不停的打開(kāi),而且沒(méi)有關(guān)閉。

一般來(lái)說(shuō),我們?cè)趯?xiě)Java代碼的時(shí)候,createStatement和prepareStatement都應(yīng)該要放在循環(huán)外面,而且使用了這些Statment后,及時(shí)關(guān)閉。最好是在執(zhí)行了一次executeQuery、executeUpdate等之后,假如不需要使用結(jié)果集(ResultSet)的數(shù)據(jù),就馬上將Statement或PreparedStatement關(guān)閉。

對(duì)于出現(xiàn)ORA-01000錯(cuò)誤這種情況,單純的加大open_cursors并不是好辦法,那只是治標(biāo)不治本。實(shí)際上,代碼中的隱患并沒(méi)有解除。而且,絕大部分情況下,open_cursors只需要設(shè)置一個(gè)比較小的值,就足夠使用了,除非有非常非凡的要求。

假如你不使用連接池,那么就沒(méi)有什么問(wèn)題,一旦Connection關(guān)閉,數(shù)據(jù)庫(kù)物理連接就被釋放,所有相關(guān)Java資源也可以被GC回收了。

但是假如你使用連接池,那么請(qǐng)注重,Connection關(guān)閉并不是物理關(guān)閉,只是歸還連接池,所以PreparedStatement和ResultSet都被持有,并且實(shí)際占用相關(guān)的數(shù)據(jù)庫(kù)的游標(biāo)資源,在這種情況下,只要長(zhǎng)期運(yùn)行,往往就會(huì)報(bào)“游標(biāo)超出數(shù)據(jù)庫(kù)答應(yīng)的最大值”的錯(cuò)誤,導(dǎo)致程序無(wú)法正常訪(fǎng)問(wèn)數(shù)據(jù)庫(kù)。

正確的代碼,如下所示:

for(int i=0;i<balancelist.size();i++)
{
  prepstmt = conn.prepareStatement(sql[i]);
  prepstmt.setBigDecimal(1,nb.getRealCost());
  prepstmt.setString(2, adclient_id);
  prepstmt.setString(3, daystr);
  prepstmt.setInt(4, ComStatic.portalId);
  prepstmt.executeUpdate();
  //循環(huán)到一定數(shù)量就要關(guān)閉,防止出現(xiàn)超出最大游標(biāo)數(shù)量
  prepstmt.close();
}

希望本文所述對(duì)大家Oracle數(shù)據(jù)庫(kù)程序設(shè)計(jì)有所幫助。

相關(guān)文章

最新評(píng)論

黎城县| 玉树县| 西藏| 兰溪市| 余庆县| 秦安县| 合肥市| 武汉市| 屏南县| 驻马店市| 韶山市| 焦作市| 嘉荫县| 吴江市| 南开区| 营山县| 长泰县| 武宁县| 集安市| 秦安县| 莱阳市| 绩溪县| 清水河县| 延安市| 高淳县| 安康市| 正阳县| 枣强县| 黄梅县| 宜兰市| 阆中市| 布尔津县| 西峡县| 武威市| 河津市| 原阳县| 和田县| 满洲里市| 鹤峰县| 墨竹工卡县| 关岭|