Heim >Java >javaLernprogramm >Warum kann ich vorbereitete Anweisungen nicht zum Festlegen von Tabellennamen in SQL-Abfragen verwenden?

Warum kann ich vorbereitete Anweisungen nicht zum Festlegen von Tabellennamen in SQL-Abfragen verwenden?

Patricia Arquette
Patricia ArquetteOriginal
2024-12-10 05:32:14408Durchsuche

Why Can't I Use Prepared Statements to Set Table Names in SQL Queries?

Festlegen von Tabellennamen mithilfe vorbereiteter Anweisungen

Bei der Arbeit mit vorbereiteten Anweisungen ist es wichtig, deren Einschränkungen zu verstehen. Im angegebenen Beispiel ist der Entwickler beim Versuch, einen Tabellennamen mithilfe der Parameterersetzung festzulegen, auf einen Fehler gestoßen.

Problem:

Die Abfrage erfordert einen Tabellennamen als Quelle zum Datenabruf, aber die „SELECT“-Anweisung verwendete einen Parameter, an dem sich ein Tabellenname befand erwartet.

Lösung:

Tabellennamen können nicht dynamisch mithilfe vorbereiteter Anweisungsparameter festgelegt werden. Stattdessen müssen sie in der Abfrage selbst fest codiert werden. Die bereitgestellte Lösung ändert den Code so, dass er den Tabellennamen explizit als Zeichenfolge in die Abfrage einbezieht:

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

Durch die Kombination des hartcodierten Tabellennamens mit dem Parameter (?) kann die Abfrage die Datumskomponente währenddessen dynamisch aktualisieren wobei der Verweis auf die richtige Tabelle erhalten bleibt.

Das obige ist der detaillierte Inhalt vonWarum kann ich vorbereitete Anweisungen nicht zum Festlegen von Tabellennamen in SQL-Abfragen 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