oracle dblink创建及其使用和使用中问题解决

[size=medium][b]1.创建dblink的语法:[/b]
CREATE [PUBLIC] DATABASE LINK link
CONNECT TO username IDENTIFIED BY password
USING ‘connectstring’
[b]2.说明:[/b]
1)权限:创建数据库链接的帐号必须有CREATE DATABASE LINK或CREATE PUBLIC DATABASE LINK的系统权限,用来登录到远程数据库的帐号必须有CREATE SESSION权限。这两种权限都包含在CONNECT角色中(CREATE PUBLIC DATABASE LINK权限在DBA中)。
如果省略public,则创建的是private的数据库连接,private的连接只能是当前创建DB_LINK的用户可以使用这个db_link,public表示数据库中所有的用户都可以使用这个db_link。
2)link : 当GLOBAL_NAME=TRUE时,link名必须与远程数据库的全局数据库名global_name相同(global_name可以在远程数据库上执行select * from global_name;得到); 当GLOBAL_NAME=TRUE时,可以任意命名。
3)connectstring:连接字符串,tnsnames.ora中定义远程数据库的连接串。
4)username、password:远程数据库的用户名,口令。如果不指定,则使用当前的用户名和口令登录到远程数据库。
[b]3.删除数据库链接的语句:[/b]
DROP [PUBLIC] DATABASE LINK zrhs_link
[b]4.查看已创建的dblink[/b]
select owner,object_name from dba_objects where object_type='DATABASE LINK';
select * from dba_db_links;
[b]5.修改GLOBAL_NAME的方法:[/b]
方法一、在数据库的init.ora文件中将global_names设为true/false。
方法二、语句:ALTER SYSTEM SET GLOBAL_NAME=TRUE/FALSE;
修改后重新启动数据库设置才能生效。
[color=red]注:数据库全局名称可以用以下命令查出:SELECT * FROM GLOBAL_NAME;[/color][b]6.dblink的创建和使用:[/b]
[color=red]--GLOBAL_NAME为false[/color]
alter system set global_names=false;
数据库链接名(db_link名)任意取名:
创建:
方法一:
create public database link USER
connect to jade identified by jade
using '(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = orcl)
)
)';
方法二:
create public database link user connect to epm2 identified by epm2 using 'orcl';
使用:select * from pm_t_kpi_data@user;
[color=red]--GLOBAL_NAME为true[/color]
alter system set global_names=true;
要求数据库链接名(db_link名)跟远端数据库的global_name名一样
[color=darkred]错误创建和使用:[/color]
create public database link user connect to epm2 identified by epm2 using 'orcl';
select * from pm_t_kpi_data@user;
ORA-02085:数据库链接:USER.REGRESS.RDBMS.DEV.US.ORCLE.COM 连接 ORCL
[color=darkred]正确创建和使用:[/color]
创建一个和使用:
create public database link orcl connect to epm2 identified by epm2 using 'ORCL';
select * from pm_t_kpi_data@orcl@al;
创建多个和使用:[color=darkred]注:al可以任意取名[/color]
create public database link orcl@al connect to epm2 identified by epm2 using 'ORCL';
select * from pm_t_kpi_data@orcl@al;

[b]7、取消REGRESS.RDBMS.DEV.US.ORACLE.COM后缀:[/b]
global_name(oradb)带上默认的域名REGRESS.RDBMS.DEV.US.ORACLE.COM后缀,则可以执行下面语句进行解决
update global_name set global_name='orcl'; (本地服务器上执行) commit;
或者update props$ set value$ = 'orcl' where name = 'GLOBAL_DB_NAME'; commit;
之后重启。重新建立的就没有后缀名了。
[b]8、为dblink创建同义词[/b]
create or replace synonym student for student_a@USER;
[color=red]注:student为同义词名,student_a为dblink链接的表[/color]
查询:select *from student_a@USER 等价于 select * from student
[/size]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值