unixODBC/Oracle: Как мне указать всю информацию об источнике данных ТОЛЬКО в строке подключения и нет в файлах odbc*.ini

Я хочу подключиться к Oracle ( 11g) с использованием unixODBC. Я хочу, чтобы строка подключения ТОЛЬКО указывала всю информацию о базе данных/источнике данных, а INI-файлы ODBC (/etc/odbc.iniи /etc/odbcinst.ini) содержат только общую информацию о драйвере, например, где найти «.so» и т. д., т.е. я хочу, чтобы они были статическими.Я хочу сделать это, чтобы я мог получить строку подключения от пользователя извне и подключиться к источнику данных без необходимости изменять какие-либо INI-файлы или любую другую конфигурацию на диске.

Все примеры, которые я видел, заставляют меня определять информацию о сервере в /etc/odbc.iniследующим образом:

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

Теперь я выяснил, как получить идентификатор пользователя и пароль в строке подключения. добавив "UID=my_user;PWD=my_pass"в строку подключения и удалив их из odbc.ini. Моя радость быстро прошла, когда я не смог найти способ получить ServerNameиз odbc.ini, а также в строку подключения. Итак, как мне это сделать? И есть ли способ вообще избавиться от DSN в odbc.iniи иметь только Driverиз odbcinst.iniв строке подключения, например мы делаем для MySQL?

Редактировать: Попытка использовать любую из строк подключения с www.connectionstrings.com, которые не требуют TNS или DSN, включая варианты EZCONNECT, дает мне:

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

6
задан e.dan 19 June 2012 в 10:18
поделиться