2012-06-19 27 views
5

Chcę połączyć się z Oracle (11g) przy użyciu unixODBC. Chcę, aby ciąg znaków połączenia TYLKO określał wszystkie informacje z bazy danych/źródła danych, a pliki ODI INI (/etc/odbc.ini i /etc/odbcinst.ini) zawierały tylko ogólne informacje o sterowniku, takie jak miejsce odnalezienia ".so" itp., Tj. Chcę, aby były statyczny. Chcę to zrobić, aby uzyskać ciąg połączenia od użytkownika na zewnątrz i połączyć się ze źródłem danych bez konieczności modyfikowania żadnego z plików INI lub jakiejkolwiek innej konfiguracji na dysku.unixODBC/Oracle: Jak określić wszystkie informacje o źródle danych TYLKO w ciągu połączenia, a nie w plikach odbc * .ini

Wszystkie przykłady widziałem mnie określają informacje serwera w /etc/odbc.ini tak:

[myDSNname] 
Driver = OracleODBC-11g 
DSN = OracleODBC-11g 
ServerName = //xxx.xxx.xxx.xxx:1521/SID_NAME 
UserID = my_user 
Password = my_pass 

Teraz zorientowali się, jak uzyskać identyfikator użytkownika i hasło na zewnątrz do połączenia ciąg dodając "UID=my_user;PWD=my_pass" do połączenia ciąg znaków i usunąłem je z odbc.ini. Moja radość szybko minęła, kiedy nie mogłem znaleźć sposobu, aby uzyskać ServerName z odbc.ini i również w łańcuchu połączenia. Więc jak mam to zrobić? Czy istnieje sposób na pozbycie się DSN w odbc.ini w ogóle, i mają tylko Driver od odbcinst.ini w łańcuchu połączenia, tak jak robimy dla MySQL?

Edit: Próbując każdy z ciągów połączenia z www.connectionstrings.com które nie wydają się wymagać TNS lub DSN, incliuding EZCONNECT warianty, wszystko mi dać:

[HY000] [unixODBC][Oracle][ODBC][Ora]ORA-12162: TNS:net service name is incorrectly specified 
    (12162) (SQLDriverConnectW) 
+0

http://www.connectionstrings.com/oracle#p17 –

+0

@Brian - nie, nie mogę uzyskać żadnej z tych do pracy. Zawsze otrzymuję: "[HY000] [unixODBC] [Oracle] [ODBC] [Ora] ORA-12162: TNS: nazwa usługi sieci jest niepoprawnie określona" –

+0

Nie używaj wersji nazw tns i/lub upewnij się, że masz wpis w pliku nazw tns. –

Odpowiedz

5

wystarczy użyć dbq = adres: 1521/orcl, a dostaniesz to, co chcesz

+1

To było magiczne! – Alok