0

我刚刚从 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文件中运行它?

4

2 回答 2

3

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

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

然后,您应该能够tnsping使用batchinsert或进行连接batchinsert.world

或者,您可以NAMES.DEFAULT_DOMAIN=WORLD从您的 中删除该行sqlnet.ora,但您可能已经有其他期望设置的内容。

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

于 2016-04-27T10:42:13.950 回答
1

SQL Developer 默认不读取 SQLNet.ORA

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

tns 目录 sql 开发人员首选项

如果您启用 THICK 驱动程序连接并设置了 $ORACLE_HOME 操作系统变量,那么 SQLDev 应该会看到并使用您的 SQLNet.ORA 文件进行连接。

于 2016-04-27T14:49:12.043 回答