详解PostgreSQL成功安装oracle_fdw方法,解决the specified procedure could not be found错误
来源:互联网 发布:激战2呆萌夏尔捏脸数据 编辑:程序博客网 时间:2024/06/06 01:08
oracle_fdw的使用教程点击这里
1.首先到github oracle_fdw下载最新版本的oracle_fdw压缩包,找到符合系统与PostgreSQL数据库的版本(本人为win7-32bit、pssql9.3.18),所以选择如下版本
2.下载完成将zip包解压,得到如下左图文件。把【lib】文件夹的oracle_fdw.dll和【share/extension】目录下的三个文件(下右图)分别复制到PostgreSQL安装目录下的【lib】文件夹和【share/extension】目录里去。
此时,可以使用select * from pg_available_extensions;语句能查询到oracle_fdw extension,说明成功放置到目录里了,但还没有被安装(isstalled_version 列为null).如果你这时用create extension oracle_fdw;语句安装,发现是会不成功滴。因为还要oracle client。
3.安装oracle client。本人已经安装有oracle forms&reports builder这些软件,还有sqlplus也有,以为客户端也就有了,结果执行创建语句还是失败(如下图)。{个人猜想:可能是客户端版本太旧或者根本没有,但sqlplus能用啊,就暂且不理了}
在Oracle官方页面下载轻量级的客户端oracle instant client(不用安装oracle11g数据库那么笨重),找到对应OS与数据库版本(本人连接的数据库为11.2.0.4.0),下载basic package(如果不需要操作oracle数据库应该仅下载此包即可,待验证),本人把sql*plus包也下载(为了验证oracle isntat client是否安装成功,能在sqlplus连接上数据库就是成功了)。
安装过程:把basic package解压,若有下载其他包,把其他包解压后得到的文件复制放到instantclient_11_2(解压basic包后的文件夹)里,把tnsnames.org也复制一份到isntantclient_11_2文件夹(tnsnames.org必须配置好);
配置环境变量NLS_LANG:SIMPLIFIED CHINESE_CHINA.ZHS16CGB231280
Path:E:\Program Files\instantclient_11_2(此处为你的oracle instant client 所在路径添加到path中)
{有的文章说还要配置ORACLE_HOME = XX:\instantclient_11_2;TNS_ADMIN = XX:\instantclient_11_2两个系统变量的,我没配置最后的最后也OK;
除了安装oracle instant client,我在另一台安装有oracle11g的机子上按步骤1、2,然后直接使用create extension oracle_fdw也能成功创建}
配置好这些后,我重新启动电脑及重新连接postgresql,创建的时候还是提示“无法加载库XXXXXXoracle_fdw.dll”:The specified procedure could not be found.
【网上说法与个人想法】oracle_fdw是通过oci接口访问Oracle。看到github上有人说是more than one oracle installation,导致有多个oci.dll,PostgreSQL服务进程不能找到oracle client库文件oci.dll。我看了系统变量Path的第一个值是我前面所说的安装forms&reports的oracle bin路径,我把oracle instant client的路径追加到末端,可能导致PostgreSQL进程直接找第一个路径的oci.dll,而该oci.dll对应的版本可能太旧或者这个oci.dll根本不具备oracle client的角色吧,因此找到这个oci.dll也没用,也就导致了步骤3把oracle client的路径添加到系统变量也没用。
最后我把oracle instant client的途径放到Path系统变量第一值的位置,重启计算机,再create extension oracle_fdw终于安装成功了。在pg_available_extensions也能看到installed_version字段不为null.
看完本方法有任何问题欢迎讨论交流~
- 详解PostgreSQL成功安装oracle_fdw方法,解决the specified procedure could not be found错误
- 解决node-ffi在Windows XP上使用出现“Error: The specified procedure could not be found”的错误
- 解决IIS出现The specified module could not be found的方法
- The specified module could not be found
- The specified module could not be found
- Web服务器The specified module could not be found错误解决方法
- IIS错误解决方法:The specified module could not be found、访问 IIS 元数据库失败
- IIS出现The specified module could not be found错误解决方法!
- IIS出现The specified module could not be found解决方法
- IIS出现The specified module could not be found解决方法
- A server with the specified hostname could not be found.
- ISAPI程序出现“The specified module could not be found”问题解决方法
- error127:The specified procedure could not be found.无法找到入口 无法定位程序输入点xxx 于动态链接库ulib.dll上
- apt-get The method driver /usr/lib/apt/methods/http could not be found错误解决
- Mac下安装JAVAHL An appropriate version of sqlite could not be found 错误解决
- The specified moduld could not be found.(Exception from HRESULT:0X8007007E
- [转]The specified module could not be found. (Exception from HRESULT: 0x8007007E)
- IIS出现The specified module could not be found的解决方法
- 你心目中最厉害的智能机器人是什么样的?
- Oracle时间处理函数和算法
- String 经典内存指向面试题
- Android 关闭多个activity Intent.FLAG_ACTIVITY_CLEAR_TOP用法
- Windows批处理(cmd/bat)常用命令小结
- 详解PostgreSQL成功安装oracle_fdw方法,解决the specified procedure could not be found错误
- 西瓜书《机器学习》课后答案——Chapter1
- 梅特勒杯创新大赛(三):Android的GPS定位功能
- 深入理解Java对象序列化
- 深度学习在CTR中的应用
- MOOC清华《面向对象程序设计》第5章:OOP版填充数字旋转矩阵
- 不使用三方包时,如何在社交系统ThinkSNS中建立优雅的用户权限管理【研发日记13】
- Mysql字符串截取函数SUBSTRING的用法说明
- 机器人室内自主导航行走解决方案