言語設定を変更するためにoraclealtersessionクエリを実行しようとしましたが、「ORA-01036:不正な変数名/番号」というエラーで失敗します。
preparedStatement = connection.prepareStatement("ALTER SESSION SET NLS_SORT = ?");
preparedStatement.setString(1, "BINARY_CI");
preparedStatement.execute();
Oracleでは、ddlステートメントで変数をバインドすることはできません。バインド変数にはパフォーマンスが向上し(私のユースケースでは、このセッション変更クエリはWebアプリケーションで使用されるすべての接続で実行されます)、アプリケーションがSQLインジェクションを実行できないようにするためです。変数をバインドしない場合、上記のセッション変更クエリを実行する他の最適化された方法はありますか?