database link远程链接数据库

时间:2023-03-09 02:33:17
database link远程链接数据库
--授权创建、删除dblink
GRANT CREATE [PUBLIC] DATABASE LINK,DROP [PUBLIC] DATABASE LINK TO canco; --查看数据库GLOBAL_NAME(数据库名)
SELECT * FROM GLOBAL_NAME; --查看有哪些dblink
select owner,object_name from dba_objects where object_type='DATABASE LINK'; --删除dblink
DROP [public] DATABASE LINK nbcb; --==================================================================================================================

--创建dblink
create database link local218
connect to CANCO identified by "123"
using '(DESCRIPTION=(ADDRESS_LIST=(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.218)(PORT = 1521)))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=nbcb)))'; --创建同义词(隐藏链接的数据库)
create synonym nbcb_fa_monthout_t for nbcb_fa_monthout_t@local218; --==================================================================================================================
--truncate 语句无法执行 --1、在目标数据库中创建过程
create or replace procedure Remote_ExecuteDDL(sqltext in varchar2)
authid current_user as
begin
execute immediate sqltext;
end Remote_ExecuteDDL;
--2、传递需要执行的sql
Remote_ExecuteDDL@local218('truncate table canco.nbcb_fa_monthout_t'); --==================================================================================================================
--关闭database link连接的两种方式
1、alter session close database link local218; 2、dbms_session.close_database_link('local218'); --====================================================================================================
总之,在使用DBLINK时一定要注意session的回收,在应用程序中使用

commit;

alter session close database link <dalink_name>;
execute immediate 'alter session close database link local218';