У меня проблема с изменением пароля пользователя, когда пароль содержит знак вопроса char.До сих пор я не сталкивался с этой проблемой ни с каким другим символом, он кажется специфичным для вопросительного знака char.
Если я изменяю пароль пользователя в sqlplus, используя следующий sql:
Alter user Stephen identifed by "NewPassword?" REPLACE "OldPassword";
Затем он успешно меняет проход, и я могу войти в систему, используя новый пароль 'NewPassword?'.
Однако, если я выполню тот же SQL через jdbc:
final String query = "ALTER user Stephen identified by \"NewPassword?\" REPLACE \"OldPassword\"";<br>
stmt.executeUpdate(query);
, я не смогу войти в систему, используяпроход 'NewPassword?'.
Проверка хэш-кодов для пароля при вводе через sqlplus и jdbc показывает, что они разные.Каким-то образом, когда я запускаю оператор в jdbc, он вводит что-то отличное от «NewPassword?».
Кажется, у меня нет проблем со следующими паролями: NewPassword, NewPassword \, NewPassword '.Кажется, это просто вопросительный знак, вызывающий проблемы.
Отладка показывает, что для вопросительного знака точка кода (dec) равна 63, так что это не похоже на то, что его изменяют на полпути.
Кто-нибудьесть идеи, что может быть причиной такого поведения?В данный момент я в растерянности, я рассматриваю возможность предотвращения проходов с вопросительными знаками, чтобы пока обойти эту проблему.