我正在评估Oracle SQL Developer.
我tnsnames.ora已填充,并且tnsping定义的连接tnsnames.ora工作正常.但是,SQL Developer不显示任何连接.
Oracle SQL Developer Soars提到,如果
如果您的计算机上已经安装了Oracle客户端软件和tnsnames.ora文件,Oracle SQL Developer将自动从tnsnames.ora中定义的网络服务名称填充Connections导航器.
我还尝试设置我的TNS_ADMIN环境变量,但重启SQL Developer后仍然没有显示连接.
有任何想法吗?
有没有成功使用SQL Developer和tnsnames.ora的人?
我正在尝试使用SQL Developer连接到oracle数据库.
我安装了.Net oracle驱动程序并将tnsnames.ora文件放在
C:\Oracle\product\11.1.0\client_1\Network\Admin
我在tnsnames.ora中使用以下格式:
dev =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.XXX.XXX)(PORT = XXXX))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = idpdev2)
)
)
Run Code Online (Sandbox Code Playgroud)
在SQL Developer中,当我尝试创建新连接时,没有TNS名称显示为选项.
有什么我想念的吗?
我正在尝试使用以下连接字符串从NetBeans连接到Oracle 10.2.0:
jdbc:oracle:thin:@localhost:1521:XE
Run Code Online (Sandbox Code Playgroud)
最奇怪的部分是一切正常,直到重新启动之一.我一直开始得到这个TNS-12505错误; 看看我的最终作品listener.log:
TNSLSNR for 32-bit Windows: Version 10.2.0.1.0 - Production on 14-APR-2011 13:46:48
Copyright (c) 1991, 2005, Oracle. All rights reserved.
System parameter file is D:\oraclexe\app\oracle\product\10.2.0\server\network\admin\listener.ora
Log messages written to D:\oraclexe\app\oracle\product\10.2.0\server\network\log\listener.log
Trace information written to D:\oraclexe\app\oracle\product\10.2.0\server\network\trace\listener.trc
Trace level is currently 0
Started with pid=3460
Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(PIPENAME=\\.\pipe\EXTPROC_FOR_XEipc)))
Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=Brodyaga-PC)(PORT=1521)))
Listener completed notification to CRS on start
TIMESTAMP * CONNECT DATA [* PROTOCOL INFO] * EVENT [* SID] * RETURN CODE
14-APR-2011 13:48:54 * (CONNECT_DATA=(SID=XE)(CID=(PROGRAM=JDBC …Run Code Online (Sandbox Code Playgroud) 有时我会遇到Oracle连接问题,因为我无法弄清楚我的数据库客户端正在使用哪个tnsnames.ora文件.
想出这个的最佳方法是什么?++对各种平台解决方案感到满意
我正在开发一个非常简单的应用程序,我打算用它来解决我在几台机器上遇到的问题,但在我做到这一点之前,我遇到了一些问题,包括cpu架构差异和Oracle数据库库.
我有一个数据库服务器tnsnames.ora,坐在我的C:\oracle\11g\network\admin目录中.如果我收拾这台服务器,我会得到所需的响应.如果我使用Oracle.DataAccess.Client将我的C#程序编码为使用以下代码连接到此服务器,则它可以正常工作.
string connectionString = "Data Source=DSDSDS;User Id=UNUNUN;Password=PWPWPW;";
DataTable dataTable = new DataTable();
using (var connection = new OracleConnection(connectionString)) {
connection.Open();
using (var command = new OracleCommand()) {
command.Connection = connection;
command.CommandText = sql;
command.CommandType = CommandType.Text;
using (var oda = new OracleDataAdapter(command)) {
oda.Fill(dataTable);
}
}
}
Run Code Online (Sandbox Code Playgroud)
但是,Oracle.DataAccess依赖于它运行的系统的体系结构.我看到有另一个库Oracle.ManagedDataAccess,它独立于架构.当我使用这个库时,它不再能够连接到服务器.一个ORA-12545: Network Transport: Unable to resolve connect hostname被抛出.
为什么会这样?这两个库之间有什么不同,因为基于我到目前为止所读到的内容,这应该不是问题.
额外的信息:
C:\oracle\11g\BIN定义了.tnsnames.ora文件如果我将tnsnames.ora移动到与我的.exe文件相同的位置,它就可以了.为什么Oracle.DataAccess可以在C:\oracle\11g\network\admin目录中找到tnsnames.ora 但Oracle.ManagedAccess不能?
Borderline ServerFault问题,但我想先在这里尝试一下,因为我过去对Oracle的问题很满意.
我正在尝试从PHP连接到oracle数据库,我收到以下错误.
ORA-12505: TNS:listener does not currently know of SID given in connect descriptor
Run Code Online (Sandbox Code Playgroud)
这是PHP报告的错误,以及Oracle的listener.log中显示的错误.
我当前的问题是解决这个错误.我想回答的一个更大的问题是Oracle连接模型是如何工作的?
这是在我的本地Windows机器上运行的开发环境中,并且一直在运行.不幸的是,环境被移交给我(我没有设置它),谁的人没有设置它是不可用的帮我调试.
如果我在MySQL或PostgreSQL(我更熟悉的两个系统)中遇到类似的错误,我会检查以确保数据库进程正在运行,然后尝试使用用户名/密码/手动连接到数据库连接字符串.不幸的是,我不熟悉Windows上的Oracle工具(除了SQL Developer),我不知道什么是TNS:监听器或SID在Oracle的上下文中(我有一些模糊的想法,但模糊的想法很少有帮助你正在调试这样的东西)
任何一般建议将不胜感激.
每条评论的更新:
我的tnsnames.ora文件中有很多内容,相关条目是
OBS2 =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = steel-ae39650)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = OBS2)
)
)
Run Code Online (Sandbox Code Playgroud)
当我运行时,这不会反映在实例列表中
LSNRCTL> services
Run Code Online (Sandbox Code Playgroud)
所以我认为我的下一个问题是,如何尝试手动启动OBS2实例?
使用新的Oracle安装时,我Configuration Management Tools > Microsoft ODBC Administrator > System DSN > Add > [new installation]在下拉列表中没有TNSNAMES.ora连接名称.使用旧安装,这已经奏效了.

我已经尝试更新环境路径和注册表项,但仍无法找到一种方法让ODBC在下拉列表中看到它.

之前在Windows Server上安装了Oracle Client.我试图删除大部分文件,但我们的Oracle DBA说我们可以再做一次安装并用新位置更新环境路径.
据我所知,上的其他两个职位在这里和这里就这个问题.但是,我不确定TNS PING是否会有所帮助,因为它似乎是关于环境路径和ODBC能够找到.ora文件的问题.
TNSNAMES.ORA位置
TNS_Admin = E:\app\[username]\product\11.2.0\client_1\network\admin\TNSNAMES.ora
环境变量
TNS_Admin = E:\app\[username]\product\11.2.0\client_1
Path = E:\app\[username]\product\11.2.0\client_1
Run Code Online (Sandbox Code Playgroud)
注册表项
home3是新安装.我应该删除旧的注册表项(home2)吗?
HKLM\SOFTWARE\ORACLE\KEY_OraClient11g_home2和\..._home3
此外,如果我在"创建新数据源"屏幕中选择"OraClient11g_home2",则下拉列表中显示的内容如下:

我正在 Windows 服务器上工作并使用 Oracle ODBC 驱动程序访问 Oracle 数据库。我的 Oracle ODBC 连接在这台机器上运行良好。
但是我想添加一个新连接,在测试它时出现错误
Unable to connect
SQL State=S1000
[Oracle][ODBC][Ora] ORA-12170: TNS: Connect timeout occurred
Run Code Online (Sandbox Code Playgroud)
我认为,虽然我不是 DBA,但这与我的 TNS 服务名称不在 TNSNAMES.ORA 中有关,TNSNAMES.ORA 将 Oracle 指向正确的服务器、端口等。
但是我找不到 TNSNAMES.ORA
我有一个 ORACLE_HOME 环境变量,但它是空的。
我在哪里可以找到此文件或以其他方式配置我的 TNS 名称?
我有一个来自我之前工作场所的Oracle tnsnames.ora文件.我想在另一台计算机上使用我新安装的PL SQL Developer来解决它.我已将文件复制到..ORACLE/product/11.2.0/client_32/NETWORK/ADMIN中,但PL SQL Developer找不到它.
它启动时没有向我显示任何数据库选择.在About-> i-> TNSNames中,我看不到任何行
我在Tools-> Preferences-> Database - > ...中找到了许多建议,但我的首选项中没有Database选项卡.
我该如何解决?
在网络共享上使用tnsnames.ora文件时,使SQL Server链接服务器连接到Oracle时出现问题。
如果我将tnsnames.ora文件复制到本地服务器,则链接的服务器可以正常工作。但是,我们将文件保留在网络共享上。我的sql服务帐户对共享具有读取权限。我将TNS_ADMIN系统变量配置为网络共享,链接的服务器不再起作用。我得到ora-12154:无法解析指定的连接标识符。tnsping和sqlplus在服务器上工作。当我使用过程监视器进行进一步调查时,我看到:
Operation: createFile
Result: ACCESS DENIED
...
Impersonating: domain\MyLogin
Run Code Online (Sandbox Code Playgroud)
这似乎是一个问题,但也许是假阳性?如果某个进程试图模拟我的帐户并访问远程资源,则该进程将失败,因为我们没有将Kerberos配置为处理双跳。
在配置了网络共享的情况下,SQLPlus和TNSPing可以正常工作。
我看了这篇文章,尝试了看似相关但没有成功的项目。
附加信息:
sqlnet.ora具有:SQLNET.AUTHENTICATION_SERVICES =(NTS)NAMES.DIRECTORY_PATH =(TNSNAMES,EZCONNECT)
我可以将文件浏览器作为服务帐户打开,然后打开tnsnames文件。