要使用JDBC更改Oracle用户的密码,您需要做两件事:
- 将密码直接放在SQL字符串中(不能使用绑定参数),
- 禁用转义处理。
您不能使用绑定变量,因为用户名和密码不会作为单引号字符串发送到数据库。
将
?在SQL字符串被视为绑定变量占位符,因为这样的SQL字符串在由Oracle
JDBC某些时候得到错位。在语句上禁用转义处理可阻止这种情况的发生。尝试:
Statement s = conn.createStatement();s.setEscapeProcessing(false);s.executeUpdate("ALTER user Stephen identified by "newPassword?" replace "oldPassword"");如果以编程方式设置密码,则代码还应确保新密码和旧密码不包含任何
"字符,以避免SQL注入。



