数据库
首页 > 数据库> > Java为oracle alter session查询准备了语句参数

Java为oracle alter session查询准备了语句参数

作者:互联网

我尝试执行oracle alter session查询来更改语言设置,但它失败并显示错误“ORA-01036:非法变量名称/编号”.

preparedStatement = connection.prepareStatement("ALTER SESSION SET NLS_SORT = ?");

preparedStatement.setString(1, "BINARY_CI");

preparedStatement.execute();

Oracle不允许在ddl语句中绑定变量.由于绑定变量具有性能提升(在我的用例中,此alter session查询将在Web应用程序中使用的每个连接上执行),并且它还会阻止应用程序从SQL注入我想使用它们.如果没有绑定变量,还有其他任何优化的方法来执行上面的alter session查询吗?

解决方法:

绑定变量具有性能提升,因为查询解析/优化仅执行一次,而不是每次执行.

在该alter session调用上没有进行解析,使用绑定变量在这里不会获得任何性能方面的信息.

对于SQL注入,只需根据您支持的排序规则列表验证排序规则的名称.

标签:java,oracle,prepared-statement,bind-variables
来源: https://codeday.me/bug/20190903/1798158.html