解决方案 »

  1.   


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

  2.   

    建立数据库时候有个SID的,这个SID可以配置多个服务名。
    看楼主的SID应该是ORCL,用命令tnsping orcl看下
      

  3.   


    service_name 为orcl,
    你TNS文件中定义的服务名为ORACLE,尝试连接ORACLE试试
    ORACLE数据库是在其他服务器上,我是想连接上面的数据库,这个命令是不是要在ORACLE的服务器上去执行啊?我登陆不了哪台服务器,我目前只能用Navicat for Oracle软件连接上。
      

  4.   


    service_name 为orcl,
    你TNS文件中定义的服务名为ORACLE,尝试连接ORACLE试试
    如何尝试链接ORACLE呢?之前没用过ORACLE,不知道你说的是什么意思。
      

  5.   

    还有个问题是我没有在我的服务器上安装oracle 服务端,也没有网上说的listener.ora文件,不知道会不会有影响。
      

  6.   

    tnsnames配置的名字。
    ip:端口/sid
    主机名:端口/sid
      

  7.   

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

  8.   

    http://blog.chinaunix.net/uid-22864942-id-113496.html
      

  9.   

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

  10.   


    service_name 为orcl,
    你TNS文件中定义的服务名为ORACLE,尝试连接ORACLE试试
    如何尝试链接ORACLE呢?之前没用过ORACLE,不知道你说的是什么意思。
    你在TNS文件中定义的服务名字就叫ORACLE啊,所以你直接TNSPING ORACLE,系统会指定到你定义的服务名ORACLE所对应的实例名orcl,其实就是一个域名解析的过程啊
      

  11.   

    只有服务器短有监听。。客户端不需要监听。。
    客户端就是通过监听程序才到服务器的。。
    所以我们在连接数据库时候,配置的server name。需要指定端口。。这个端口就是监听的端口。。
    比如说,192.168.168.168:1521/sid
    意思就是我要连接168这台机器上的sid数据库,通过1521端口进入。。不知道你是否用过这个软件(下图),我现在用Navicat for Oracle软件输入连接信息后是可以正常连接上的,但是用这个软件就一直提示这个错误(下图),
    下面是tnsnames.ora中的配置信息,ip肯定是正确的,SERVICE_NAME = orcl我不确定是否正确,也试过大写的ORCL,我用Navicat for Oracle软件连接数据库后,执行两个查询语句select instance_name from v$instance;  select name from v$database;返回的是orcl 和 ORCL 。# TNSNAMES.ORA Network Configuration File: C:\oracle\ora90\network\admin\tnsnames.ora
    # Generated by Oracle configuration tools.#sample#DATABASENAME =
    #  (DESCRIPTION =
    #    (ADDRESS_LIST =
    #      (ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521))
    #    )
    #    (CONNECT_DATA =
    #      (SERVICE_NAME = servicename)
    #    )
    #  )ORACLE =
      (DESCRIPTION =
        (ADDRESS_LIST =
          (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.119)(PORT = 1521))
        )
        (CONNECT_DATA =
          (SERVICE_NAME = orcl)
        )
      )ORACLEBCV =
      (DESCRIPTION =
        (ADDRESS_LIST =
          (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.119)(PORT = 1521))
        )
        (CONNECT_DATA =
          (SERVICE_NAME = orcl)
        )
      )
    REPORT =
      (DESCRIPTION =
        (ADDRESS_LIST =
          (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.119)(PORT = 1521))
        )
        (CONNECT_DATA =
          (SERVICE_NAME = orcl)
        )
      )
      

  12.   

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

  13.   

    我如果可以用Navicat for Oracle软件连接到数据库,可以说明服务器端的监听已经开启了吗?
    其他软件能连接,证明服务器是正常的。。
    主机字符串里面写,192.168.1.119:1521/orcl
      

  14.   

    我如果可以用Navicat for Oracle软件连接到数据库,可以说明服务器端的监听已经开启了吗?
    其他软件能连接,证明服务器是正常的。。
    主机字符串里面写,192.168.1.119:1521/orcl非常感谢提醒,数据库连接的字符串应该写:Data Source=192.168.1.119:1521/orcl;
    主机字符串直接写:SERVICE_NAME中配置的一个名称就可以了,终于成功了。感谢。还要提醒大家一下,如果后安装Oracle9i客户端精简版就会把Navicat for Oracle软件弄的不能用,提示:ORA-12705: Cannot access NLS data files or invalid environment specified 错误 。
    网站说去修改注册表里 /HKEY_LOCAL_MACHINE/SOFTWARE/ORACLE ,但是我服务器上根本找不到这个注册表,原因应该就是我先安装的ODTwithODAC11,后来有安装Oracle9i客户端精简版造成的注册表信息变化。  先装了数据库,用net调试的时候没有问题,但是生成网站后,在连接数据库的时候提示说客户端的版本太低(意思就是这个),后又装了一个9i的客户端,之后就把相关服务改成手动,N天之后发现数据库不能正常启动。错误的根源是在不论在安装精简客户端还是服务器端时都会在注册表中添加一些信息,   1、当先安装精简客户端尔后又装服务器端时不会有问题出现,不过精简客户端此时已不再管用。所有的tnsname都以服务器安装的路径为主。   2、但是把顺序反过来就会有错,特别是当者不在相同的目录下的时候。因为此时注册表信息已发生的改变。HKEY_LOCAL_MANCHINE\SOFTWARE\ORACLE,当你把精简客户端卸载的时候这个目录项会被删除。