问题标签 [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 投票
0 回答
153 浏览

postgresql - 如何从 postgresql 数据库访问 oracle 数据库的元表

我的 oracle 数据库(11.2)和 postgresql 数据库(9.3.5)

我的要求是将数据从 oracle 数据库提取到 postgresql 数据库,为此我使用了 oracle_fdw(外国数据包装器概念)。

我可以提取特定模式(oracle db)的所有数据。

我能够提取普通表的数据。但我无法访问像 all_tab_columns 这样的元表

我创建了服务器和用户,并在访问时间时提供了服务器详细信息和用户映射详细信息(sys 权限),这给了我错误

错误:无法验证外部表“all_tab_columns”的会话 SQL 状态:HV00N 详细信息:ORA-12571:TNS:数据包写入器失败

0 投票
0 回答
606 浏览

postgresql - 如何安全地杀死 postgres 进程?

我有一个 plpgsql 函数。该函数在通过 oracle_fdw 插件连接到 OracleXE 的某个外部表中删除和插入一些行。每分钟 cron 使用 psql 为 10 个不同的表启动 10 个此函数的实例。有时(每周少于一次)一个实例卡住了。它处于活动状态,但不能取消或终止。我可以通过 SIGKILL 杀死它,但这将取消所有其他 postgres 进程并启动恢复模式。是否可以在不使用 SIGKILL 的情况下停止此过程?(CentOS 7 上的 Postgres 9.3)

0 投票
2 回答
2389 浏览

postgresql - 无法为 oracle_fdw 加载库

我在创建 oracle_fdw 时遇到问题。

我已将 oracle_fdw.dll 复制到 postgres lib 文件夹 * .sql 文件和控制文件都复制到 shrared/extension

现在,当我使用超级管理员用户连接到 psql 并进行查询时

我得到回应

0 投票
1 回答
680 浏览

oracle - Postgres 外部数据包装器编码问题

我正在尝试将具有 ' ' 编码的 Oracle 数据迁移到具有 ' we8mswin1252' 编码的我的数据库中UTF8

我正在使用外国数据包装器

我越来越

invalid byte sequence error

我该怎么办?

0 投票
2 回答
6092 浏览

oracle - 无法在 Postgres 上创建 oracle_fdw 扩展

我按照此处的说明在PostgreSQL 服务器上安装 Oracle 外部数据包装器oracle_fdw 。

Oracle 版本: Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64 位生产,在 Red Hat Linux 7.2 上运行

PostgreSQL 版本: x86_64-unknown-linux-gnu 上的 PostgreSQL 9.4.4,由 gcc (Debian 4.7.2-5) 4.7.2 编译,64 位,在 Debian 7 (wheezy) 上运行。

我能够安装 sqlplus 并成功使用 sqlplus 从 PostgreSQL 服务器连接到 Oracle 服务器,因此连接不是问题。

但是当我尝试创建扩展时,我收到以下错误:

然后我从https://github.com/dalibo/pg_qualstats/issues/1中获取线索,并将 oracle_fdw 添加到 postgresql.conf 中的 shared_preload_libraries 中,如下所示:

但现在我无法重新启动 Postgres:

查看 /var/log/postgresql/postgresql-9.4-main.log 我只看到这两行:

从 shared_preload_libraries 中删除 oracle_fdw 允许重新启动 postgres,因此这是导致重新启动失败的原因。所以我从 shared_preload_libraries 中删除了 oracle_fdw 并将其保留在 postgresql.conf 中:

然后我能够重新启动 Postgres。


以下是完成的确切步骤:

PostgreSQL 服务器的操作系统版本

Oracle Instant Client 的安装

使用此处给出的说明安装: https ://help.ubuntu.com/community/Oracle%20Instant%20Client

我从http://www.oracle.com/technetwork/topics/linuxx86-64soft-092277.html下载了以下 rpm 文件:

  • oracle-instantclient-basic-10.2.0.3-1.x86_64.rpm
  • oracle-instantclient-devel-10.2.0.3-1.x86_64.rpm
  • oracle-instantclient-sqlplus-10.2.0.3-1.x86_64.rpm

并使用以下命令将它们安装在 PostgreSQL 服务器上:

确认安装:

使用 sqlplus 连接到 Oracle 服务器

所以这很好用。

安装 oracle_fdw

从http://pgxn.org/dist/oracle_fdw/下载 oracle_fdw 版本 1.4.0 即文件 oracle_fdw-1.4.0.zip

然后解压缩并像这样安装它:

在 Postgres 中创建扩展


堆栈跟踪

我按照 Laurenz Albe 在他的回答中的建议安装了 GNU 调试器(gdb),并得到了以下堆栈跟踪(目前没有调试符号):


更新:我能够在运行在 debian 8(8.6,jessie)上的 Postgres 9.4.9 上安装扩展。我使用了 Oracle 即时客户端版本 12.1.0.2.0-1 和 oracle_fdw 版本 1.5。

0 投票
1 回答
1146 浏览

database - 错误:无法加载库“oracle_fdw.dll”:%1 不是有效的 Win32 应用程序

我做的事情,按顺序:

  1. 从 entreprisedb.com 下载并安装 PostgreSQL 服务器 9.5.7 64bit,oracle_fdw 可用的最新版本

  2. 在安装的第二部分以 64 位变体安装了其他东西(postGIS、Npgsql、pgAgent 等),它给了我选择

  3. 从https://github.com/laurenz/oracle_fdw/releases/下载 oracle_fdw-1.3.0-pg95-win64.zip并将所有文件提取到它们应该在的位置,C:/Program Files/PostgreSQL/9.5/ ……

  4. 在 pgAdmin 中运行以下命令:

    创建扩展 oracle_fdw;

我收到以下错误:

0 投票
3 回答
814 浏览

windows - 在 Windows 中使用 oracle_fdw 扩展创建时的问题

我正在尝试在 postgresql 9.6 中安装和使用 oracle_fdw,但是每次运行以下命令时都会收到相同的问题:

这里有两件事很奇怪:

  1. 它正在寻找 dll 的文件夹中间有一个“..”,所以它似乎应该D:\PostgreSQL\pg96\lib只查看,但我也有这个文件夹D:\PostgreSQL\pg96\lib\postgresql

  2. 我在系统中设置了以下变量,但在命令中似乎没有体现:

    /li>

你们能帮助我吗?我真的需要关于如何使它工作的具体说明。

谢!

0 投票
2 回答
1298 浏览

oracle - 将 oracle 迁移到 postgresql 用于编码“UTF8”的无效字节序列:0x00

我正在将应用程序从 oracle 迁移到 postgresql。在我已经迁移的一个函数中,我将数据从不同的 oracle 数据库(oracle 中的 db 链接,postgresql 中的 oracle_fdw 扩展)从几个表复制到我的 postgresql db 中的本地表中。但是,我收到下一个错误:

invalid byte sequence for encoding "UTF8": 0x00

我看到有些人在这个论坛上遇到过这种问题,但他们没有尝试直接从远程数据库复制数据(他们从转储或 csv 加载数据..)。

某种想法我能做什么?

0 投票
1 回答
283 浏览

oracle - 将 oracle 应用程序迁移到 postgresql 日期/时间字段值超出范围:“1400-02-29 00:00:00 AD”

我正在将应用程序从 oracle 迁移到 postgresql。在我已经迁移的一个函数中,我将数据从不同的 oracle 数据库(oracle 中的 db 链接,postgresql 中的 oracle_fdw 扩展)从几个表复制到我的 postgresql db 中的本地表中。但是,我收到下一个错误:

当我尝试在 oracle db 中选择特定行时,我得到下一个值:

生日是数据类型是没有时区的时间戳。

任何想法 ?

0 投票
1 回答
413 浏览

database - 关于外部表 Postgres 9.5 的参考

我正在使用 oracle_fdw 从 postgres 9.5.3 连接到 Oracle 数据库。

服务器和用户映射已在 postgres db 上创建:

然后创建了外部表:

我试图引用的表格:

尝试添加约束:

结果是:

问题:您不能在外表上引用,对吗?因为 Oracle 不会关心其他数据库是否已引用到它的表中,而只是编辑/删除它的条目。