可以,Oracle 中是支持“批量”建立 DB Link 的,不过 Oracle 本身没有一条 SQL 直接“批量创建”的语法,通常是通过脚本方式批量生成并执行。下面按常见场景给你说明。
例如,你有一批目标库信息(host、port、service_name、用户名、密码):
SELECT
'CREATE PUBLIC DATABASE LINK ' || db_link_name ||
' CONNECT TO ' || remote_user ||
' IDENTIFIED BY "' || remote_password || '"' ||
' USING ''(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=' || host ||
')(PORT=' || port || '))(CONNECT_DATA=(SERVICE_NAME=' || service_name || ')))'';'
FROM db_link_config;
把结果导出成 .sql 文件,然后执行即可。
如果你已经在某张配置表里存了 DB Link 信息:
BEGIN
FOR r IN (SELECT * FROM db_link_config) LOOP
EXECUTE IMMEDIATE
'CREATE PUBLIC DATABASE LINK ' || r.db_link_name ||
' CONNECT TO ' || r.remote_user ||
' IDENTIFIED BY "' || r.remote_password || '"' ||
' USING ''(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=' || r.host ||
')(PORT=' || r.port || '))(CONNECT_DATA=(SERVICE_NAME=' || r.service_name || ')))''';
END LOOP;
END;
/
✅ 优点:
如果是:
可以使用:
expdp / impdp NETWORK_LINK=...
但注意:
CREATE DATABASE LINK(私有)CREATE PUBLIC DATABASE LINK(公共同)如果你指的是:
可以告诉我你用的是 哪种数据库 + 版本,我可以给你更精确的批量方案。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。