带你轻松接触Oracle DBLink的简单运用

  • 来源: 赛迪网 作者: 若水   2008-04-24/15:59
  • 在这个示例中,我们首先做了一个例子,目的是实现以上要求.

    首先进行适当授权:

    [Oracle@jumper oracle]$ sqlplus "/ as sysdba"
    SQL*Plus: Release 9.2.0.4.0 - Production on Tue Nov 7 21:07:56 2006
    
    Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.
    
    
    Connected to:
    Oracle9i EntERPrise Edition Release 9.2.0.4.0 - Production
    With the Partitioning option
    JServer Release 9.2.0.4.0 - Production
    
    SQL> grant create public database link to eygle;
    
    Grant succeeded.
    SQL> grant all on dbms_flashback to eygle;
    
    Grant succeeded.

    然后建立DB Link:

    SQL> connect eygle/eygle
    Connected.
    SQL> create public database link hsbill using 'hsbill';
    Database link created.
    
    SQL> select db_link from dba_db_links;
    
    DB_LINK
    ---------------------------------------------------
    HSBILL
    
    SQL> select * from dual@hsbill;
    
    D
    -
    X

    在此之后我们可以尝试使用DB Link进行远程和本地执行:

    SQL> set serveroutput on

    SQL> set feedback off

    SQL> declare

    2 r_gname varchar2(40);

    3 l_gname varchar2(40);

    4 begin

    5 execute immediate

    6 'select GLOBAL_NAME from global_name@hsbill' into r_gname;

    7 dbms_output.put_line('gname of remote:'||r_gname);

    8 select GLOBAL_NAME into l_gname from global_name;

    9 dbms_output.put_line('gname of locald:'||l_gname);

    10 end;

    11 /

    gname of remote:HSBILL.HURRAY.COM.CN

    gname of locald:EYGLE

    远程Package或Function调用也可以随之实现:

    SQL> declare
    2 r_scn number;
    3 l_scn number;
    4 begin
    5 execute immediate
    6 'select dbms_flashback.GET_SYSTEM_CHANGE_NUMBER@hsbill from dual' into r_scn;
    7 dbms_output.put_line('scn of remote:'||r_scn);
    8 end;
    9 /
    scn of remote:18992092687
    
    SQL> 
    
    -The End-

    评论 {{userinfo.comments}}

    {{money}}

    {{question.question}}

    A {{question.A}}
    B {{question.B}}
    C {{question.C}}
    D {{question.D}}
    提交

    驱动号 更多