python - 如何排除 DBLINK
问题描述
我在不同的服务器 DB1 和 DB2 上有 2 个数据库。DBlink 在 DB1 上为 DB2 创建。我只有 1 个要使用的表,它存在于 DB1 上,我必须使用 dblink 否则我可以直接点击 DB2。有什么方法可以排除 DB1 Dblink 并获得 DB1 表数据?另外,我无权在 DB2 上创建任何东西。例如 select * from tb1 join tb2 on tb1.col = tb2.col
而不是通过 DB1,其中 DB2 存在 dblink。我想通过获取 DB2 中的一个表或使用 python sqllite 或 sqlalchemy 直接连接 DB2
解决方案
有什么方法可以排除 DB1 Dblink 并获得 DB1 表数据?
不,没有。尤其是您无法在所有其他表所在的 DB2 上创建任何东西。您必须访问 DB1,唯一的方法——因为它们在不同的数据库中——是使用数据库链接。
然而!有人说“数据库”,而在 Oracle 中,它是一个“模式”(驻留在同一个数据库中)。我会说你没有那个“问题”,即你知道哪个是哪个。但是,如果您不这样做:如果它们实际上只是同一数据库中的两个不同模式,那么您不需要数据库链接并且可以通过其他方式访问 DB1 数据(DB1 授予您select
权限;然后通过在其名称前加上所有者名称)。
推荐阅读
- arm - 更改链接描述文件以将数据存储到 DTCM RAM 后的 STM32H7 问题
- angular - 当结果过滤器为空时,有没有办法隐藏标题?
- javascript - 是否可以将创建它的相同函数传递给 React 组件?
- powerapps - 在 Power Apps Studio 中进行测试时如何导航到数据源中的另一条记录?
- python - SDN中使用MPLS的带宽
- java - 实例上的方法引用 - 为什么不直接调用方法(因为它如何在不同的上下文中执行)?
- javascript - jQuery从字符串中获取价格
- apache-spark - Spark - 在这种情况下,何时发生重新分区?
- bash - 如何使用 shell 脚本(.sh 文件)执行 web 路由
- r - R ggplot 排序百分比堆积条形图