1
我試圖使用預處理語句執行SQL Server查詢:JDBC錯誤時使用OPENQUERY一個T-SQL查詢來訪問鏈接服務器
PreparedStatement pst = con.prepareStatement("select * from openquery(SERVERNAME," +
"'Select r.A , r.B, c.C from Y r" +
"INNER JOIN X c" +
"ON r.RNID = c.RNID ')" +
"where c.C in ?");
pst.setString(1, data);
ResultSet rs = pst.executeQuery();
我收到此錯誤信息:
com.microsoft.sqlserver.jdbc.SQLServerException: Cannot get the column information from OLE DB provider "MSDASQL" for linked server "SERVERNAME".
更新
固定SQL語句添加想着以後摹空間
PreparedStatement pst = con.prepareStatement("select * from openquery(SERVERNAME, " +
"'Select r.A , r.B, c.C from Y r " +
"INNER JOIN X c " +
"ON r.RNID = c.RNID ') " +
"where c.C in ?");
我現在得到的錯誤
com.microsoft.sqlserver.jdbc.SQLServerException: The multi-part identifier "c.C" could not be bound
看起來像你OLEDB配置是錯誤的 – Jens
你在'INNER'和'ON'之前缺少空格。 – Andreas
我在'INNER'和'ON'之前加了空格,出現錯誤:'com.microsoft.sqlserver.jdbc.SQLServerException:無法綁定多部分標識符「cC」。(我更新了屬性名稱在我的帖子中查詢) – Platus