Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
Help us understand the problem. What is going on with this article?

PostgreSQLにOrafceをインストールする

More than 3 years have passed since last update.

PostgreSQLにOrafceをインストールしよう

OrafceはオラクルDBの関数をPostgreSQLでも使えるようにするextensionです。
いまどきかよ。。。
という気もしますが、古くからみなさまにご愛用いただいているWebシステムではまだ重宝されています。
ちょっと古い環境を用意する必要があり、Orafceを導入した際の手順をまとめておきます。

環境

CentOS7.3
PostgreSQL 9.3

RPMでインストール

makeを使ってインストールする方法もありますが、
自分の環境ではうまく入らず。。。
嬉しいことにRPMが公開されていたので、こちらを利用させていただきます。
https://centos.pkgs.org/7/epel-testing-x86_64/orafce-3.1.2-3.el7.x86_64.rpm.html
こちらからRPMをダウンロードしておきましょう。

ダウンロードが済んだらインストールするだけです。

rpm -ivh orafce-3.1.2-3.el7.x86_64.rpm

自分の環境ではココにインストールされました。

root@orafcedb orafce]# find / -name "*.sql"
/usr/share/pgsql/conversion_create.sql
/usr/share/pgsql/extension/plpgsql--1.0.sql
/usr/share/pgsql/extension/plpgsql--unpackaged--1.0.sql
/usr/share/pgsql/extension/orafce--3.1.sql
/usr/share/pgsql/extension/orafce--unpackaged--3.1.sql
/usr/share/pgsql/extension/orafce.sql
/usr/share/pgsql/extension/uninstall_orafce.sql

PostgreSQLにOrafceを導入

PostgreSQLにログインし、Orafceを導入したいデータベースに接続します。
その後、以下のクエリを実行します。

create extension orafce;

Orafceが入っているか確認します。

\dx
-[ RECORD 1 ]----------------------------------------------------------------------------------------------
Name        | orafce
Version     | 3.1
Schema      | public
Description | Functions and operators that emulate a subset of functions and packages from the Oracle RDBMS
・・・

後は、Oracleの関数を実行できるか確認します。
以下のようにnext_day関数が実行できればOrafce導入成功です。

postgres=# select next_day(current_date, 'saturday');
-[ RECORD 1 ]--------
next_day | 2017-12-16

以下のようにエラーになってしまったら失敗です。
どこか間違っているかもしれません。

postgres=# select next_day(current_date, 'saturday');
ERROR:  function next_day(date, unknown) does not exist
LINE 1: select next_day(current_date, 'saturday');
               ^
HINT:  No function matches the given name and argument types. You might need to add explicit type casts.

古い環境とはいえ、
動いた時は感動ものですね。

SRsawaguchi
Webサービス作ってます。
https://www.ohitori.fun
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away