sql >> Databáze >  >> RDS >> Oracle

Změňte uživatelské heslo pomocí jdbc. Problémy s průchody obsahujícími otazníky

Chcete-li použít JDBC ke změně hesla uživatele Oracle, musíte udělat dvě věci:

  • zadejte heslo přímo do řetězce SQL (nelze použít parametry vazby),
  • zakázat zpracování escape.

Nemůžete použít proměnné vazby, protože uživatelské jméno a heslo se do databáze neodesílají jako řetězce v jednoduchých uvozovkách.

? v řetězci SQL je brán jako zástupný symbol pro proměnnou vazby a kvůli tomu je řetězec SQL v určitém okamžiku narušen Oracle JDBC. Zakázání zpracování escape v příkazu zabrání tomu, aby se to stalo. Zkuste:

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

Pokud heslo nastavujete programově, váš kód by měl také zajistit, aby nové a staré heslo neobsahovalo žádné " znaků, abyste se vyhnuli vkládání SQL.



  1. SQL příkaz není správně ukončen?

  2. PostgreSQL konektor na OSGi

  3. Jak vypočítat tržby v MySQL

  4. Jak přidat cizí klíč (MySQL)