sql >> Database teknologi >  >> RDS >> Oracle

Hvorfor kan jeg ikke oprette forbindelse via jdbc ved hjælp af SQLcl

Det ser ud til, at dit SID og servicenavn ikke er det samme. I SQL Developer ser det ud til, at du bruger SID'et - i det mindste i den tilpassede JDBC URL, du viste - som angivet med kolon i :vdbsl4 .

Din SQLcl URL bruger tjenestenavnet, som angivet med skråstreg i /vdbsl14 . Brug af SID i stedet (dvs. at ændre / til :) i den URL burde virke, da den bruger JDBC:

sqlcl username/[email protected]:1521:vdbsl14

Alternativt (og helst efter min mening) find ud af, hvad dit servicenavn egentlig er. Hvis du har tilstrækkelige privilegier på databasen, kan du show parameters service_names fra SQL Devleoper, eller hvis du har adgang til serveren som DBA kan du lave lsnrctl services , eller endda se på tnsnames.ora i tilfælde af at der er defineret et TNS-alias, der viser tjenestenavnet. (listener.ora vil sandsynligvis ikke hjælpe, men kan give hints, eller hvis du er heldig vise et standardtjenestenavn).

Du kan bruge dette tjenestenavn i en JDBC URL som /service_name .

Du kan også bruge et TNS-alias fra SQLcl (eller SQL*Plus). Du har muligvis allerede en tnsnames.ora ledig; hvis ikke, kan du muligvis kopiere den fra din server eller oprette din egen. Det kan referere til SID eller tjenestenavnet.

Du kan endda sende en fuld TNS-beskrivelse til SQL*Plus (ikke sikker på SQLcl), men det er lidt ubehageligt. Hvis du ikke har/ønsker en tnsnames.ora du kan bruge 'easy connect' syntaks, som er den samme som du bruger til SQLcl - men det har for at være tjenestenavnet tillader det ikke SID'er.




  1. datetime vs datetimeoffset i SQL Server:Hvad er forskellen?

  2. php:session fungerer ikke, mens den kører live på serveren

  3. mysql trigger med insert og opdatering efter insert på tabel

  4. GROUP_CONCAT kommaseparator - MySQL