a我考网

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 61|回复: 0

[综合] oracle中如何创建dblink

[复制链接]
发表于 2012-8-4 13:54:49 | 显示全部楼层 |阅读模式
当用户要跨本地数据库,访问另外一个数据库表中的数据时,本地数据库中必须创建了远程数据库的dblink,通过dblink本地数据库可以像访问本地数据库一样访问远程数据库表中的数据。下面讲介绍如何在本地数据库中创建dblink.     创建dblink一般有两种方式,不过在创建dblink之前用户必须有创建dblink的权限。想知道有关dblink的权限,以sys用户登录到本地数据库:
  _. _. `/ v' {9 {, A' f1 ]    select * from user_sys_privs t
' I* W+ j) K* Z6 m1 _7 r7 C    where t.privilege like upper('%link%');3 z2 ], `; `9 Q* M4 x1 k
    1 SYS CREATE DATABASE LINK NO: i4 o, T+ ]' f) t  d( W
    2 SYS DROP PUBLIC DATABASE LINK NO
/ l( x: s, `8 g6 a7 y* n    3 SYS CREATE PUBLIC DATABASE LINK NO
8 s3 `$ R& ^. ^2 L! g3 U    可以看出在数据库中dblink有三种权限CREATE DATABASE LINK(所创建的dblink只能是创建者能使用,别的用户使用不了),CREATE PUBLIC DATABASE LINK(public表示所创建的dblink所有用户都可以使用),DROP PUBLIC DATABASE LINK。, B( t& e5 A. W5 ]6 g
    在sys用户下,把CREATE PUBLIC DATABASE LINK,DROP PUBLIC DATABASE LINK权限授予给你的用户( s: J5 S: I2 ?
    grant CREATE PUBLIC DATABASE LINK,DROP PUBLIC DATABASE LINK to scott;
: Y+ @6 L1 K& ?8 Y2 }) G    然后以scott用户登录本地数据库
  ?5 K! @1 s5 ~9 [    1.创建dblink的第一种方式,是在本地数据库tnsnames.ora文件中配置了要远程访问的数据库。
4 {2 @3 l! e. d  t5 V7 r    create public database link
" U' z# {. W6 S) c' D    to_bylw connect to scott identified by tiger using 'bylw';0 @8 H& y- Q$ ~0 }; m' }6 f
    其中to_bylw是你创建的dblink名字,bylw是远程数据库的实例名,scott/tiger是登录到远程数据库的用户/密码。然后在本地数据库中通过dblink访问远程数据库'bylw'中scott.tb_test表,sql语句如下所示
% g! O* ]; W6 M3 F+ ~    select * from scott.tb_test@to_bylw;) x  T% C3 ~! L6 y$ f: W
    2.创建dblink的第二种方式,是在本地数据库tnsnames.ora文件中没有配置要访问的远程数据库,' K7 |" E% R( C+ k* Z
    create database link to_test, {" L) d5 K4 F2 H
    connect to scott identified by tiger; v" m" s* o: s. n2 O
    using '(DESCRIPTION =. b9 E) p: ?9 j/ s
    (ADDRESS_LIST =
0 z- W0 u; v4 O$ Q5 Y    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.5)(PORT = 1521))$ f& i3 \% g/ G( n  g
    )
+ h. g; t/ P; A/ `! H: i& O& ~    (CONNECT_DATA =
+ V2 c) H8 A6 Z; N, f    (SERVER = DEDICATED)
% ~0 v+ }$ C, m6 S    (SERVICE_NAME = bylw)
) M. o# s/ O# x( E  H+ m/ }    )
0 j: Z7 q  `$ C( L. L6 q: T0 t    )';. l  x7 p* g9 v3 I0 L! r! ]
    第二种是把第一种配置在tnsnames.ora文件中的信息,直接放在创建dblink语句后面。第一种情况tnsnames.ora文件中信息如下:* c; i5 U( B3 c+ r1 V# j7 E
    bylw =
, p, k" s. R, o    (DESCRIPTION =5 f- _( O6 U3 P- D  U( }4 x$ F
    (ADDRESS_LIST =- G0 l* |2 V) b+ g; D: g
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.5)(PORT = 1521))
8 `6 x6 e/ M( @2 |    )7 ~+ l" N' W$ X; A% W/ j% C- u
    (CONNECT_DATA =" p. u0 o# N' m
    (SERVER = DEDICATED)) D, r# M2 R8 `
    (SERVICE_NAME = bylw); }/ P) Z3 g* b: f
    )
. q% r; _' G# O( g/ e    )
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|Woexam.Com ( 湘ICP备18023104号 )

GMT+8, 2024-5-14 05:50 , Processed in 0.486833 second(s), 21 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表