2011-01-10 12 views
5

Próbuję połączyć się z bazą danych Oracle za pomocą kodu (Ruby/DBI, ale to nie ma znaczenia), używając ciągu połączenia EasyConnect. Cała dokumentacja Oracle mówi, aby określić ciąg połączenia jako // nazwa_hosta: port/nazwa_usługi. Nie mam nazwy usługi dla bazy danych, z którą muszę się połączyć, ale mam identyfikator SID. Czy istnieje sposób na utworzenie ciągu połączenia EasyConnect przy użyciu identyfikatora SID zamiast nazwy usługi?Ciąg połączenia Oracle EasyConnect przy użyciu identyfikatora SID?

Mój kod połączenie wygląda następująco:

DBI.connect("DBI:OCI8://localhost:9000/the_sid", "username here", "password here")

I próbować różnych rzeczy, w zależności od tego, co staram, mam jeden z dwóch komunikatów o błędach:

ORA-12514: TNS:listener does not currently know of service requested in connect descriptor (DBI::DatabaseError) 
ORA-12154: TNS:could not resolve the connect identifier specified (DBI::DatabaseError) 
+0

Czy jesteś pewien, że potrzebujesz nazwy hosta i numeru portu? Komunikat o błędzie zdaje się wskazywać, że masz uruchomionego słuchacza TNS. Jeśli nazwy TNS są poprawnie skonfigurowane, ciąg połączenia może mieć wartość "DBI: OCI8: the_sid". – Codo

+0

Nie mam skonfigurowanych nazw TNS. –

Odpowiedz

2

Czy ty spróbuj SID jako nazwy SERVICE? Zazwyczaj można określić identyfikator SID, w którym usługa jest żądana. SERVICE_NAMES zwykle jest domyślnym identyfikatorem SID. W wierszu poleceń SQL, należy wpisać:

SQL> show parameter service 

NAME         TYPE  VALUE 
------------------------------------ ----------- ------------------------------ 
service_names      string  sid 

SQL> 

Wartość (y) w kolumnie Wartość jest/są nazwa (-y) usługa baza danych jest zarejestrowany jako.

+0

Po uruchomieniu tego polecenia z Oracle SQL Developer, nie otrzymuję żadnych danych wyjściowych (może nie mam uprawnień do uruchamiania tego polecenia?) –

+0

Uważam, że jest to polecenie SQL * Plus, więc musisz uruchomić je z tego miejsca . –

+0

To polecenie SQL * Plus. Spróbuj uruchomić go z SQL * Plus. – DCookie

Powiązane problemy