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)
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
Nie mam skonfigurowanych nazw TNS. –