Ich versuche, eine SQL Server-Abfrage mit Prepared-Anweisungen auszuführen:JDBC Fehler beim Ausführen einer T-SQL-Abfrage, die OPENQUERY verwendet einen Verbindungsserver zuzugreifen
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();
ich diese Fehlermeldung:
com.microsoft.sqlserver.jdbc.SQLServerException: Cannot get the column information from OLE DB provider "MSDASQL" for linked server "SERVERNAME".
aktualisieren
nach der SQL-Anweisung zur Festsetzung des missin hinzufügen g Räume
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 ?");
ich jetzt den Fehler
com.microsoft.sqlserver.jdbc.SQLServerException: The multi-part identifier "c.C" could not be bound
Sieht aus wie Sie OLEDB Konfiguration ist falsch – Jens
Sie fehlen Leerzeichen vor 'INNER' und' ON'. – Andreas
Ich habe Leerzeichen vor 'INNER' und' ON' hinzugefügt und bekomme den Fehler: 'com.microsoft.sqlserver.jdbc.SQLServerException: Die mehrteilige Kennung" cC "konnte nicht gebunden werden. (Ich habe die Attributnamen in aktualisiert die Abfrage in meinem Post) – Platus