sql >> Databasteknik >  >> RDS >> Oracle

Varför kan jag inte ansluta via jdbc med SQLcl

Det verkar som om ditt SID och tjänstnamn inte är samma. I SQL Developer verkar du använda SID - åtminstone i den anpassade JDBC URL som du visade - som betecknas med kolon i :vdbsl4 .

Din SQLcl-URL använder tjänstens namn, som anges med snedstrecket i /vdbsl14 . Att använda SID istället (dvs. ändra / till :) i den URL:en borde fungera eftersom den använder JDBC:

sqlcl username/[email protected]:1521:vdbsl14

Alternativt (och helst, enligt min mening) ta reda på vad ditt tjänstnamn faktiskt är. Om du har tillräckliga privilegier på databasen kan du show parameters service_names från SQL Devleoper, eller om du har tillgång till servern som DBA kan du göra lsnrctl services , eller till och med titta på tnsnames.ora om det finns ett TNS-alias definierat som visar tjänstens namn. (listener.ora kommer sannolikt inte att hjälpa, men kan ge tips eller om du har tur visa ett standardtjänstnamn).

Du kan använda det tjänstnamnet i en JDBC-URL, som /service_name .

Du kan också använda ett TNS-alias från SQLcl (eller SQL*Plus). Du kanske redan har en tnsnames.ora tillgängligt; annars kanske du kan kopiera den från din server eller skapa din egen. Det kan referera till SID eller tjänstens namn.

Du kan till och med skicka en fullständig TNS-beskrivning till SQL*Plus (osäker på SQLcl) men det är lite obehagligt. Om du inte har/vill ha en tnsnames.ora du kan använda 'lätt anslutning'-syntax, vilket är samma som du använder för SQLcl - men det har för att vara tjänstens namn tillåter det inte SID.




  1. Oracle skapa tabell med kolumnkommentarer

  2. Genomför en begränsning med främmande nyckel för kolumner i samma tabell

  3. JDBC PreparedStatement och parametrar (?) i den valda frågan

  4. MySQL dubbelt lika tecken