2015-05-14 81 views
0

我正在將目前在MYSQL下運行的應用程序轉換爲使用SQL Server。結果是,我有一個奇怪的情況!現有查詢通過JDBC在MySQL中工作,並且在MySQL中作爲命令行查詢工作 - 但是,儘管在命令行中作爲查詢使用SQL Server工作室內部工作,但同樣的查詢不能通過SQL Server JDBC驅動程序工作。JDBC SQL Server連接不返回任何結果

在MYSQL JDBC下我得到一組結果,在SQL Server JDBC下我得到0個結果。

我試着查詢這種方式(它在命令行中的SQL Server工作)

SELECT DISTINCT 
    x, 
    y 
FROM 
    table1, 
    table2 
WHERE 
    x = y 
AND start_date <= '2015-05-15' 
AND end_date >= '2015-05-15' 
AND direction LIKE 'Direction'; 

這裏面JDBC是這樣的:

"select DISTINCT x, y from table1, table2" + 
         "WHERE x=y and start_date <= ? and end_date >= ? and direction like ?" 
+0

也許沒有關於連接條件的匹配數據? –

+0

我檢查了MYSQL和SQL Server中的數據,兩者在結構和內容上都是相同的。 MYSQL版本返回2行,SQL Server返回0行。 –

+0

你正在連接到同一個數據庫作爲同一個用戶?是否記錄了任何錯誤? – DaveH

回答

0

答案是,SQL服務器需要用'%'分隔%。如本例:

Using "like" wildcard in prepared statement

我們的代碼工作正常使用MySQL驅動程序,但司機在這方面明顯不同。我簡化了該帖子,以防其他人遇到此問題並找到此帖。