postgresqlのDockerイメージでorafceを使えるようにする

postgresql-orafce 技術
postgresql-orafce

公式DockerHubページに従ってpostgresqlを上げた場合に、orafceをインストールする手順メモ

当初はイチからmakeする方法しかないと思ってたら、後から調べたら単純にaptでインストールできることが分かりましたので両方載せておきます。

postgresql on dockerの準備

dockerコマンドからの起動の場合

以下は一例です。状況によって引数は変更してください。

docker run --rm --name postgres -p 5432:5432 -d postgres

docker-composeでpostgresを起動の場合

以下は一例です。状況によってdocker-compose.ymlを変更してください。

# docker-compose.yml
version: '3.1'

services:
  db:
    image: postgres
    restart: always
    ports:
      - 5432:5432

orafceインストール(aptでインストールする方法)

この方法だと、orafce3.8がインストールされます。(2019/9/29現在)

dockerへ接続

docker ps -a で接続したいpostgresqlのdocker-nameを確認し以下のコマンドでdockerに接続します。

docker exec -it [docker-name] /bin/bash

orafce のインストール

以下でOKです。簡単でした。

apt-get update   
apt-get install postgresql-11-orafce    

インストール後、postgresqlのクエリから有効にできまます。「orafceを有効にする」に進んでください。

なお、dockerから抜けるには、「exit」でOKです。

orafceインストール(makeする方法)

この方法だと、orafce3.9がインストールされます。(2019/9/29現在)

dockerへ接続

docker ps -a で接続したいpostgresqlのdockerの名前を確認し接続します。

docker exec -it [docker-name] /bin/bash

orafceのコンパイルに必要なものを準備

公式いイメージの/etcを見ると、debian_version:9.11 となっていました。debianなのでaptコマンド系で必要なものをかき集めます。

apt-get -y update
apt-get -y install git
apt-get -y install build-essential
apt-get -y install postgresql-server-dev-11
apt-get -y install libicu-dev 
apt-get -y install libssl-dev

makeとinstall

ソースは、orafceの本家githubから入手し、make、installを実行します。

cd /root
git clone https://github.com/orafce/orafce
cd orafce
make; make install

これでmakeはOK。後は postgresqlのクエリから有効にできまます。

orafceを有効にする

pgadminなど外部から接続し、以下クエリを実行します。

 create extension orafce; 

cuiコマンドの場合は以下のようにdockerの内部から実行することもできます。

psql -U postgres -c "create extension orafce;"

確認

orafce各種確認

orafceバージョン確認

 SELECT * FROM pg_available_extensions where name='orafce'; 
  • aptの場合 、2019/09/29時点では、3.8でした。
  • makeの場合、2019/09/29時点では、3.9でした。

dual表で確認

orafce インストール 以前

Oracle固有の表現はエラー

orafceインストール後

postgresqlでもdual表でも応答するようになった

まとめ

dockerのpostgresqlでもorafceをインストール可能であるがわかりました。Oracle慣れしている人にとってはありがたい拡張です。何かの役に立てばうれしいです。

ここまでお読みいただきありがとうございます。このブログは、将来に備え技術力アップや資産運用を情報発信していきます。Twitterもやってますので良ければフォローしてください。

参考ページ

技術
スポンサーリンク
スポンサーリンク
takaをフォローする

コメント

  1. […]  ⇒ PostgreSQLでorafceを使えるようにする […]

  2. […] postgresqlのDockerイメージでorafceを使えるようにする […]

タイトルとURLをコピーしました