Oracle
 sql >> Baza danych >  >> RDS >> Oracle

Zmień hasło użytkownika przez jdbc. Problemy z przepustkami zawierającymi znaki zapytania

Aby użyć JDBC do zmiany hasła użytkownika Oracle, musisz zrobić dwie rzeczy:

  • umieść hasło bezpośrednio w ciągu SQL (nie można użyć parametrów wiązania),
  • wyłącz przetwarzanie ucieczki.

Nie możesz używać zmiennych wiązania, ponieważ nazwa użytkownika i hasło nie są wysyłane do bazy danych jako ciągi w pojedynczym cudzysłowie.

? w ciągu SQL jest traktowany jako symbol zastępczy zmiennej wiążącej i z tego powodu ciąg SQL jest zniekształcany w pewnym momencie przez Oracle JDBC. Wyłączenie przetwarzania ucieczki w instrukcji zapobiega temu. Wypróbuj:

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

Jeśli ustawiasz hasło programowo, Twój kod powinien również upewnić się, że nowe i stare hasła nie zawierają żadnego " znaków, aby uniknąć wstrzyknięcia 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. Co dzieje się ze strefą czasową w sterowniku Oracle JDBC po zapisaniu daty Java w kolumnie TIMESTAMP?

  2. Problem z przerywanym połączeniem Oracle JDBC

  3. Procedura Oracle Run z jednym parametrem wejściowym i wieloma parametrami wyjściowymi

  4. Wywoływanie notacji dla podprogramów PL/SQL w bazie danych Oracle

  5. Procedura UTL_FILE.FOPEN() nie akceptuje ścieżki do katalogu?