Heim >Java >javaLernprogramm >Warum kann ich vorbereitete Anweisungen nicht zum Festlegen von Tabellennamen in SQL-Abfragen verwenden?
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!