Oracle
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Oracle

Thay đổi mật khẩu người dùng qua jdbc. Sự cố với đường chuyền có chứa dấu chấm hỏi

Để sử dụng JDBC để thay đổi mật khẩu của người dùng Oracle, bạn cần thực hiện hai việc:

  • đặt mật khẩu trực tiếp trong chuỗi SQL (không thể sử dụng các tham số liên kết),
  • tắt xử lý thoát.

Bạn không thể sử dụng các biến liên kết vì tên người dùng và mật khẩu không được gửi đến cơ sở dữ liệu dưới dạng các chuỗi được trích dẫn đơn.

? trong chuỗi SQL đang được coi là một trình giữ chỗ biến liên kết và vì điều này, chuỗi SQL đang bị Oracle JDBC xử lý tại một số điểm. Việc tắt xử lý thoát trên câu lệnh sẽ ngăn điều này xảy ra. Hãy thử:

Statement s = conn.createStatement();
s.setEscapeProcessing(false);
s.executeUpdate("ALTER user Stephen identified by \"newPassword?\" replace \"oldPassword\"");

Nếu bạn đang đặt mật khẩu theo chương trình, mã của bạn cũng phải đảm bảo rằng mật khẩu mới và cũ không chứa bất kỳ " nào để tránh đưa vào SQL.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Tại sao truy vấn Oracle 12c yêu cầu dấu ngoặc kép xung quanh bảng

  2. Xử lý ngoại lệ chèn hàng loạt JDBC

  3. Cách thực thi câu lệnh SQL Oracle với VBScript

  4. Không thể tạo chuỗi Oracle ARRAY của varchar2 trong JDBC

  5. Làm thế nào để tham chiếu id của cha mẹ trong id của trẻ với JPA / Hibernate?