Oracle Instant Clientのmacへの導入設定 - foolmacky/DevelopDocs GitHub Wiki

■Oracle Instant Clientの導入

  • https://www.oracle.com/jp/database/technologies/instant-client/macos-intel-x86-downloads.html x86とPPCに分かれている。M1用はまだない
  • 同じversionのbase package, sqlplusなどは、ドキュメントの通りinstallスクリプトを実行すると~/Download以下の同一ディレクトリに一旦展開される
  • そのままだとイマイチなので、自分は/Library/Oracle ディレクトリを作成して、その配下に移動
  • PATHをそのディレクトリに通しておく

■rlwrapパッケージの導入

  • brew install rlwrap
  • sqlplusコマンドをrlwrapでwrapする。プロンプトに色を付けられる
alias sql='rlwrap -p"BLUE" sqlplus'

■Oracleの接続設定ファイルの作成,環境変数の設定

  • tnsnames.oraの配置
  • TNS_ADMINなどの環境変数の設定
  • login後のプロンプトの設定
-- 実際に接続したホスト名をプロンプトに表示
column define_servername new_value _SERVER_HOST noprint
SELECT SYS_CONTEXT('USERENV','SERVER_HOST') define_servername from dual;
set sqlprompt "_SERVER_HOST > "

■goのtestなどでlibraryがロードできないエラーが出る

dyld: Library not loaded: @rpath/libclntsh.dylib.1.19.1
  • これらのファイルはInstant clientのディレクトリに存在する
  • macの場合はDYLD_LIBRARY_PATH環境変数は無視されるようなので、oracleのmanualにしたがって/usr/local/libにシンボリックリンクを作成する
ln -s /Library/Oracle/instantclient_19_8/libclntsh.dylib.1.19.1 libclntsh.dylib.1.19.1