歲月如哥
          人生非夢
          posts - 50,comments - 144,trackbacks - 0
          <2008年8月>
          272829303112
          3456789
          10111213141516
          17181920212223
          24252627282930
          31123456

          常用鏈接

          留言簿(11)

          隨筆分類(45)

          相冊

          收藏夾(21)

          friends

          搜索

          •  

          最新評論

          閱讀排行榜

          評論排行榜

          使用java定時調用存儲過程,存儲過程的功能是修改表A中字段F  is null的記錄,設置字段F=X,正常執行是執行一次后表A中將不會有F is null的記錄,問題是:每次執行都只修改了表A的2或3條記錄

          而這個存儲過程在數據客戶端工具中直接執行是正確的。

          解決方法
          如果你的存儲過程中包括insert、delete、update操作,切記:
          (1)如果是jdbc調用,使用statement.executeUpdate("sp_xxxx"),千萬不能使用statement.execute("sp_xxxx")
          (2)如果使用spring的dao框架:使用jdbcDao.getJDBCTemplate.update("sp_xxxx"),同樣不要使用jdbcDao.getJDBCTemplate.execute("sp_xxxx")


          三期開發中也遇到了類似的問題

          案件從在審庫轉未立庫的時候,存儲過程執行了一半就退出了,查了好久,幸好在這里找到答案了:)
          之前我們一直這么用
          String procedure = "{call K_FY..PR_ZS2WL_" + getAJLBShortName(iAjlb) + "(?) }";
          getJdbcDAO().getJdbcTemplate().execute(
                procedure, 
          new CallableStatementCallback() {
                          
          public Object doInCallableStatement(CallableStatement cstmt)
                                  
          throws SQLException, DataAccessException {
                                                  cstmt.setLong(
          1, lAjbh);
                                                  cstmt.execute();
                                                  
          return null;
                                               }
                });

          我把cstmt.execute();改成cstmt.executeUpdate();之后就可以了
          但是奇怪的是 案件從在審庫轉到審結庫的時候確是正常執行,沒有任何異常跡象
          ps:在審轉未立和在審轉審結這兩個存儲過程的結構是一樣的,有很多insert、update和delete的操作


          這個是在sybase下發生的問題。jdbc的標準雖然是那么定的--execute()中調用了executeUpdate(),但sybase實現的com.sybase.jdbc3.jdbc.SybDriver就不好說了
          posted on 2008-08-30 14:57 歲月如歌 閱讀(1501) 評論(0)  編輯  收藏 所屬分類: java
          主站蜘蛛池模板: 东至县| 漠河县| 津南区| 平江县| 蓬莱市| 香格里拉县| 玛纳斯县| 广水市| 东乡| 新绛县| 内黄县| 贺兰县| 伊金霍洛旗| 彩票| 津南区| 曲麻莱县| 卢龙县| 瓮安县| 唐河县| 罗源县| 巨鹿县| 平远县| 锡林浩特市| 柳州市| 文登市| 通许县| 张北县| 长顺县| 永清县| 孝昌县| 积石山| 徐汇区| 楚雄市| 邢台市| 湘阴县| 澄城县| 洛隆县| 温泉县| 河曲县| 张家口市| 白城市|