4 Oracle Instant Clientのインストール後の作業

Oracle Instant Clientソフトウェアをインストールした後に、これらのインストール後作業をすべて行います。

Oracle Instant Clientの使用

Oracle Instant Clientを使用するC/C++アプリケーションを構築し、Oracle Databaseサーバーに接続できます。64ビット版のアプリケーションを構築し、sdk/demo/demo.mkファイルを使用する場合は、次のステップを実行します。
  1. sdk/demo/demo.mkファイルを編集し、次のように設定します。
    1. g++の場所へのCC変数
    2. gccの場所へのcc変数
    3. インストールされているInstant ClientライブラリへのパスへのICLIBHOME変数。たとえば、ライブラリが/home/oracle/OTN/instantclient_23_3/にある場合は、次のように設定します。
      ICLIBHOME=/home/oracle/OTN/instantclient_23_3/
    4. $(ICLIBHOME)/sdk/ディレクトリへのICINCHOME変数
    5. アプリケーションのヘッダー・ファイルの場所へのCCINCLUDES変数。たとえば、アプリケーションのヘッダー・ファイルが/home/app_headersディレクトリにある場合は、次のように設定します。
      CCINCLUDES=-I$(ICINCHOME)include -I/home/app_headers/
    6. アプリケーションの他のコンパイルoptions.Theの推奨コンパイル・オプションに対するCCFLAGS変数は、次のとおりです。
      -DMAC_AARCH64 -D_GNU_SOURCE -D_REENTRANT -g -arch arm64 -mcpu=apple-m1 -I$(ICINCHOME)include

      推奨オプションの作業デモのmake -f demo.mk buildoci EXE=cdemo81 OBJS=cdemo81.oを実行します。

    7. アプリケーションが依存するライブラリとその場所へのCCLIB変数。たとえば、アプリケーションが/home/app_libs/libA.soに依存している場合は、-L/home/app_libs -lACCLIBに追加します。
    8. アプリケーションの他のリンク・オプションへのLDFLAGS変数。推奨されるリンク・オプションは次のとおりです。
      -arch arm64 -L$(ICLIBHOME) -locci -lclntsh -lpthread

      推奨オプションの作業デモのmake -f demo.mk buildoci EXE=cdemo81 OBJS=cdemo81.oを実行します。

  2. make -f demo.mk buildocci EXE=exename OBJS=list_of_dependent_objectsを実行して、C/C++アプリケーションをコンパイルします。
  3. C++アプリケーションの構築中に次の問題が発生した場合は、ottスクリプトのJAVA_PATHlibocijdbc23.dylibの場所に設定します。
    Exception in thread "main" java.lang.UnsatisfiedLinkError: no ocijdbc23 in
          java.library.path
        JAVA_PATH=-Djava.library.path=location_of_libocijdbc23
  4. アプリケーションがrpathsでコンパイルされていない場合は、アプリケーションが依存するライブラリを含むディレクトリのリストでDYLD_LIBRARY_PATH環境変数を更新します。たとえば:
    export DYLD_LIBRARY_PATH=${DYLD_LIBRARY_PATH}:/home/oracle/OTN/instantclient_23_3/:/home/app_headers/
  5. Oracle Instant Clientでtnsnames.oraなどのオプションのOracle構成ファイルを同じ場所に配置する場合は、network/adminサブディレクトリにこれらのファイルを移動します。これは、このOracle Instant ClientにリンクされたアプリケーションのデフォルトのOracle構成ディレクトリです。または、Oracle構成ファイルを別のアクセス可能なディレクトリに移動できます。その後、環境変数TNS_ADMINをそのディレクトリ名に設定します。
  6. SQL*Plusパッケージまたはその他のOracle Instant Clientパッケージのsqlplusなどのバイナリを使用するには、PATH環境変数を更新します。たとえば:
    PATH=$PATH:/home/oracle/OTN/instantclient_23_3/

Pro*C/C++の構成

PATH環境変数の設定に、Cコンパイラの実行可能ファイルを含むディレクトリが指定されていることを確認します。gccコンパイラ実行可能ファイルのデフォルト・ディレクトリは/usr/binです。

ノート:

ISO C99エラー/警告を抑制するには、Cプログラムのコンパイル時にオプション-Wno-error=または--std=gnu89を使用します。stdlib.hの前に必ずstdio.hをPCプログラムに含めます。

Oracle DatabaseへのOracle Instant Clientの接続

次のいずれかの接続文字列を使用して、Oracle Instant Clientアプリケーションのデータベース接続情報を指定します。

NLS_LANG環境変数の設定

NLS_LANGは、Oracleソフトウェアのロケール動作を指定する環境変数です。この変数では、クライアント・アプリケーションとデータベース・ユーザー・セッションに使用する言語および地域を設定します。また、クライアント用の文字セットも設定します。これは、SQL*Plusなど、Oracleクライアント・プログラムにより入力または表示されるデータの文字セットです。

ノート:

表示されるデータの文字セットは、使用しているキーボード・ドライバやフォントなどのオペレーティング・システムの環境によって決定されます。NLS_LANG文字セットがオペレーティング・システムに適合している必要があります。

グローバリゼーション・サポートの詳細は、『Oracle Databaseグローバリゼーション・サポート・ガイド』の「グローバリゼーション・サポート環境の設定」を参照してください。

Oracle Instant Clientの更新

Oracle Instant Clientを更新するには:
  1. Oracle Technology Network (https://www.oracle.com/database/technologies/instant-client/downloads.html)からOracle Instant Clientをダウンロードします。
  2. 既存のディレクトリにファイルを格納する場合は、そのディレクトリが空であることを確認します。別のディレクトリにファイルを格納(および削除)する場合は、PATH, CLASSPATH, and DYLD_LIBRARY_PATHなどの環境変数設定を更新してください。demo.mkのICLIBHOME値とottスクリプトのJAVA_PATH値を確認します。

    ノート:

    macOS上のOracle Instant Clientの制限として、opatchユーティリティを使用してパッチのアップグレードを行えないことがあります。これは、パッチのアップグレード・プロセスがパッチをアップグレードするためにアクセスする必要のあるインベントリがInstant Clientのインストールで作成されないためです。