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

使用sqlserver官方驅(qū)動包調(diào)用存儲過程遇到的坑及解決方法

 更新時間:2022年10月13日 09:48:50   作者:喵小哥兒の博客  
這篇文章主要介紹了用sqlserver官方驅(qū)動包調(diào)用存儲過程遇到的一個坑,解決方法大概就是換驅(qū)動包,在在存儲過程首行添加 set nocount on ,本文通過實例代碼給大家介紹的非常詳細,需要的朋友可以參考下

和外部系統(tǒng)做對接,對方提供了一個存儲過程,對方為sqlserver數(shù)據(jù)庫,我方為oracle數(shù)據(jù)庫。
需求簡單來說就是調(diào)用對方的存儲過程獲得結(jié)果,轉(zhuǎn)儲到我方庫,后續(xù)在對數(shù)據(jù)進行處理。

我寫了個代碼片段做測試,用jdbc來調(diào)用對方的存儲過程,可是在調(diào)用后就直接報錯了,錯誤信息如下

com.microsoft.sqlserver.jdbc.SQLServerException: 該語句沒有返回結(jié)果集

我就不理解了,為啥用數(shù)據(jù)庫連接工具調(diào)就沒問題呢?是有結(jié)果集的呀。

瘋狂找資料,找帖子。最后終于是找到了。

解決方法:

  1. 換驅(qū)動包。對方數(shù)據(jù)庫是SQL server2008,我用的是 sqljdbc4-4.0 。直接換了第三方開源的SQL Server數(shù)據(jù)庫的JDBC驅(qū)動程序 jtds1.2。問題解決,調(diào)用存儲過程的時候不再出錯。
  2. 在存儲過程首行添加 set nocount on (這個我沒實驗,因為存儲過程沒在我手里,操作不到)

最后記錄一段jdbc調(diào)用存儲結(jié)構(gòu)的代碼,一個參數(shù),返回結(jié)果集

import java.sql.CallableStatement;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class Test {
    final static String SERVERURL = "jdbc:jtds:sqlserver://127.0.0.1:1433;DatabaseName=XXX";
    final static String SERVERDriver = "net.sourceforge.jtds.jdbc.Driver";
    final static String SERVERUSERNAME = "username";
    final static String SERVERPASSWORD = "password";
 
    public static void main(String[] args) {
        try {
            //調(diào)用存儲過程
            Class.forName(SERVERDriver);
            Connection conn = DriverManager.getConnection(SERVERURL, SERVERUSERNAME, SERVERPASSWORD);
            System.out.println("sql server連接成功");
            String call = "{call 存儲過程名稱(?)}";
            CallableStatement callableStatement = conn.prepareCall(call);
            callableStatement.setString(1, "2022-10-13");
            ResultSet rs = callableStatement.executeQuery();
            while(rs.next()) {
                System.out.println(rs.getString("aaa"));
                System.out.println(rs.getString("bbb"));
                System.out.println(rs.getString("ccc"));
                System.out.println(rs.getString("ddd"));
            }
            callableStatement.close();
            conn.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

到此這篇關(guān)于用sqlserver官方驅(qū)動包調(diào)用存儲過程遇到的一個坑的文章就介紹到這了,更多相關(guān)sqlserver官方驅(qū)動包調(diào)用存儲過程內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評論

沭阳县| 鹰潭市| 成安县| 中方县| 安福县| 丹棱县| 兴化市| 菏泽市| 涞源县| 兴业县| 托克托县| 洛南县| 建始县| 峨山| 冷水江市| 普安县| 张家口市| 青岛市| 进贤县| 光泽县| 佛学| 集贤县| 淮滨县| 汝城县| 监利县| 东乌| 邛崃市| 兰溪市| 虹口区| 开原市| 五河县| 宿州市| 桐柏县| 江北区| 吴川市| 临清市| 黄陵县| 玉树县| 宣恩县| 娄烦县| 岳阳县|