在TNSORANAMES.ora中引用外部文件

时间:2011-10-14 14:48:42

标签: oracle oracleclient

我正在尝试编写一个VB脚本来添加/编辑/删除tnsnames.ora中的一些条目。引用/修改外部文件(比如myProjectOraNames.ora)而不是修改tnsnames.ora

会很方便

使用此配置(假设可能),Oracle客户端应引用现有的tnsnames.ora文件和新的myProjectOraNames.ora来获取服务详细信息。

是否可以使用任何选项/配置来实现此功能?

2 个答案:

答案 0 :(得分:7)

您可以使用IFILE命令将主tnsnames.ora文件配置为使用其他文件。

例如,在我的笔记本电脑上,我为各种客户端提供了单独的tnsnames.ora文件。所以我的tnsnames.ora文件看起来像

JCAVE11G.WORLD =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = <<ip address>>)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = jcave11gr2)
    )
  )


IFILE = c:\oracle\product\11.1.0\db_1\Network\Admin\tnsnames.ora.client1
IFILE = c:\oracle\product\11.1.0\db_1\Network\Admin\tnsnames.ora.client2
IFILE = c:\oracle\product\11.1.0\db_1\Network\Admin\tnsnames.ora.client3

您可以执行类似的操作,其中主要tnsnames.ora文件具有对myProjectOraNames.ora文件的IFILE引用

答案 1 :(得分:0)

冒一些冲突或故障,您始终可以使用TNS_ADMIN变量确定SQL * Net配置文件(如sqlnet.ora和tnsnames.ora)所在目录的位置。 在您的脚本中,您可以执行以下某些特性:

set TNS_ADMIN=\some\path

(确保\some\path包含所有必需的sql * net文件。)

然后继续更新 - 使用此上下文运行的客户端将在\some\path下查找文件。但是,我认为您不能为此环境变量定义多个路径。