日期:2014-05-17  浏览次数:21324 次

Oracle连接中的SERVICE_NAME到底是指的什么?是服务器名称吗,还是建立数据库时候的命名,还是什么?
之前一直在用sql server数据库,Oracle之前没有用过,今天在做一个功能就是我的一个.net网站想与一个Oracle数据库做连接,Oracle数据库在其他服务器上,我现在用Navicat for Oracle软件可以连接到Oracle数据库,我想着想用C#程序与Oracle数据库做连接,连接时候发现了一些问题:

问1:Oracle连接中的SERVICE_NAME到底是指的什么?是服务器名称吗,还是建立数据库时候的命名,还是什么?

问2:错误提示1:ORA-12504: TNS: 监听程序在 CONNECT_DATA 中未获得 SERVICE_NAME,下图:

源代码:


问3:用其他的软件连接:


问4:网站说我用下面的代码可以获得到SERVICE_NAME,但是两个代码获得的一个是大写一个是小写,不知道是否没区别。这个获得到的是真实的数据库服务器端的SERVICE_NAME吗?



问5:下图:


问6:我服务器上安装了下图的软件,安装这些软件是否可以满足我的需求呢,需求就是.net网站要跟新远程服务器上的Oracle数据库。







问题有点多,希望高人指点,感激不尽!




------解决方案--------------------
引用:
问题有点多,希望高人指点,感激不尽!


service_name 为orcl,
你TNS文件中定义的服务名为ORACLE,尝试连接ORACLE试试


------解决方案--------------------
建立数据库时候有个SID的,这个SID可以配置多个服务名。
看楼主的SID应该是ORCL,用命令tnsping orcl看下
------解决方案--------------------
tnsnames配置的名字。
ip:端口/sid
主机名:端口/sid
------解决方案--------------------
在客户端配置TNSNAME
监听在服务端启动,是用来监听客户端发起的连接请求的
------解决方案--------------------
http://blog.chinaunix.net/uid-22864942-id-113496.html
------解决方案--------------------
引用:
还有个问题是我没有在我的服务器上安装oracle 服务端,也没有网上说的listener.ora文件,不知道会不会有影响。

只有服务器短有监听。。客户端不需要监听。。
客户端就是通过监听程序才到服务器的。。
所以我们在连接数据库时候,配置的server name。需要指定端口。。这个端口就是监听的端口。。
比如说,192.168.168.168:1521/sid
意思就是我要连接168这台机器上的sid数据库,通过1521端口进入。。
------解决方案--------------------
引用:
Quote: 引用:

Quote: 引用:


问题有点多,希望高人指点,感激不尽!


service_name 为orcl,
你TNS文件中定义的服务名为ORACLE,尝试连接ORACLE试试


如何尝试链接ORACLE呢?之前没用过ORACLE,不知道你说的是什么意思。

你在TNS文件中定义的服务名字就叫ORACLE啊,所以你直接TNSPING ORACLE,系统会指定到你定义的服务名ORACLE所对应的实例名orcl,其实就是一个域名解析的过程啊
------解决方案--------------------
引用:
Quote: 引用:

在客户端配置TNSNAME
监听在服务端启动,是用来监听客户端发起的连接请求的

我如果可以用Navicat for Oracle软件连接到数据库,可以说明服务器端的监听已经开启了吗?

其他软件能连接,证明服务器是正常的。。
主机字符串里面写,192.168.1.119:1521/orcl