Ах. Это, вероятно, не будет работать тогда. Тем не менее, идея о том, что вопросительные знаки были неправильно истолкованы, все еще может быть правильной.
я проблема с изменением пароля пользователя, когда пароль содержит знак вопроса. До сих пор я не сталкивался с этой проблемой с каким-либо другим символом, он кажется специфичным для знака вопроса.
Если я изменю пароль пользователя в 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 для вопросительного знака, поэтому не похоже, что он был изменен на полпути.
Кто-нибудь знает, что может быть причиной такого поведения? В данный момент я в растерянности, я рассматриваю возможность предотвращения проходов с вопросительными знаками, чтобы пока обойти эту проблему.