如何为新的数据库连接编写sqlnet.ora和tnsnames.ora

时间:2016-04-27 10:08:14

标签: oracle tnsnames tnsping

我刚从Oracle SQL Developer创建了一个名为BATCHINSERT的新数据库连接。但是当我尝试tnsping时,我收到以下错误。

TNS Ping Utility for 64-bit Windows: Version 11.2.0.2.0 - Production on 27-APR-2016 15:28:37  

Copyright (c) 1997, 2014, Oracle.  All rights reserved.  

Used parameter files:  
C:\oraclexe\app\oracle\product\11.2.0\server\network\admin\sqlnet.ora

TNS-03505: Failed to resolve name

这是我的sqlnet.ora

# sqlnet.ora network configuration file in
# /opt/oracle/product/11.2.0/network/admin
NAMES.DIRECTORY_PATH=(TNSNAMES)
NAMES.DEFAULT_DOMAIN=WORLD
SQLNET.AUTHENTICATION_SERVICES = (NTS)

这是我的tnsnames.ora

BatchInsert=
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
(CONNECT_DATA =
  (SERVER = DEDICATED)
  (SID = XE)
))

如何为其编写条目,以便我可以从.bat文件中运行它?

2 个答案:

答案 0 :(得分:3)

您的sqlnet.ora设置的默认域名为WORLD,因此您的tnsnames条目也需要具有该名称:

BatchInsert.WORLD=
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
(CONNECT_DATA =
  (SERVER = DEDICATED)
  (SID = XE)
))

然后,您应该tnsping并使用batchinsertbatchinsert.world进行连接。

或者,您可以从NAMES.DEFAULT_DOMAIN=WORLD中移除sqlnet.ora行,但您可能还有其他事情需要设置。

这与SQL Developer无关,除非您想在连接定义中使用该TNS别名,而不是使用Basic连接。如果您已经拥有XE的TNS条目,则可以使用它,而无需定义指向同一服务/ SID的新条目。

答案 1 :(得分:1)

SQL Developer默认情况下不读取SQLNet.ORA

轻松修复,在“首选项”中,指向TNSNames文件的目录。

tns directory sql developer preferences

如果您启用THICK驱动程序连接并设置了$ ORACLE_HOME os var,那么SQLDev应该查看并使用您的SQLNet.ORA文件进行连接。