Subject about says it all -- the new password specified in the "Change Password" SQL needs to be in double quotes if the DB requires case-sensitive passwords. The old password appears to be in quotes in the SQL, but not the new one. (at least that's how I remember it to be from prior to the long Turkey Day weekend)
I've been trying to find a DB to test this on without messing up my current password because of the security restrictions on password reuse, etc. My password also contained a special character, but that also doesn't seem to affect anything.
Does the password change prompt on connecting to a "EXPIRED (GRACE)" account act differently? I'm not able to easily test that out at the moment...
6 months (and multiple password changes) later, it has just happened again. This password change is a local account in a DBA-only PDB (Oracle v19.18).
Logged into the PDB with my CDB common account that has DBA privs.
Typed in old password and the New/Verify new password fields.
SQL> ALTER USER MYUSER IDENTIFIED BY "Woowie754!NewExclamation" REPLACE MyOld88Pwd!WithExcl
>> ALTER USER MYUSER IDENTIFIED BY "Woowie754!NewExclamation" REPLACE MyOld88Pwd!WithExcl
Error at line 2
ORA-00922: missing or invalid option
Script stopped on line 2.
All accounts and passwords have been munged to protect the innocent (and me, too!).
Seems like the password in the REPLACE also requires quotes, possibly for the exclamation as DougK mentioned all those months ago.