Ссылка на внешний файл в TNSORANAMES.ora

#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 . Однако я не думаю, что для этой переменной среды может быть определено несколько путей.