JDBC SQL SERVER: Die Anweisung hat keine Ergebnismenge zurückgegeben.

8

Hallo, ich habe diese SQL-Anfrage:

%Vor%

Ich führe diese Anfrage durch das Microsoft SQL Server Studio aus und es funktioniert gut und Zeilen werden angezeigt, aber wenn ich über Java mache

%Vor%

Dies gibt mir diese Ausnahme zurück Die Anweisung hat keine Ergebnismenge zurückgegeben. Ist das so, weil ich nicht mehrere Anfragen in einer Aussage machen kann? (Die temp_table erstellen, aktualisieren und dann für meine Auswahl verwenden)

    
user2966439 18.12.2013, 22:31
quelle

4 Antworten

3

Ich habe ähnliche Fragen in StackOverflow hier gefunden. Sie sollten die Verbindung aktivieren, um mehrere Anweisungen zu unterstützen und sie mit ; zu trennen. Für konkrete Beispiele siehe diese Antwort. Es ist jedoch nur für MySql.

Ich denke auch, dass Sie Ihr SQL in eine einzelne Abfrage umschreiben können

%Vor%

Eine weitere Option besteht darin, Ihre Anweisungen in die gespeicherte Prozedur zu verschieben und sie mit CallableStatement von JDBC zu entfernen.

Oder vielleicht sollten Sie versuchen, es mit mehreren jdbc-Anweisungen wie diesem auszuführen

%Vor%

Beachten Sie, dass Sie Ressourcen schließen müssen, und vielleicht könnten Sie zur besseren Leistung die Methoden addBatch und executeBatch

verwenden     
Antanas 18.12.2013, 22:40
quelle
22

JDBC wird durch Zeilenanzahl verwirrt.

Sie müssen SET NOCOUNT ON verwenden.

    
John Gietzen 07.03.2015 22:34
quelle
13

Verwenden Sie execute -Anweisung für Datenmanipulation wie einfügen, aktualisieren und löschen und executeQuery für Datenabruf wie Auswählen

Ich empfehle Ihnen, Ihr Programm in zwei Anweisungen zu unterteilen: ein execute und ein executeQuery .

Wenn Sie das nicht möchten, trennen Sie die Anweisungen mit Semikolon. Aber ich bin mir nicht sicher über diese Aktion, wenn dies eine Ergebnismenge ergibt oder nicht.

    
Ravindra Gullapalli 18.12.2013 22:42
quelle
0

in ms sql müssen Sie nocount auch am Anfang der Stored Procedure setzen und das select / update / insert Block Statement mit ";"

beenden     
Suresh Gourishett 16.11.2017 14:27
quelle

Tags und Links