Na ratunek przyszedł przyjazny administrator bazy danych i odkrył, że jest to w rzeczywistości błąd Oracle:
Problem Description:
--------------------
When trying to connect by using the JDBC THIN 11g driver to a database 11g
using Enterprise User Security (EUS) connections throw invalid username/
When usign the JDBC OCI driver the connection can be made.
A teraz - trzymaj się swoich czapek:
Available Workarounds:
----------------------
Use OCI.
Zauważ, że użyłem 11.2.0.4, a błąd mówi
Tested Versions:
----------------
JDBC THIN Driver 11.1.0.6.0 and 11.1.0.7.0
Więc najwyraźniej istnieje już od jakiegoś czasu. Nie jestem pewien, czy to rozumiem - dlaczego wypuszczają nowe wersje tego sterownika, jeśli nie uda się poprawnie połączyć z bazą danych? Wygląda na to, że byłby to pierwszy problem, na który wszyscy napotykają podczas korzystania z cienkiego sterownika?
Ale wtedy nasz lokalny administrator bazy danych wykopał to:
Set the property oracle.jdbc.thinLogonCapability=o3 for the JDBC connection by passing the option oracle.jdbc.thinLogonCapability=o3 on the command line.
For example:
java -Doracle.jdbc.thinLogonCapability=o3 <Java Class>
There is no loss of security when following this workaround.
W Eclipse dodałem tę linię do argumentów VM (Uruchom -> Uruchom konfiguracje -> Argumenty -> Argumenty VM -> dodaj -Doracle.jdbc.thinLogonCapability=o3) i w końcu mogę przejść do baza danych.