ホームページ >Java >&#&チュートリアル >SQL でテーブル名にプリペアド ステートメント パラメータを使用できないのはなぜですか?

SQL でテーブル名にプリペアド ステートメント パラメータを使用できないのはなぜですか?

Linda Hamilton
Linda Hamiltonオリジナル
2024-12-11 10:10:18167ブラウズ

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

テーブル名に関するプリペアド ステートメント パラメータの問題

データ取得用のテーブル名を動的に設定しようとすると、ステートメント内でエラーが発生します。準備されたステートメントの実行。このエラーの原因は、テーブル名が必要なパラメータの使用にあります。

提供されたサンプル コードでは、パラメータ プレースホルダ「?」を含む準備済みステートメントが使用されています。そして、テーブル名を表す値をそれに割り当てようとします。ただし、パラメータを通じてテーブル名を動的に指定できないため、これは許可されません。これらはクエリ自体内で明示的に定義する必要があります。

解決策

この問題を解決するには、以下に示すようにテーブル名をクエリ文字列に直接ハードコーディングします。

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

この変更により、テーブル名がクエリ内で正しく定義され、前述のエラーが発生せずに正常に実行できることが保証されます。

以上がSQL でテーブル名にプリペアド ステートメント パラメータを使用できないのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。