因为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 procedure jy2.createlink
is
begin
execute immediate 'create database link TO_11G_JY1 connect to jy1 identified by jy1 using ''WINORA''';
end;
/
--create database link using above procedure
exec jy2.createlink;
2.使用sys用户删除JY2用户下的dblink “TO_11G_JY1”:
--Drop other user's dblink
create or replace procedure jy2.droplink
is
begin
execute immediate 'drop database link TO_11G_JY1';
end;
/
--drop database link using above procedure
exec jy2.droplink;