服务器数据库为oracle 10g x64 for windows
客户端为XP系统(防火墙1521端口已开).
公司有dns和dhcp.
客户端先装了oracle client  然后用net configuration assistant配置好监听器和本地net服务名.测试,连接成功.sqlplus同样正常.
接着配置好ODBC.
但是当用excel导入外部数据的时候,会提示错误ora-12514:TNS: 监听程序当前无法识别连接描述符中请求的服务 
在几台电脑上都试了.同样的问题.下面是其中一台电脑 oracle client的listener.ora SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (SID_NAME = PLSExtProc)
      (ORACLE_HOME = d:\oracle\product\10.2.0\client_1)
      (PROGRAM = extproc)
    )
  )LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST = sc13.smt-sh.com.cn)(PORT = 1521))
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC0))
    )
  )sqlnet.ora
SQLNET.AUTHENTICATION_SERVICES= (NTS)NAMES.DIRECTORY_PATH= (TNSNAMES, EZCONNECT)tnsnames.ora
OA =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = oaserver)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = oa)
    )
  )EXTPROC_CONNECTION_DATA =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC0))
    )
    (CONNECT_DATA =
      (SID = PLSExtProc)
      (PRESENTATION = RO)
    )
  )请各位高人不吝赐教. 

解决方案 »

  1.   


    tnsnames.ora 
    OA = 
      (DESCRIPTION = 
        (ADDRESS_LIST = 
          (ADDRESS = (PROTOCOL = TCP)(HOST = oaserver)(PORT = 1521))      --oaserver能否改为服务器的IP地址。
        ) 
        (CONNECT_DATA = 
          (SERVICE_NAME = oa) 
        ) 
      ) 
      

  2.   

    sc13.smt-sh.com.cn改成oaserver;
    或oaserver改成sc13.smt-sh.com.cn试下
      

  3.   

    你监听在哪个主机上?怎么listener.ora和tnsnames.ora中指定的host不一致呢?
      

  4.   

    把sc13.smt-sh.com.cn改成oaserver,重启电脑.还是不行.
      

  5.   

    有点乱,这样吧:在客户端使用net configuration assistant重新配置本地的服务名(使用服务器的IP地址),测试成功后再用。
      

  6.   

    WGP =
      (DESCRIPTION =
        (ADDRESS_LIST =
          (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.97)(PORT = 1521))
        )
        (CONNECT_DATA =
          (SERVICE_NAME = xxb)
        )
      )
      

  7.   


    OA = 
      (DESCRIPTION = 
        (ADDRESS_LIST = 
          (ADDRESS = (PROTOCOL = TCP)(HOST = oaserver)(PORT = 1521)) 
        ) 
        (CONNECT_DATA = 
          (SERVICE_NAME = oa) 
        ) 
      ) 
     
    有区别么?   IP?   IP我试过了,同样不行
      

  8.   

    你的listener.ora和tnsnames.ora中的host必须一样啊。
    你的监听到底在哪个主机上,就填那个主机的host
      

  9.   

    改过之后,
    你在客户端通过:sqlplus user/pwd@sid
    的方式能否登陆数据库?
      

  10.   

    我把客户端的监听删除了.sqlplus正常登陆.excel照旧连不上.ora-12514
      

  11.   

    登陆进数据库后,执行:alter system register;
    再用excel试试。
      

  12.   

    顶楼上...
    检查一下SERVICE_NAME=oa有没有被listener知道...
    不行的话试试隔一会重新登录...
      

  13.   

    登陆进数据库后,执行:alter system register; 
    再用excel试试。
      

  14.   

    登陆进数据库后,执行:alter system register; 
    再用excel试试。
      

  15.   


    excel你是怎么用的?是不是你的odbc配不对,没连上?
      

  16.   

    我在这里测试:excel,“选择数据源”对话框,点“新建源(S)...”按钮,出现一“数据连接向导”,选 Oracle, 下一步,然后输入正确的服务名、用密名、密码 就OK了
      

  17.   

    excel首先导入acess数据库,建立odbc,在excel中选中导出的方式为建立的odbc的数据源,就可以了
      

  18.   

    excel首先导入acess数据库,建立odbc,在acess中选中导出的表,导出的方式为建立的odbc的数据源,就可以了
      

  19.   

    我测的时候没有问题啊,excel中操作步骤:数据->导入外部数据->导入数据->新建源->oracle 然后就是配置服务名,用户名及密码,后面就比较简单了。一看就明了。
      

  20.   

    自己找到原因了.
    在这几台机器上装oracle client时候  选择的是运行时(233MB) 造成某些组件没有安装(体现为:开始菜单->程序->Oracle_oracleclient10g_home1->配置和移植工具->(Microsoft ODBC 管理员)此项没有)  而且odbc管理->添加->(Oracle in OracleClient10g_home1)此驱动也没有.PS:用 Microsoft ODBC for Oracle  这个驱动配置出来的数据源,EXCEL是认不出来的,会报ora-12514.今天选择自定义安装,把昨天没装的组件装上一部分,就可以了(具体哪几个没记,有兴趣的可以自己测试).最后,感谢大家的热心帮助.