问题标签 [oracle-fdw]

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.

0 投票
1 回答
8541 浏览

postgresql - PostgreSql:设置环境变量

我已经为 postgreSql 安装了 oracle_fdw 插件,并且已经到了可以创建外部表的地步。但是当我尝试查询此表时,我收到以下错误:

ERROR: error connecting to Oracle: OCIEnvCreate failed to create environment handle

我通过以下线程讨论了这个确切的问题:

OCIEnvCreate 未能创建环境句柄。#133

问题是我无法为ORACLE_HOME设置环境变量。下面是检查环境的命令和正在运行的 postgres 进程的相应输出:

我试图在所有可能的地方导出这个变量,但无济于事。我提到了以下线程:

https://unix.stackexchange.com/questions/117467/how-to-permanently-set-environmental-variables/117470

http://www.linuxtopia.org/online_books/database_guides/Practical_PostgreSQL_database/PostgreSQL_x486_007.htm

因此,我在以下文件中添加了环境变量:(使用sudo su postgres作为 postgres 登录后)

在所有这些文件中,我都有以下行:

export ORACLE_HOME=/u01/app/oracle/product/11.2.0/xe/

我在这里错过了什么吗?

PS:我在 Ubuntu 17.10 上使用 Postgres 9.6

0 投票
0 回答
67 浏览

oracle - 在 AIX 7.1 上构建时出现 oracle_fdw 错误

使用命令在 AIX 7.1 上构建 oracle_fdw-2.0.0 的代码时出现以下错误:gmake

感谢您支持解决此问题。

0 投票
2 回答
1193 浏览

postgresql - AWS 中的 Oracle FDW 支持

我在 Oracle 中有一个 OLTP 数据库,在本地 PostgreSQL 中有一个下游 OLAP 系统。使用 Oracle_FDW 将来自 Oracle 的数据泵入 PostgreSQL。

我正在探索将 PostgreSQL 迁移到 AWS 的可能性,但没有一个 RDS 具有 Oracle_fdw 功能。一种出路是在 EC2 实例上安装 PG,但这会保留 AWS 原生提供的一些功能,例如只读副本。有更好的解决方法吗?

还有一种方法可以从 AWS 中的 Postgres RDS 中获取 Oracle RDS 中的数据吗?

0 投票
1 回答
179 浏览

postgresql - 我们如何在 Postgres 中执行 Oracle 序列?

在从 Oracle 迁移到 Postgres 之间,我需要为来自 Postgres 的 Oracle 表执行一些插入语句(其中主键字段使用唯一性序列)。

现在在迁移时,我正在转换一些用于在表中插入行的过程,但由于对表的依赖性更高,我无法将表直接从 oracle 移动到 Postgres。

这就是为什么我需要从 Postgres 执行 Oracle 序列的原因。

0 投票
0 回答
317 浏览

postgresql - Postgres 到 Oracle 的连接

如何保持 Postgres 到 Oracle 数据的同步?

目前我们正在尝试模仿 Oracle 到 Oracle 数据库的链接,但使用 Oracle 到 Postgres。我知道我们可以添加 FDW 包装器来连接,但延迟很大。

我还检查了 AWS DMS 流程,但是当发生从 Oracle 到 Postgres 的数据加载和同步时,它会出现很多数据类型问题。

有人可以告诉更好的方法吗?

0 投票
1 回答
483 浏览

postgresql - 在 PostgreSQL 中截断小数点前的值

我正在使用 dblink 将数据从 oracle 表移动到 Postgres,并且在 Postgres 的新表结构中,我已经为 Oracle 中没有精度的数字列添加了精度,现在在移动数据时我能够截断十进制值以匹配比例,但是,如果它与精度不匹配,我正在努力寻找一种方法来截断小数点之前的值。

调整比例我使用以下命令:

因此,在这种情况下,如果小数点后的值大于 3 位,它会将其截断为 3 位,但是,如果精度(小数点前)大于 4,我希望它也应该被截断为4 位数,我不介意这样做会改变几行的值。

0 投票
2 回答
221 浏览

oracle - 使用 postgres oracle_fdw 成功使用比较运算符

我正在尝试构建一个脚本系统来维护 Oracle DB 和 Postgres DB 之间的持续关系。在一个特别大的表(50B 行)上,where 子句 postgres 端的效率显然对于同步至关重要。但是,我发现我在 oracle_fdw 中的选项非常有限,因为 postgres WHERE 子句中的内容实际上转移到了 Oracle 端。在这种情况下...比较运算符。

例如,在我执行此操作时,在 postgres 端

我得到:

这表明比较没有到达 Oracle,而是在本地进行过滤之前尝试下载全表。没有布埃诺。

理想情况下,我希望 BETWEEN 条件能够向上翻译。

我一直在考虑的唯一选择是使用硬编码的查询创建一个外部表。唯一的问题是该表仍将返回大量行,而且我无法一次获取和增加批次。我的查询意图是一次只传输大约 10,000 个,因为这接近 fdw 预取限制。它也是我最想在签到之间转移以查看进展情况。

如果有一种方法可以将外部表作为具有可变字段的远程查询,那会很方便吗?

0 投票
1 回答
537 浏览

postgresql - PostgreSQL 11 和 Oracle 外部数据包装器

我在 CENTOS 8 上为 PostgreSQL_11 安装 Oracle 外部数据包装器时遇到问题。

我没有连接到互联网,所以我通过 SSH 复制了所有必要的文件,我已经安装了 PostgreSQL 11 和 Oracle 客户端,最后需要安装 Oracle FWD (oracle_fwd-master.zip)。最初我解压缩,然后按照以下说明进行解压缩:ORACLE FDW 安装:

但我遇到了以下问题

请帮忙怎么解决?

0 投票
1 回答
270 浏览

postgresql - PostgreSQL:使用字符串和变量创建外部表

我的问题:我需要动态定义外部表并每次设置不同的 where 条件。我在函数中执行此操作,但在创建外部表(通过 oracle_fdw)期间遇到对我没有意义的错误。

创建有效的外部表:

现在,如果我尝试拆分字符串以将我的变量放在那里(而不是我留下的变量编号以便任何人都可以尝试),它会停止工作并且我收到错误

[代码:0,SQL 状态:42601] 错误:“||”处或附近的语法错误

只是为了确定我在选择中尝试了我的字符串以确保我没有犯任何语法错误并且它没有问题

我尝试了其他一些方法,例如使用 concat() 或将整个字符串放入变量OPTIONS (table myvariable);中,但都没有奏效。这里的正确语法是什么?

x86_64-pc-linux-gnu 上的 PostgreSQL 11.10,由 gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-39) 编译,64 位

0 投票
1 回答
285 浏览

oracle - 使用 oracle-fdw 将海量表从 Oracle 导入 PostgreSQL 返回 ORA-01406

我从事一个项目,将数据从 Oracle 数据库传输到 PostgreSQL 数据库,以使用 bash 和 SQL 脚本创建数据仓库。为了访问 Oracle 数据库,我使用 PostgreSQL 扩展 oracle-fdw。

我的一个脚本从一个巨大的表中导入数据(~ 100 000 000 新行/天)。该表是分区的,每个分区包含 1 天的数据。我用来导入数据的查询如下所示:

在 DEV 服务器上,查询工作正常(此服务器上的数据少得多),但在 PREPROD 中,它返回错误ORA-01406: fetched column value was truncated

在一些帖子中,人们说输出字段可能太小,但如果我尝试发送一个没有 INSERT 或 GROUP BY 的简单 SELECT 查询,我会遇到同样的错误。

我在另一篇文章中发现的另一个想法是创建一个 Oracle 侧视图,但在我的查询中,我使用了多个无法在视图中使用的参数。

我发现的最后一个想法是创建一个 Oracle 存储过程,用聚合数据填充表,然后从该表中导入数据,但 Oracle 数据库很关键,我的客户更喜欢避免在其上添加更多数据。

现在,我开始认为没有解决方案,而且不好......

PostgreSQL 版本:12.4 / Oracle 版本:11.2

更新

看来我的问题比我想象的要复杂。

应用 Laurenz Albe 给出的修改后,查询在 PGAdmin 上正确运行,但当我使用psql命令时问题仍然出现。此外,另一个查询似乎也有同样的问题。这个另一个查询不使用与第一个查询相同的源表,它使用 4 个没有任何分区的连接表。这些查询之间的共同点是结构。

我在原始帖子中省略指定的细节是这两个查询的目的是透视表。他们看起来像这样:

现在我已经详细说明了查询的样子,我可以在不更改 max_long 的值的情况下为您提供第二个查询的一些结果(此查询比第一个查询轻):

  1. 有时它可以工作(~10%),有时它在 PGadmin 上失败(~90%),但它从不使用psql命令
  2. 如果我删除WHERE,它总是有效的

我不明白为什么要删除WHERE更改的内容,此子句中使用的字段是介于 0 和 2500 之间的NUMBER(6, 0)并且仍在SELECT子句中使用...哦,在此使用的 4 个 Oracle 表中查询,没有LONG数据类型,只使用NUMBER数据类型。

在我的 20 个查询中,只有这两个有问题,它们的结构相似,我不相信巧合。