Es sieht so aus, als ob Ihre SID und Ihr Dienstname nicht identisch sind. In SQL Developer scheinen Sie die SID zu verwenden - zumindest in der von Ihnen angezeigten benutzerdefinierten JDBC-URL - wie durch den Doppelpunkt in :vdbsl4
angegeben .
Ihre SQLcl-URL verwendet den Dienstnamen, wie durch den Schrägstrich in /vdbsl14
angegeben . Die Verwendung der SID stattdessen (d. h. das Ändern des / in :) in dieser URL sollte funktionieren, da JDBC verwendet wird:
sqlcl username/pass@delphix-vdb-n-1.va2.b2c.nike.com:1521:vdbsl14
Alternativ (und meiner Meinung nach am besten) finden Sie heraus, wie Ihr Dienstname tatsächlich lautet. Wenn Sie über ausreichende Berechtigungen für die Datenbank verfügen, können Sie show parameters service_names
ausführen von SQL Devleoper, oder wenn Sie als DBA Zugriff auf den Server haben, können Sie lsnrctl services
ausführen , oder schauen Sie sich sogar die tnsnames.ora
an falls ein TNS-Alias definiert ist, der den Dienstnamen anzeigt. (listener.ora
wird wahrscheinlich nicht helfen, könnte aber Hinweise geben oder, wenn Sie Glück haben, einen Standarddienstnamen anzeigen).
Sie können diesen Dienstnamen in einer JDBC-URL als /service_name
verwenden .
Sie können auch einen TNS-Alias von SQLcl (oder SQL*Plus) verwenden. Möglicherweise haben Sie bereits eine tnsnames.ora
verfügbar; Wenn nicht, können Sie es möglicherweise von Ihrem Server kopieren oder ein eigenes erstellen. Das kann sich auf die SID oder den Dienstnamen beziehen.
Sie können sogar eine vollständige TNS-Beschreibung an SQL*Plus übergeben (bei SQLcl nicht sicher), aber das ist etwas unangenehm. Wenn Sie keine tnsnames.ora
haben/möchten Sie können die 'easy connect'-Syntax verwenden, die die gleiche ist, die Sie für SQLcl verwenden - aber das hat um der Dienstname zu sein, erlaubt er keine SIDs.