建一个数据链接----你查一下
create dblink

解决方案 »

  1.   

    要想连接数据库,必须安装oracle的客户端或其他类似组件。
    安装了客户端后,配置连接字符串,需要知道用户/密码。
      

  2.   

    ORACLE的连接与操作系统无关,只要知道UNIX机上数据库的用户名密码,在2000的机子上装上SQLPLUS就可以连接并访问了;或者如果是从2000的ORACLE数据库里访问,需要建立database link,然后才能访问。
      

  3.   

    如何连接两台Oracle服务器(服务器A、服务器B,均装有NT)?转载 
     
    软件环境: 
    1、Windows NT4.0+ORACLE 8.0.4
    2、ORACLE安装路径为:C:\ORANT
    3、服务器A、服务器B,均装有NT 4.0中文版实现方法: 
    1. 假设A地址192.1.1.1,B地址192.1.1.22. A、B上配置好TCP/IP,互相Ping通。3. 配置init.ora文件,若global_name = true的话,database link 的名字必须同远程机的实例名相同,  为简便起见,请将global_name 设为 false。4. 在服务器上配置tnsnames.ora,将Remote机器的地址(IP)信息加入本地的tnsnames.ora  A服务器:
      TNSA_B =
       (DESCRIPTION =
        (ADDRESS_LIST =
          (ADDRESS =
           (COMMUNITY = tcp.world)
           (PROTOCOL = TCP)
           (Host = 192.1.1.2)
           (Port = 1521)
          )
        )
        (CONNECT_DATA = (SID = ORCL)
        )
       )  B服务器:
      TNSB_A =
       (DESCRIPTION =
        (ADDRESS_LIST =
          (ADDRESS =
           (COMMUNITY = tcp.world)
           (PROTOCOL = TCP)
           (Host = 192.1.1.1)
           (Port = 1521)
          )
        )
        (CONNECT_DATA = (SID = ORCL)
        )
       )5. 在 SQL*Plus 或其它工具中创建数据库链接  A服务器:create public database link A_TO_B connect to tmp identified by tmp using 'TNSA_B';  B服务器:create public database link B_TO_A connect to tmp identified by tmp using 'TNSB_A';  说明:
      tmp是一个临时用户,A服务器、B服务器上均有,它的作用是提供链接的目的地,
      假如:
      B服务器上有user1、user2、tmp三个用户,user1和user2把他们想要对外公开的表的权限授给tmp用户,
      那么,所有能通过database link连接到tmp用户上的人就可以直接访问user1、user2上的已授权表了。6. 建立database link以后,请用这种格式select * from table_name@database_link_name 的方式访问  如:在A服务器上想访问B服务器上user1用户table1表的内容(A到B的连接为A_TO_B),则  SQL> select * from table1@A_TO_B;7. 如果Oracle版本为7.3,则数据库联接写法如下:  A服务器:create public database link A_TO_B connect to tmp identified by tmp using 't:192.1.1.2:orcl';  B服务器:create public database link B_TO_A connect to tmp identified by tmp using 't:192.1.1.1:orcl'; 
     
      

  4.   

    在ORACLE里设置访问多个SQL Server数据库 2004-01 余枫

    ORACLE访问SQL SERVER数据库有一篇《Oracle 异构服务实践》讲得很清楚。

    但里面没有讲如何设置访问多个SQL Server数据库, 我就补充一下。

    假设我们要在ORACLE里同时能访问SQL Server里默认的pubs和Northwind两个数据库。

    1、在安装了ORACLE9i Standard Edition或者ORACLE9i Enterprise Edition的windows机器上(IP:192.168.0.2), 
       产品要选了透明网关(Oracle Transparent Gateway)里要访问Microsoft SQL Server数据库.

    $ORACLE9I_HOME\tg4msql\admin下新写initpubs.ora和initnorthwind.ora配置文件
    initpubs.ora内容如下:
    HS_FDS_CONNECT_INFO="SERVER=sqlserver_hostname;DATABASE=pubs"
    HS_DB_NAME=pubs
    HS_FDS_TRACE_LEVEL=OFF
    HS_FDS_RECOVERY_ACCOUNT=RECOVER
    HS_FDS_RECOVERY_PWD=RECOVER

    initnorthwind.ora内容如下:
    HS_FDS_CONNECT_INFO="SERVER=sqlserver_hostname;DATABASE=Northwind"
    HS_DB_NAME=Northwind
    HS_FDS_TRACE_LEVEL=OFF
    HS_FDS_RECOVERY_ACCOUNT=RECOVER
    HS_FDS_RECOVERY_PWD=RECOVER

    (蓝色字的部分可以根据具体要访问的SQL Server数据库的情况而修改)

    $ORACLE9I_HOME\network\admin 下listener.ora内容如下:

    LISTENER =
      (DESCRIPTION_LIST =
        (DESCRIPTION =
          (ADDRESS_LIST =
            (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.2)(PORT = 1521))
          )
        )
      )SID_LIST_LISTENER =
      (SID_LIST =
        (SID_DESC =
          (GLOBAL_DBNAME = test9)
          (ORACLE_HOME = d:\oracle\ora92)
          (SID_NAME = test9)
        )
        (SID_DESC=
          (SID_NAME=pubs)
          (ORACLE_HOME=d:\Oracle\Ora92) 
          (PROGRAM=tg4msql)
        )
        (SID_DESC=
          (SID_NAME=northwind)
          (ORACLE_HOME=d:\Oracle\Ora92) 
          (PROGRAM=tg4msql)
        )
      )

    重启动这台做gateway的windows机器上(IP:192.168.0.2)TNSListener服务.

    (凡是按此步骤新增可访问的SQL Server数据库时,TNSListener服务都要重启动) 2、ORACLE8I,ORACLE9I的服务器端配置tnsnames.ora, 添加下面的内容:

    pubs =
      (DESCRIPTION =
      (ADDRESS_LIST =
          (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.2)(PORT = 1521))
        )
        (CONNECT_DATA =
          (SID = pubs)
        )
        (HS = pubs) 
       )
       
    northwind =
      (DESCRIPTION =
      (ADDRESS_LIST =
          (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.2)(PORT = 1521))
        )
        (CONNECT_DATA =
          (SID = northwind)
        )
        (HS = northwind) 
       )   
       
        保存tnsnames.ora后,在命令行下
       
        tnsping pubs
        tnsping northwind
       
    出现类似提示,即为成功
    Attempting to contact (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.2)
    (PORT = 1521))) (CONNECT_DATA = (SID = pubs)) (HS = pubs))
    OK(20毫秒)
       
        Attempting to contact (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.2)
    (PORT = 1521))) (CONNECT_DATA = (SID = northwind)) (HS = northwind))
    OK(20毫秒)

    设置数据库参数global_names=false。

    设置global_names=false不要求建立的数据库链接和目的数据库的全局名称一致。
    global_names=true则要求, 多少有些不方便。

    oracle9i和oracle8i都可以在DBA用户下用SQL命令改变global_names参数

    alter system set global_names=false;

    建立公有的数据库链接:

    create public database link pubs connect to testuser identified by testuser_pwd using 'pubs';

    create public database link northwind connect to testuser identified by testuser_pwd using 'northwind';

    (假设SQL Server下pubs和northwind已有足够权限的用户登录testuser,密码为testuser_pwd)

    访问SQL Server下数据库里的数据:

    select * from stores@pubs;
    ......  ......

    select * from region@northwind;
    ......  ......

    3、使用时的注意事项

    ORACLE通过访问SQL Server的数据库链接时,用select * 的时候字段名是用双引号引起来的。

    例如:
    create table stores as select * from stores@pubs;

    select zip from stores;

    ERROR 位于第 1 行:
    ORA-00904: 无效列名

    select "zip" from stores;

    zip
    -----
    98056
    92789
    96745
    98014
    90019
    89076 已选择6行。

    用SQL Navigator或Toad看从SQL Server转移到ORACLE里的表的建表语句为:

    CREATE TABLE stores
        ("stor_id"                      CHAR(4) NOT NULL,
        "stor_name"                    VARCHAR2(40),
        "stor_address"                 VARCHAR2(40),
        "city"                         VARCHAR2(20),
        "state"                        CHAR(2),
        "zip"                          CHAR(5))
      PCTFREE     10
      PCTUSED     40
      INITRANS    1
      MAXTRANS    255
      TABLESPACE  users
      STORAGE   (
        INITIAL     131072
        NEXT        131072
        PCTINCREASE 0
        MINEXTENTS  1
        MAXEXTENTS  2147483645
      )
    /总结: WINDOWS下ORACLE9i网关服务器在$ORACLE9I_HOME\tg4msql\admin目录下的initsqlserver_databaseid.ora WINDOWS下ORACLE9i网关服务器listener.ora里面
         (SID_DESC=
           (SID_NAME=sqlserver_databaseid)
           (ORACLE_HOME=d:\Oracle\Ora92) 
           (PROGRAM=tg4msql)
         )
        
         UNIX或WINDOWS下ORACLE8I,ORACLE9I服务器tnsnames.ora里面
    northwind =
      (DESCRIPTION =
       (ADDRESS_LIST =
           (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.2)(PORT = 1521))
        )
         (CONNECT_DATA =
           (SID = sqlserver_databaseid)
         )
         (HS = sqlserver_databaseid) 
           )
                  
         sqlserver_databaseid一致才行.
      

  5.   

    楼主的意思是从windows 2000的操作系统上来操作数据库吧,下载pl/sql developer或toad等工具或装oracle的客户端,然后配置连接数据库的字符串就可以操作数据库的.
      

  6.   

    Oracle的客户端会占用很大资源么