公式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.ymlversion: '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もやってますので良ければフォローしてください。
参考ページ
- dockerhub
- orafce本家
- orafceインストール手順参考
- gitコマンドインストール
- makeコマンドインストール
- postgresql-server-dev-N.Nエラー
- unicode/ucol.h エラー
- openssl/err.h エラー
- orafceパッケージ
コメント
[…] ⇒ PostgreSQLでorafceを使えるようにする […]
[…] postgresqlのDockerイメージでorafceを使えるようにする […]