问题标签 [dblink]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
oracle - dblink 查询中的嵌套循环 (Oracle 11g)
我有一个形式的 SQL 查询
其中前两个表是到一个数据库的 dblink,最后一个是在第二个数据库上。没有访问本地表。
解释计划显示了一个嵌套循环,即使所有表都很大并且我希望在这种情况下使用哈希连接。(如果所有表都是本地的,我希望散列连接。)
“解释计划”看起来像这样:
此外,刷新统计数据似乎没有效果。
有人可以解释一下哪些因素会影响通过 dblink 进行的连接如何拆分并分发给远程数据库?是否有任何统计数据在此过程中发挥作用,以及如何发挥作用?
此外,“嵌套循环”甚至是真正的问题,还是完全是其他问题?
也许真正的问题是在本地提取 A 和 B 的全部内容并加入,而不是远程加入/过滤。(也许DRIVING_SITE
提示会解决这个问题?)
谢谢。
database - 测试 DB 链接 - ORA-12154:TNS:无法解析指定的连接标识符
我知道这个问题被问了很多次,但我不太清楚如何将这些信息应用于我的情况。
我有两个数据库,我正在尝试使用 DB LINK 连接它们。这些是:
- BBEGMTD1
- OPEGMTP1.WORLD
数据库链接已由某人定义,名称为 PE_DBLINK.WORLD。
我可以从我的机器上访问这两个数据库,所以我看不到 tnsnames.ora 会受到怎样的影响。
但是,当我测试 DB LINK 时,我得到了著名的:
链接:“PE_DBLINK.WORLD”错误:ORA-12154:TNS:无法解析指定的连接标识符
您能否指出正确的方向,是否需要在 BBEGMTD1 服务器上修改 tnsnames.ora?
根据@Chance 评论,select * from ALL_DB_LINKS
返回:
这是 TOAD 中的 TNSNames 编辑器,用于显示正在显示的详细信息:
oracle - 无法通过使用 DG4MSQL 创建的 db 链接查询 SQL Server 系统表
我正在尝试使用 DG4MSQL 网关创建从 Oracle 11g 到 SQL Server 2005 的数据库链接。
创建数据库链接后,我无法使用 JDBC 驱动程序查询 SQL Server 系统视图(sys.services 或 sys.objects),但我能够使用 JDBC 驱动程序查询所有用户表。
如果我使用 sqlplus,我可以查询所有表,包括系统表。由于我的项目是Java项目,所以必然要使用JDBC驱动。
我所做的另一项观察是,如果我使用 DG4ODBC 而不是 DG4MSQL 网关,那么我可以使用 JDBC 驱动程序查询所有 SQL Server 表,包括系统表。
请让我知道是否有任何方法可以使用 DG4MSQL 和 JDBC 驱动程序查询 SQL Server 系统表?
postgresql - 将 dblink 生成的记录推送到调用存储过程之外
作为调用函数的结果,是否可以简单地传递由dblink()
up 生成的结果记录,例如:
dblink
可以像实际上一样调用此函数:
但它需要一些MAGIC
. :(
可以plProxy
很容易地做到这一点,但问题是如何用 来做到这一点dblink
,如果有可能的话plpgsql
。
sql-server - DBLINK 从 SQL Server 到 Postgresql ( Postgis ) 避免 odbc
我有一个关于我们的客户要求我们做的 dblink 的问题。
- Postgres + postgis
- SQL Server 2008
我们需要在 (2) 上有一个通过 dblink 连接到 (1) 的 dblink,但问题在于不支持 GIS 部分的 odbc。
有没有其他方法可以制作这个 dblink ?
谢谢你们
postgresql - 使用 dblink 在 PostgreSQL 中的数据库之间同步事务
我想在两个数据库之间透明地同步一组表,而无需更改应用程序代码。我的想法是在源数据库表中创建插入、更新和删除触发器,以使用 dblink 将数据复制到目标。数据库表无缝。
问题是源表中的更改总是在事务中完成。触发器会自动复制 dest 中的更改。表,但如果源事务回滚 dest。表的变化不是。
有没有办法在两个数据库之间自动同步事务开始和提交/回滚?类似触发器的行为将是理想的。
oracle - INSERT ALL INTO 通过 dblink 插入表 .. 有可能吗?
当我执行以下操作时:
我收到一个错误
SQL 错误:ORA-02021:远程数据库 02021 上不允许 DDL 操作。 00000 - “远程数据库上不允许 DDL 操作” *原因:试图在远程数据库上使用 DDL 操作。例如,“CREATE TABLE tablename@remotedbname ...”。*操作:要更改远程数据库结构,您必须以适当的权限连接到远程数据库。
请注意,当我执行常规(而不是全部插入)时...插入在数据库链接上工作。(赠款是有效的)。
两个表上也没有触发器。
而且我明确需要 INSERT ALL INTO,以便能够插入多个表。
数据库链接表中是否不允许 INSERT ALL INTO 操作?
sql-server - 从 SQL Server 到 postgresql 的 DBLink:获取序列 nextval
我有一个需要连接到 POSTGRESQL 9.0 服务器的 SQL Server 2008。
我需要的任务之一是通过 POSTGRESQL 获取序列的下一个值
示例 1:
错误:
消息 7215,级别 17,状态 1,第 1 行无法在远程服务器“POSTGRESQL”上执行语句。*
示例 2:
错误:
消息 7399,级别 16,状态 1,第 1 行链接服务器“POSTGRESQL”的 OLE DB 提供程序“MSDASQL”报告错误。提供商报告了意外的灾难性故障。消息 7350,级别 16,状态 2,第 1 行无法从链接服务器“POSTGRESQL”的 OLE DB 提供程序“MSDASQL”获取列信息。*
这些选项都不起作用!
有什么好的选择吗?
先感谢您
oracle - 如何设置从 Linux RedHat 64 位上的 Oracle 10gR2 到 Linux RedHat 64 位上的 Postgresql 8.3 的 dblink?
我从 Oracle 尝试这个查询:
这是我收到的错误消息:
这是tnsnames.ora
这是listener.ora
注意启动监听器后,这里是输出
这里initPostgres.ora
/oracle/product/10.2.0/hs/log/record.trc
是空的。
我错过了什么?
Oracle 10gR2
Linux RedHat 64 位
Postgresql 8.3
Linux RedHat 64 位
编辑: 当我尝试手动检查 ODBC 驱动程序是否已启动并正在运行时,这就是我得到的:
sql - oracle - 通过 dblink 提交?
如果我以 smith 用户身份连接到 oracle 数据库,并发出以下 3 个命令:
这是否意味着对本地表 (smith.tablea) 的更新和对远程数据库表 (bob.other_table) 的插入都已提交,或者仅对本地表的更新已提交?
注意:'mylink' 代表一个到远程数据库的 dblink。