文档章节

ODPI-C Installation¶

rootliu
 rootliu
发布于 2017/09/09 22:17
字数 1539
阅读 12
收藏 0

ODPI-C Installation

Overview

To use ODPI-C in your own project, download its source from GitHub. A sample Makefile is provided if you wish to build ODPI-C as a shared library. Otherwise, add the ODPI-C source code to your project. On Windows, Visual Studio 2008 or higher is required. On macOS, Xcode 6 or higher is required. On Linux, GCC 4.4 or higher is required.

Projects using ODPI-C require Oracle Client libraries to be installed. The libraries provide the necessary network connectivity allowing applications to access an Oracle Database instance. They also provide basic and advanced connection management and data features to ODPI-C applications.

The simplest Oracle Client is the free Oracle Instant Client. Only the “Basic” or “Basic Light” package is required. Oracle Client libraries are also available in any Oracle Database installation or full Oracle Client installation.

ODPI-C explicitly loads available Oracle Client libraries at runtime. This allows code using ODPI-C to be built only once, and then run using available Oracle Client 11.2, 12.1 or 12.2 libraries. On non-Windows platforms, if no Oracle Client is located in the standard operating system search page (e.g. LD_LIBRARY_PATH), then ORACLE_HOME is searched. If Oracle Client libraries are still not found, the error “DPI-1047: Oracle Client library cannot be loaded” is raised.

The following sections explain how to ensure the Oracle Client is installed and configured correctly on the various platforms so that ODPI-C is able to find it.

ODPI-C has been tested on Linux, Windows and macOS. Other platforms should also work but have not been tested.

Oracle Client and Database Versions

ODPI-C can use Oracle Client 11.2, 12.1 or 12.2 libraries.

Oracle Client libraries allow connection to older and newer databases. In summary, Oracle Client 12.2 can connect to Oracle Database 11.2 or greater. Oracle Client 12.1 can connect to Oracle Database 10.2 or greater. Oracle Client 11.2 can connect to Oracle Database 9.2 or greater. For additional information on which Oracle Database releases are supported by which Oracle client versions, please see Doc ID 207303.1.

Since a single ODPI-C binary can use multiple client versions and access multiple database versions, it is important your application is tested in your intended release environments. Newer Oracle clients support new features, such as the oraaccess.xml external configuration file available with 12.1 or later clients, and session pool enhancements to dead connection detection in 12.2 clients.

The function dpiContext_getClientVersion() can be used to determine which Oracle Client version is in use and the functiondpiConn_getServerVersion() can be used to determine which Oracle Database version a connection is accessing. These can then be used to adjust application behavior accordingly. Attempts to use some Oracle features that are not supported by a particular client/server combination may result in runtime errors. These include:

  • when attempting to access attributes that are not supported by the current Oracle Client library you will get the error “ORA-24315: illegal attribute type”
  • when attempting to use implicit results with Oracle Client 11.2 against Oracle Database 12c you will get the error “ORA-29481: Implicit results cannot be returned to client”
  • when attempting to get array DML row counts with Oracle Client 11.2 you will get the error “DPI-1013: not supported”

Linux

ODPI-C requires Oracle Client libraries, which are found in Oracle Instant Client, or an Oracle Database installation, or in a full Oracle Client installation. The libraries must be either 32-bit or 64-bit, matching your application and ODPI-C library (if one is created separately).

On Linux, ODPI-C first searches for a library called “libclntsh.so” using the standard library search order. If this is not found, it will then search for “libclntsh.so.12.1” and then for “libclntsh.so.11.1” before returning an error.

Oracle Instant Client Zip

To run ODPI-C applications with Oracle Instant Client zip files:

  1. Download an Oracle 11.2, 12.1 or 12.2 “Basic” or “Basic Light” zip file: 64-bit or 32-bit, matching your application architecture.

  2. Unzip the package into a single directory that is accessible to your application. For example:

    mkdir -p /opt/oracle
    cd /opt/oracle
    unzip instantclient-basic-linux.x64-12.2.0.1.0.zip
  3. Install the libaio package with sudo or as the root user. For example:

    sudo yum install libaio

    On some Linux distributions this package is called libaio1 instead.

  4. Set the environment variable LD_LIBRARY_PATH to the appropriate directory for the Instant Client version. For example:

    export LD_LIBRARY_PATH=/opt/oracle/instantclient_12_2:$LD_LIBRARY_PATH

    Alternatively, if there is no other Oracle software on the machine that will be impacted, permanently add Instant Client to the runtime link path. For example, with sudo or as the root user:

    sudo sh -c "echo /opt/oracle/instantclient_12_2 > /etc/ld.so.conf.d/oracle-instantclient.conf"
    sudo ldconfig

Oracle Instant Client RPM

To run ODPI-C applications with Oracle Instant Client RPMs:

  1. Download an Oracle 11.2, 12.1 or 12.2 “Basic” or “Basic Light” RPM: 64-bit or 32-bit, matching your application architecture.

  2. Install the downloaded RPM with sudo or as the root user. For example:

    sudo yum install oracle-instantclient12.2-basic-12.2.0.1.0-1.x86_64.rpm

    Yum will automatically install required dependencies, such as libaio.

  3. Set the environment variable LD_LIBRARY_PATH to the appropriate directory for the Instant Client version. For example:

    export LD_LIBRARY_PATH=/usr/lib/oracle/12.2/client64/lib:$LD_LIBRARY_PATH

    Alternatively, if there is no other Oracle software on the machine that will be impacted, permanently add Instant Client to the runtime link path. For example, with sudo or as the root user:

    sudo sh -c "echo /usr/lib/oracle/12.2/client64/lib > /etc/ld.so.conf.d/oracle-instantclient.conf"
    sudo ldconfig

Local Database or Full Oracle Client

ODPI-C applications can use Oracle Client 11.2, 12.1 or 12.2 libraries from a local Oracle Database or full Oracle Client installation.

The libraries must be either 32-bit or 64-bit, matching your application and ODPI-C library (if one is created separately).

  1. Set required Oracle environment variables by running the Oracle environment script. For example:

    source /usr/local/bin/oraenv

    For Oracle XE, run:

    source /u01/app/oracle/product/11.2.0/xe/bin/oracle_env.sh

Windows

ODPI-C requires Oracle Client libraries, which are found in Oracle Instant Client, or an Oracle Database installation, or in a full Oracle Client installation. The libraries must be either 32-bit or 64-bit, matching your application and ODPI-C library (if one is created separately).

On Windows, ODPI-C searches for the Oracle Client library “OCI.dll” using the standard library search order.

Oracle Client libraries require the presence of the correct Visual Studio redistributable.

Oracle Instant Client Zip

To run ODPI-C applications with Oracle Instant Client zip files:

  1. Download an Oracle 11.2, 12.1 or 12.2 “Basic” or “Basic Light” zip file: 64-bit or 32-bit, matching your application architecture.
  2. Unzip the package into a single directory that is accessible to your application.
  3. Set the environment variable PATH to include the path that you created in step 2. For example, on Windows 7, update PATH in Control Panel -> System -> Advanced System Settings -> Advanced -> Environment Variables -> System Variables -> PATH.

Local Database or Full Oracle Client

The Oracle libraries must be either 32-bit or 64-bit, matching your application and ODPI-C library (if one is created separately).

To run ODPI-C applications using client libraries from a local Oracle Database (or full Oracle Client) 11.2, 12.1 or 12.2 installation:

  1. Set the environment variable PATH to include the path that contains OCI.dll, if it is not already set. For example, on Windows 7, updatePATH in Control Panel -> System -> Advanced System Settings -> Advanced -> Environment Variables -> System Variables -> PATH.

macOS

ODPI-C requires Oracle Client libraries, which are found in Oracle Instant Client for macOS.

On macOS, ODPI-C first searches for a library called “libclntsh.dylib” using the standard library search order. If this is not found, it will then search for “libclntsh.dylib.12.1” and then for “libclntsh.dylib.11.1” before returning an error.

Oracle Instant Client Zip

To run ODPI-C applications with Oracle Instant Client zip files:

  1. Download the 11.2 or 12.1 “Basic” or “Basic Light” zip file from here. Choose either a 64-bit or 32-bit package, matching your application architecture. Most applications use 64-bit.

  2. Unzip the package into a single directory that is accessible to your application. For example:

    mkdir -p /opt/oracle
    unzip instantclient-basic-macos.x64-12.1.0.2.0.zip
  3. Add links to $HOME/lib to enable applications to find the library. For example:

    mkdir ~/lib
    ln -s /opt/oracle/instantclient_12_1/libclntsh.dylib.12.1 ~/lib/

    Alternatively, copy the required OCI libraries. For example:

    mkdir ~/lib
    cp /opt/oracle/instantclient_12_1/{libclntsh.dylib.12.1,libclntshcore.dylib.12.1,libons.dylib,libnnz12.dylib,libociei.dylib} ~/lib/

    For Instant Client 11.2, the OCI libraries must be copied. For example:

    mkdir ~/lib
    cp /opt/oracle/instantclient_11_2/{libclntsh.dylib.11.1,libnnz11.dylib,libociei.dylib} ~/lib/

Other Platforms

To run ODPI-C applications on other platforms (such as Solaris and AIX), follow the same general directions as for Linux Instant Client zip files or Local Database. Add the Oracle libraries to the appropriate library path variable, such as LD_LIBRARY_PATH on Solaris, or LIBPATH on AIX.

本文转载自:https://oracle.github.io/odpi/doc/installation.html

共有 人打赏支持
rootliu
粉丝 4
博文 280
码字总数 2796
作品 0
海淀
数据库管理员
私信 提问
cx_Oracle.DatabaseError: DPI-1047: 64-bit Oracle Client library cannot be loaded: 解决方案

ODPI-C安装 要在您自己的项目中使用ODPI-C,请从GitHub下载其源代码。如果您希望将ODPI-C构建为共享库,则会提供示例Makefile。否则,将ODPI-C源代码添加到项目中。在Windows上,需要Visual ...

一看就喷亏的小猿
11/22
0
0
Phalcon Developer Tools on Windows

These steps will guide you through the process of installing Phalcon Developer Tools for Windows. Prerequisites¶ The Phalcon PHP extension is required to run Phalcon Tools. If......

mickelfeng
2013/07/06
0
0
如何在Windows中安装Wt

来自:http://redmine.webtoolkit.eu/projects/wt/wiki/InstallingWtonMSWindows Installing Wt on MS Windows¶〔原文拷贝,锚链不要点 :-)〕 This HOWTO assumes you have a clean Window......

zhmsong
2010/07/31
0
0
如何在Windows中安装Wt

来自:http://redmine.webtoolkit.eu/projects/wt/wiki/InstallingWtonMSWindows Installing Wt on MS Windows¶ 〔原文拷贝,锚链不要点 :-)〕 Installing Wt on MS Windows Setting up you......

zhmsong
2010/08/24
0
0
eclipse 在debug模式下 报出javax.imageio.IIOException: Can't create cache file!

系统环境:win8 开发环境:java-jdk1.7+tomcat7+eclipse+mysql 在登录页面绘制验证码时,eclipse启动tomcat没有问题。 但是采用debug模式启动tomcat时报错。 Caused by: javax.imageio.IIOEx...

豆豆4997
2014/10/29
1K
0

没有更多内容

加载失败,请刷新页面

加载更多

菜单menuView总结

1、FTPopOverMenu

_____1____
18分钟前
1
0
比特币PHP离线交易开发包——BtcTool

BtcTool是一个基于第三方服务和离线裸交易实现的PHP比特币应用开发包,适合不希望部署本地 节点旳PHP开发者,开发包主要包含以下特性: 利用第三方服务获取指定地址的utxo集合 离线生成消费裸...

笔阁
24分钟前
0
0
MyEclipse教程:Web开发——部署和测试Web项目

MyEclipse 在线订购年终抄底促销!火爆开抢>> MyEclipse最新版下载 本教程向用户展示了使用关联的Web项目创建Web片段项目的机制。用户还可以获得要检查的示例项目。在本教程中,用户将学习如...

电池盒
34分钟前
3
0
C语言真正的编译过程

说实话,很多人做了很久的C/C++,也用了很多IDE,但是对于可执行程序的底层生成一片茫然,这无疑是一种悲哀,可以想象到大公司面试正好被问到这样的问题,有多悲催不言而喻,这里正由于换工作...

xtof
36分钟前
14
0
linux使用docker-compose部署软件配置

本篇将分享一些 docker-compose 的配置,可参考其总结自己的一套基于docker的开发/生产环境配置。下面话不多说了,来一起看看详细的介绍吧 安装docker及docker-compose install docker curl ...

开元中国2015
52分钟前
8
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部