第一、二问题,我也不清楚。
3、我认为CMDB.WORLD 和CMDB 的作用是一样的,都是一个服务名,用来映射到服务器端数据库的路径的。
4、在oracle的客户端访问数据库一般需要三个参数:
          用户名:S_user
          密码:   s_password
          服务名:s_host
服务名直接把 tnsname.ora中的cdmb替换为你自己命名的服务名。或者直接用cdmb就可以了。
我用pro*c和oci访问数据库就是这样的。
s_host=
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.36.153)(PORT = 1521))//为你访问的数据库的ip和端口
    )
    (CONNECT_DATA =
      (SERVICE_NAME = CMDB)//cmdb为你要访问的数据库名
    )
  )

解决方案 »

  1.   

    1.sqlnet.ora是配置本地命名方式的文件
     TNSNAMES.ORA用来配置连接数据库的字符串
     listener.ora是监听器的参数文件
    2.names.default_domain后果跟的是本地命名方式的域名.
    3.没有区别
      

  2.   

    那问一下,如果用sql*plus连接上了数据库,是不是证明客户端和服务器端的这三个配置文件都配对了呢?
      

  3.   

    那问一下,如果用sql*plus连接上了数据库,是不是证明客户端和服务器端的这三个配置文件都配对了呢?
      

  4.   

    但是在程序里连不上,出现12154的错误。我做的是一个改造的项目,程序以前是用一个控件连接数据库的。具体的连接代码如下,谁能明白的就告诉我一下把,分不够可以再给。  Public Const LIB_ORACLE = "TCZAORCL.clsOra"
      Set pOra = CreateObject(LIB_ORACLE)
      SQLlogin = pOra.xCreateProcess(s_USER, s_passwd, s_host) 
      *注:s_host 格式为 T:hostname:service
      

  5.   

    楼主用的是C/S模式是吧
    那么有几点:
    1、你的client配置的是什么连接方式
    Oracle 9i 支持如表 2.4 所示的 5 种命名方法。 
    表 2.4 Oracle 9i 的 5 种命名方法:
    (1)本地命名: 适合具有少量不经常更改服务的简单分布式网络 
    (2)目录命名: 通过目录服务器进行解析,适合大型网络 
    (3)Oracle 名称(Oracle Names): 通过 Oracle 名字服务器进行解析,适合大型网络 
    (4)主机命名: 通过【计算机名称】进行解析,适合局域网 
    (5)外部命名: 通过非 Oracle 命名服务进行解析,很少用 
    一般的学习和开发都是用本地命名,即上面你提到的sqlnet.ora文件
    2、用第三方工具试试连接是否成功;如:TOAD、PLSQL Developer等
    3、这个SQLlogin = pOra.xCreateProcess(s_USER, s_passwd, s_host)中的s_host只用服务名(即本地命名的名字)
    我也是新学,个人的感觉,参考一下吧