因为 dblink 的创建和删除只能是它的所属用户来操作,所以我们无法直接使用 sys 用户创建其他用户下的 dblink,当遇到有这样的需求时,可以先建立该用户下存储过程,再通过调用这个存储过程来间接实现。举例来说:
1. 使用 sys 用户创建 JY2 用户下的 dblink "TO_11G_JY1",连接远端 "WINORA" 的 jy1 用户:
- --Create other user's dblink
- --grant create database link to jy2;
- create or replace procedurejy2.createlinkis
- begin
- execute immediate 'create database link TO_11G_JY1 connect to jy1 identified by jy1 using ''WINORA''';end;
- /--create database link using above procedureexec jy2.createlink;
2. 使用 sys 用户删除 JY2 用户下的 dblink "TO_11G_JY1":
- --Drop other user's dblink
- create or replace procedurejy2.droplinkis
- begin
- execute immediate 'drop database link TO_11G_JY1';end;
- /--drop database link using above procedureexec jy2.droplink;
来源: http://www.linuxidc.com/Linux/2017-04/143138.htm