需要写一个存储过程需要检查数据链路是否已创建,但在网络上并没有找到相应的办法,后来自己研究找到了这个办法,分享给大家
select substr(db_link,1,INSTR(db_link,'.',1,1)-1) dblink_name from user_db_links
用以上语句可以直接查询出当前用户已建立的数据链路,这样就可以进行具体细节的操作了
当然,也可以写成如下函数来进行判断
--检查数据链是否存在
function is_dblink_exist(v_dblink_name in varchar2) return boolean
as
n_tab_count number default 0;
b_result boolean default false;
begin
select count(1) into n_tab_count from user_db_links where substr(db_link,1,INSTR(db_link,'.',1,1)-1)=upper(v_dblink_name);
if n_tab_count > 0 then
b_result := true;
end if;
return b_result;
exception
when others then dbms_output.put_line('is_dblink_exist 错误:'||sqlerrm);
return false;
end is_dblink_exist;