打开没有tnsnames.ora的oracle连接
我有一个旧的asp应用程序在oracle 9g上运行,我使用一个OracleInProcServer.XOraSession对象连接数据库打开没有tnsnames.ora的oracle连接,oracle,asp-classic,Oracle,Asp Classic,我有一个旧的asp应用程序在oracle 9g上运行,我使用一个OracleInProcServer.XOraSession对象连接数据库 Set OraSession = Server.CreateObject("OracleInProcServer.XOraSession") Set OraBanco = OraSession.DbOpenDatabase("ORADB01","Username/Password",cint(0)) 所以,我在我的tnsnames.ora上注册了这个
Set OraSession = Server.CreateObject("OracleInProcServer.XOraSession")
Set OraBanco = OraSession.DbOpenDatabase("ORADB01","Username/Password",cint(0))
所以,我在我的tnsnames.ora上注册了这个ORADB01
现在让我们假设我需要打开一个与我没有在我的tnsnames.ora上注册的数据库的连接。。。有没有办法使用OracleInProcServer.XOraSession打开连接?未测试,但值得一试:
Set OraBanco = OraSession.DbOpenDatabase("YourServerName:1521/ORADB01","User/Pass",cint(0))
这至少可以用于将Oracle数据库链接到SQL Server
它不适用于XOraSession,但您甚至可以将整个连接信息放入ODBC连接字符串中:
Provider=OraOLEDB.Oracle.1;Password=***;User ID=username;Data Source="(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)
(HOST=YourDatabaseServer)(PORT=1521))
(CONNECT_DATA=(SERVICE_NAME = ORADB01)))"
您的计算机上必须有某种类型的Oracle客户端可用、已安装并可访问。您可以使用
//127.0.0.1:1521/XE
打开与oracle的某些连接,因为这是oracle XE而不是9i,您使用的是ASP,最好是
在计算机级别定义ODBC连接或使用DNS文件
并且您的ASP服务器上必须有可用的oracle客户端
或者,如果您的asp服务器和计算机相同,您可以使用IPC
连接服务器
我已经用10G和XE完成了这项工作,它工作得很好,您应该检查它是否可以在9i上为您工作
我不知道9G我想是9G。我试过了,但不幸的是,它不起作用。我可以在使用
ADODB.Connection
时执行类似操作。如果我在tnsnames.ora上有连接,我可以这样打开连接:objConn.open“DSN=oradb01;Uid=user;Pwd=pass;”
。但是,如果它不在我的tnsnames上,我可以这样打开连接:objConn.open“Driver={Microsoft ODBC for Oracle};CONNECTSTRING=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=myhost.com)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=oradb01.mydomain.com));uid=user;pwd=pass;“
很抱歉,我不能给你一个真正的解决方案。在连接XOraSession时,您似乎会被绑定到使用tnsnames.ora。我遇到了完全相同的问题,您的建议对我起到了作用。