我正在用Windows XP构build一个包含一些应用程序的盒子。 一个应用程序需要连接到远程的Oracle数据库。 我从Oracle下载安装了OracleXEClient.exe。 安装程序确实安装了“Oracle Provider for OLE DB”驱动程序。
我的问题是,我仍然无法连接到远程Oracle数据库。 我所做的testing是用Oracle提供者OLE DB连接创build一个UDL文件。 错误消息是:
--------------------------- Microsoft Data Link Error --------------------------- Test connection failed because of an error in initializing provider. ORA-12154: TNS:could not resolve the connect identifier specified
我想我可能会错过盒子里的TNSNAMEC.ora。 我可以从Oracle连接正常工作的另一个框中find这个文件。 我不确定我应该安装什么软件包(从Oracle),以便默认的TNSNAEMES.ora将安装相关的文件和安装path来访问TNS文件?
不确定是否可以复制TNSNAMES.ora并手动添加目录到环境path?
Oracle XE客户端没有tnsnames.ora。
要使用odbc连接,请使用此页面上的说明
或者像Gary所说的那样,c:> sqlplus / nolog
SQL> connect user / [email protected]:1521 / xe也应该可以工作。
如果你有XE客户端,你有sqlplus。 那就是我要开始testing连接的地方。 尝试以下风格的连接
sqlplus user/[email protected]:1521/xe
replace用户,pwd并放入您的XE数据库正在运行的IP地址。 如果有效,请退后一步,input主机名,而不是IP地址。 如果可行,请尝试
tnsping dbname
我假设它不会find连接。 但是它会告诉你类似于“用户参数文件:”在network / admin目录下的sqlnet.ora文件。把tnsnames.ora文件放到那个目录下(因为这是默认查找的地方)。
然后重试tnsping(在tnsnames.ora文件中给出数据库的任何标签)。 如果这不起作用,您可能需要修改tnsnames.ora文件中的主机名或IP地址值。
如果tnsping可以find它,那么你应该很好地去与一个
sqlplus user/pwd@dbname
一旦这个工作正常,就用OLE DB去吧
我不熟悉OracleXEClient。
对于传统的Oracle胖客户端,您需要为TNS_ADMIN指定一个系统环境variables,该variables指向tnsnames.ora所在的文件夹。 而且您可能需要注销/login该variables才能在您的环境中使用。
您还需要确保文件sqlnet.ora存在于同一个文件夹中,并指定您正在使用tnsnames。 例:
NAMES.DIRECTORY_PATH =(TNSNAMES,LDAP)
什么是Oracle客户端安装的ORACLE_HOME目录? 它可能是C:\ oracle \ product \的一个子文件夹,虽然我不熟悉XEClient安装。 在典型的Oracle 10g客户端安装中,主目录是C:\ oracle \ product \ 10.2.0 \ client_1。 假设这个目录,那么你的TNSNAMES.ORA文件位于C:\ oracle \ product \ 10.2.0 \ client_1 \ NETWORK \ ADMIN。 将您的工作TNSNAMES.ORA文件放在该目录中,然后再次testing。
TNS_ADMIN在安装多个oracle家庭中很有用。 这不是必需的。