简短回答:能,但取决于数据库类型和权限设置。
下面按常见数据库分别说明:
可以跨库调用,语法上直接写 库名.存储过程名 即可。
CALL other_db.proc_name();
EXECUTE 权限⚠️ 注意:存储过程内部如果访问表,也要有对应库的权限
可以跨库,甚至跨实例(Linked Server)
EXEC other_db.dbo.proc_name;
EXEC linked_server.other_db.dbo.proc_name;
Oracle 中“库”概念不同(通常是 Schema / 用户)
BEGIN
other_schema.proc_name();
END;
BEGIN
proc_name@db_link;
END;
可以跨 Schema,不直接跨数据库
CALL other_schema.proc_name();
dblinkpostgres_fdw| 数据库 | 同实例跨库 | 跨实例 |
|---|---|---|
| MySQL | ✅ | ❌ |
| SQL Server | ✅ | ✅ |
| Oracle | ✅(Schema) | ✅(DB Link) |
| PostgreSQL | ✅(Schema) | ❌(需扩展) |
如果你能告诉我 具体用的是哪种数据库 + 场景,我可以给你更精确的建议。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。