打开没有tnsnames.ora的oracle conn

时间:2011-10-31 16:39:12

标签: oracle asp-classic

我有一个在oracle 9g上运行的旧asp应用程序,并使用 OracleInProcServer.XOraSession 对象连接数据库

Set OraSession = Server.CreateObject("OracleInProcServer.XOraSession") 
Set OraBanco   = OraSession.DbOpenDatabase("ORADB01","Username/Password",cint(0))

所以,我在我的tnsnames.ora上注册了 ORADB01

现在假设我需要打开一个数据库的连接,我没有在我的tnsnames.ora上注册...有没有办法用 OracleInProcServer.XOraSession 打开连接?

2 个答案:

答案 0 :(得分:2)

未经测试但值得一试:

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)))"

答案 1 :(得分:0)

您必须在计算机上安装并可以访问某种类型的Oracle客户端。你可以使用//127.0.0.1:1521/XE打开一些与oracle的连接,因为这是Oracle XE而不是9i,你使用ASP更好的想法是

在机器级别定义ODBC连接或使用DNS文件 并且您必须在ASP服务器上提供oracle客户端。

或者如果您的asp服务器和机器相同,您可以使用IPC与服务器的连接

我用10G和XE完成了这项工作,它应该可以检查你应该在9i上工作。

我不知道9G 我认为这是9i。