我知道可以文本编辑tnsname.ora或是用Net Configuration Assistant来配置。
但是我要写用程序来配置,有相应的接口么?或是直接在sqlplus里配置??

解决方案 »

  1.   

    没有在sqlplus  直接编辑的 
      

  2.   

    换一个做法,我直接读取tnsname.ora修改。 怎么定位tnsname.ora在本机的位置??
    如果该机上装了两个实例,也就是说有两个NETWORK\ADMIN,我怎么知道在哪个?
      

  3.   

    是否可以根据注册表中 HKEY_LOCAL_MACHINE\software\oracle下的ORA_CRS_HOME的值进行定位??
      

  4.   

    环境变量,排在最前面的就是当前默认的SID
      

  5.   

    有个DBATools工具可以直接在PL/SQL工具中打开和修改tnsname.ora文件。
       在ITPUB论坛的精华贴中有下载!
      

  6.   

    给你一个能用的具体思路:
    在HKLM\Software\Oracle下,分别找各个分支(Key_Ora*_home*),查询ORACLE_SID值,如果等于你要的那个目标instance,那么取该分支下的ORACLE_HOME值,比如:d:\oracle\10.2.0
    这样,就可以取文件%ORACLE_HOME%\network\admin\tnsnames.ora进行修改了。
    Unix下就更简单了,直接取$ORACLE_HOME\network\admin\tnsnames.ora挺简单的。
      

  7.   

    直接修改tnsname。ora文件比较容易出错,不过简单方便;
    net manager里边也很方便;没听说过sqlplus里边可以编辑的..
      

  8.   

    http://topic.csdn.net/u/20101028/11/8d998b9b-9f84-49a7-9bc4-ad1fc9d60ac3.html
    我之前的一个学习笔记,可以看哈..
      

  9.   

    至于定位我觉得除了注册表,还有另一种思路来尝试,先把环境变量输出到一个文本里,然后去读这个文本中的path变量中的oracle_home来定位。
      

  10.   

    hx_java提到的这个内容,已达到我的最初要求,测试过能查询,不知道这中dblink有什么缺点,往大家指点,不久将结贴。
    --------------------------------------------CREATE PUBLIC DATABASE LINK crm_boss
    CONNECT TO name IDENTIFIED BY pwd
    USING '(DESCRIPTION =(ADDRESS_LIST =(ADDRESS =(PROTOCOL = TCP)(HOST = 172.16.0.169)(PORT = 1521)))(CONNECT_DATA =(SERVICE_NAME = SID)))'
    这一句话就OK的, name、pwd是netManager里边配置的登陆sqlplus的用户名、密码,SID是目标数据库名称;
    --------------------------------------------------