Heim >Java >javaLernprogramm >Warum kann ich keine vorbereiteten Anweisungsparameter für Tabellennamen in SQL verwenden?

Warum kann ich keine vorbereiteten Anweisungsparameter für Tabellennamen in SQL verwenden?

Linda Hamilton
Linda HamiltonOriginal
2024-12-11 10:10:18167Durchsuche

Why Can't I Use Prepared Statement Parameters for Table Names in SQL?

Problem mit vorbereiteten Anweisungsparametern mit Tabellennamen

Bei dem Versuch, dynamisch einen Tabellennamen für den Datenabruf festzulegen, ist ein Fehler aufgetreten vorbereitete Anweisungsausführung. Der Grund für diesen Fehler liegt in der Verwendung eines Parameters, bei dem ein Tabellenname erwartet wird.

Der bereitgestellte Beispielcode verwendet eine vorbereitete Anweisung mit einem Parameterplatzhalter „?“ und versucht, ihm einen Wert zuzuweisen, der einen Tabellennamen darstellt. Dies ist jedoch nicht zulässig, da Tabellennamen nicht dynamisch über Parameter angegeben werden können. Sie müssen explizit in der Abfrage selbst definiert werden.

Lösung

Um dieses Problem zu beheben, codieren Sie den Tabellennamen direkt in die Abfragezeichenfolge, wie unten gezeigt:

private String query1 = "SELECT plantID, edrman, plant, vaxnode FROM [" + reportDate + "]"?";

Diese Änderung stellt sicher, dass der Tabellenname in der Abfrage korrekt definiert ist und ohne den oben genannten Fehler erfolgreich ausgeführt werden kann.

Das obige ist der detaillierte Inhalt vonWarum kann ich keine vorbereiteten Anweisungsparameter für Tabellennamen in SQL verwenden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn