oracle_fdw

oracle_fdw是一款开源插件,github地址: https://github.com/laurenz/oracle_fdw 。openGauss基于开源的 oracle_fdw Release 2.2.0 版本(https://github.com/laurenz/oracle_fdw/archive/ORACLE_FDW_2_2_0.tar.gz )进行开发适配。

编译和使用oracle_fdw需要环境上包含Oracle的开发包,所以openGauss默认不编译oracle_fdw,下面依次介绍如何编译和使用oracle_fdw。

编译oracle_fdw

编译oracle_fdw需要安装Oracle的开发库和头文件,相关文件可以在Oracle的官方网站上下载: https://www.oracle.com/database/technologies/instant-client/downloads.html

选择合适的运行环境和版本,下载Basic Package和SDK Package并安装。另外SQLPlus Package是Oracle的客户端工具,也可以根据需要安装,用于连接Oracle Server进行测试。

安装好开发包后,就可以开始编译oracle_fdw了。编译时需要在执行configure时,加入 –enable-oracle-fdw 选项。后续按照正常的openGauss编译方式编译即可。(openGauss的编译参考

编译完成后,编译产物为 oracle_fdw.so,位于安装目录的 lib/postgresql/ 下。oracle_fdw相关的sql文件和control文件,位于安装目录的 share/postgresql/extension/ 下。

如果编译安装时,没有加入 –enable-oracle-fdw 选项,可以在openGauss安装完成后,再次编译oracle_fdw,然后手动将编译产物 oracle_fdw.so 放到对应的安装目录 lib/postgresql/ ,将 oracle_fdw–1.0–1.1.sql,oracle_fdw–1.1.sql,oracle_fdw.control 放到对应的安装目录 share/postgresql/extension/ 即可。

使用oracle_fdw

使用oracle_fdw需要连接Oracle,Oracle server请自行安装。

加载oracle_fdw扩展:CREATE EXTENSION oracle_fdw;

创建外表:

删除扩展:DROP EXTENSION oracle_fdw;

常见问题

在openGauss上建立外表时,不会同步在Oracle上建表,需要自己利用Oracle的客户端连接Oracle建表。

执行CREATE USER MAPPING时使用的Oracle用户需要有远程连接Oracle及对表相关操作的权限。使用外表前,可以在openGauss server所在的机器上,使用Oracle的客户端,使用对应的用户名密码确认能否成功连接Oracle并进行操作。

执行 CREATE EXTENSION oracle_fdw; 时,出现 libclntsh.so: cannot open shared object file: No such file or directory 。原因是Oracle的开发库libclntsh.so不在系统的相关路径中,可以先找到libclntsh.so的具体路径,然后将该so文件所在的文件夹加到 /etc/ld.so.conf 中。比如libclntsh.so的路径为 /usr/lib/oracle/11.2/client64/lib/libclntsh.so.11.1 ,那么就将该文件的路径 /usr/lib/oracle/11.2/client64/lib/ 加到 /etc/ld.so.conf 文件末尾。然后执行 ldconfig 使修改生效即可。注意此操作需要 root 权限。

已知问题

两个oracle外表间的SELECT JOIN不支持下推到Oracle server执行,会被分成两条SQL语句传递到Oracle执行,然后在openGauss处汇总处理结果。

不支持IMPORT FOREIGN SCHEMA语法。

不支持对外表进行CREATE TRIGGER操作。

外表加载oracle,opengauss外部表插件——oracle_fdw相关推荐

  1. Oracle的外部表

    一.外部表特性 数据文件位于操作系统之外,并且具有一定的格式分割的文本文件或其他类型文件.ORACLE的外部表通过SQL的形式访问数据文件中的数据,数据并不需要加载到数据库中且数据是可读的,所以不用D ...

  2. oracle批量加载,Oracle教程:使用SQL*Loader高速批量数据加载工具

    Oracle教程:使用SQL*Loader高速批量数据加载工具 1.控制文件中包含要加载的数据 首先创建一张测试表 然后创建一个控制文件(其中包含被加载的数据) 然后在命令行执行加载 查看dept表 ...

  3. Oracle之外部表

    Oracle之外部表 有时候,数据库海量数据的存储,是一个令人头疼的问题.别的不说,光是频繁的执行insert(1000次/秒)都是一场恶梦.但是,如果将数据保存到文家里,而不是数据库中,数据序列化的 ...

  4. Endnote20加载入wps——当COM加载项找不到插件时

    Endnote20加载入wps--当com加载项找不到插件时 1,问题 最近自己电脑上的wps莫名其妙的就不能关联到Endnote20,明明前一晚写论文都还在用的,真是非常的阴间,自己在摸索一天之后, ...

  5. oracle把中文转换为拼音,怎样将“Oracle”的外部表汉字转换为拼音

    怎样将"Oracle"的外部表汉字转换为拼音 2008-03-07 eNet&Ciweek 我在原来的应用中使用代码表加一个函数来处理汉字转拼音的转换问题,现在由于工作需要 ...

  6. 解决pjax加载页面不执行js插件的问题

    解决pjax加载页面不执行js插件的问题 参考文章: (1)解决pjax加载页面不执行js插件的问题 (2)https://www.cnblogs.com/fanwenhao/p/9643549.ht ...

  7. 8款效果精美的 jQuery 加载动画和进度条插件

    加载动画和进度条在网站和 Web 应用中的使用非常流行.虽然网速越来越快,但是我们的网站越来越复杂,同时用户对网站的使用体验的要求也越来越高.在内容加载缓慢的时候,使用时尚的加载动画和进度条告诉用户还 ...

  8. html 执行外部js的函数,javascript – Chrome扩展程序:加载并执行外部脚本

    我无法在我的chrome扩展程序中加载和执行外部js-script.看起来和 this question一样,但我仍然无法弄清楚为什么它在我的情况下不起作用. 我的想法是,我希望在我的内容脚本中有一些 ...

  9. 如何使用Oracle的外部表查询警告日志文件

    从Oracle9i版本开始,Oracle的外部表技术(Oracle External Tables)有了很大的增强,通过外部表访问外部数据增强了Oracle数据库和外部数据源进行数据交互能力,对于数据 ...

最新文章

  1. 大家是否也习惯将常用到的Python软件包放在一个头文件里?
  2. psycopg2 mysql_使用psycopg2操作PostgreSQL数据库之二
  3. ORACLE SQL笛卡尔集
  4. 不同类型的变量在内存中存储的详细情况
  5. 安全之心:一文读懂可信计算
  6. hive整合ldap权限管理
  7. (算法)最长回文子串
  8. SC2012 Orchestrator - 文档及资源链接
  9. Docker下载太慢
  10. 【Foreign】字符串匹配 [KMP]
  11. EF Ccore 主从配置 最简化
  12. 查看User Profile的名称和显示名称
  13. ptc creo 4.0 m140中文版(CAD设计软件) 附安装教程
  14. iOS--HealthKit简单使用
  15. 计算机无法进入桌面怎么备份,系统崩溃无法启动如何从pe进入系统备份C盘和桌面重要文件...
  16. 【声明】DPDK开源社区更名为“DPDK与SPDK开源社区”
  17. python 内置函数——排序
  18. 交互设计谁是最好用的原型绘制工具
  19. 软件系统开发的先行军——原型系统
  20. java无法读取appletviewer_Java设计环境和警告:不能读取AppletViewer的属性

热门文章

  1. 笔记|软件调试的技巧
  2. Dapper Sqlpara where in
  3. 利用OpenFileDialog 获取图片存储到数据库中
  4. PowerDesigner模型设计1
  5. 【信息系统项目管理师】第10章 上篇-项目沟通管理 知识点详细整理
  6. winscp怎么更改linux权限,Linux下,WinSCP普通用户登录sftp后切换到root权限 教程
  7. ffmpeg编码视频总结
  8. 通过AMS分析Binder流程(Java到Kernel)
  9. C语言volatile的本质(三十四)
  10. 证明: 1/x = a^(-1)