#oracle #oracleclient
#Oracle #oracleclient
Вопрос:
Я пытаюсь написать скрипт VB для добавления / редактирования / удаления некоторых записей в tnsnames.ora. Будет удобно ссылаться / изменять внешний файл (скажем, myProjectOraNames.ora), а не изменять tnsnames.ora
При такой конфигурации (при условии, что это возможно) клиент Oracle должен ссылаться как на существующий файл tnsnames.ora, так и на мой новый myProjectOraNames.ora, чтобы получить сведения о службе.
Можно ли выполнить какие-либо опции / настройки для достижения этой функциональности?
Комментарии:
1. вы исследовали oracle OID?
Ответ №1:
Вы можете настроить основной файл tnsnames.ora для использования и других файлов, используя команду IFILE .
Например, на моем ноутбуке у меня есть отдельные файлы tnsnames.ora для разных клиентов. Итак, мой файл tnsnames.ora выглядит примерно так
JCAVE11G.WORLD =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = <<ip address>>)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = jcave11gr2)
)
)
IFILE = c:oracleproduct11.1.0db_1NetworkAdmintnsnames.ora.client1
IFILE = c:oracleproduct11.1.0db_1NetworkAdmintnsnames.ora.client2
IFILE = c:oracleproduct11.1.0db_1NetworkAdmintnsnames.ora.client3
Вы могли бы сделать что-то подобное, где основной файл tnsnames.ora содержит ссылку IFILE на ваш файл myProjectOraNames.ora
Ответ №2:
Рискуя некоторыми конфликтами или сбоями, вы всегда можете определить местоположение каталога, в котором находятся файлы конфигурации SQL * Net (например, sqlnet.ora и tnsnames.ora) — с помощью TNS_ADMIN
переменной. В вашем скрипте вы можете сделать что-то следующего характера:
set TNS_ADMIN=somepath
(Убедитесь, что somepath
в нем есть все необходимые файлы sql * net.)
а затем продолжайте обновления — клиент, работающий с этим контекстом, будет искать файлы в разделе somepath
. Однако я не думаю, что для этой переменной среды может быть определено несколько путей.