在创建数据库链接之前,我需要检查数据库链接是否已存在.我怎样才能做到这一点?
我正在编写一个以此开头的sql脚本:
DROP DATABASE LINK mydblink
然后我创建一个:
CREATE DATABASE LINK mydblink CONNECT TO testuser IDENTIFIED BY mypswd USING 'mypersonaldb'
如果数据库链接不存在,我当然会在第一步中收到错误.如果我省略第一步并继续创建数据库链接,我将再次收到一条错误消息,说明它已经存在同名.
解决方法
select count(1) from dba_objects where object_type = 'DATABASE LINK' and object_name = 'ARGUS51P';
例如(未经测试):
declare l_link_cnt pls_integer := 0; l_sql varchar2(32767); begin -- link creation sql (fill in details of how you want this created) l_sql := 'create public database link ...'; select count(1) into l_link_cnt from dba_objects where object_type = 'DATABASE LINK' and object_name = 'SOME_LINK'; -- create link if it doesn't exist yet if (l_link_cnt = 0) then -- create link execute immediate l_sql; end if; end;