1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

脱オラクルに振り回される話

Last updated at Posted at 2025-04-30

はじめに

現在日本のデータベース管理は転換期を迎えており、
日本全国市町村の標準化にともなう
「続Oracle」か「脱Oracle」か
そして「脱Oracle」に悩まされている親愛なる友人諸君が
多くいることだろう。

ここではいきなり脱Oracleに巻き込まれた悲しいPGによる
愚痴とあるあるをそれっぽい記事にしていい感じにしていこうと思う

脱Oracle

まず脱Oracleとは?
この流れが生まれたのは、Oracleのデータベース使用料の高騰化及び、廉価版の廃止に伴う
ハイコスト&ベンダーの囲い込み(誘導)に対する拒否反から発生したものである。

AmazonがOracleから脱却したことを皮切りに、
現在「脱Oracle」という動きがよく見られており
数年前までであればOracleのベンダー資格を取る動きがあったが、
現在ではPostgresqlのベンダー資格を推奨する動きもチラホラ見えてくる。

X(旧:Twitter)などではこの「脱Oracle」「続Oracle」に関しては
いまだに議論(レスバ)がされており、
私はそれを「僕らに決定権なんてないんだから、企業がコストカットしたいといえば
脱Oracleの流れになるもんなのに何をそんな持論を展開してるんだ」
と思いながら酒を飲む日々です。

そんな私にもとうとう脱Oracleの流れがやってまいりまして
DB転換及び、新規アプリケーションの実装
という二つの事象が同時に発生する案件に組み込まれてしまいました
(どうして...同時に!!!!)
伴って旧アプリケーション(Oracle)の仕様も含めて
ちょうど勉強の機会になっているため、
本記事を含めてツラツラと後続を走る人愚痴と注意点なんかを
今後書いていきたいと思います。

どこに脱Oracleするのか

では、どこに脱出していくべきなのか
オープンソースのDBという意味であれば
「Postgresql」「MySQL」があるかと思います。
簡単な処理のみであればMySQLでもいいのですが、
元々Oracleを使っていたということは並列処理等もあることでしょう
必然的に脱Oracleの先はPostgresqlということになります

そして我々が考えないといけないのはその周辺環境もあります。
物理的なDBがあるのかクラウドなのか。

一番困るのはこれを機にAWSにしてしまえ!!のパターン
色々準備するものが増える。
そして私の案件もそう。クルシイ。

環境は決まった!その次は?

環境は決まりました。
じゃあデータを移行しなきゃいけないねとなった際に
次に噴出する課題がOracleとPostgresqlの仕様の微妙な違いにある。
これらをOracleからPostgresql用に直さないといけない。
クエリの翻訳やスキーマなどの移行作業が発生するのだ。
これが面倒くさい。

個人的にはストアドパッケージとプロシージャの移行。
これが一番面倒くさい。

私が一番参考にしているのは以下の記事
https://www.fujitsu.com/jp/products/software/resources/feature-stories/postgres/article-index/migration-plsql-stored-package/
なのだが
中身を軽く目を通してもらえばわかるように
かなり細かく分割しなければいけない。
しかもそれを、Oracleのお作法からPostgresqlにしなければいけないのだ。
どうして・・・

あと私たちはOracleの暗黙的な型変換に助けられていたんだな...
と実感することになります。

AAA.aaa=BBB.bbb

のような条件式で中身が
文字列の数値と数値型の数値の時
Oracleはそれらを数値として認識して条件を満たしてくれていましたが
Postgresqlは江戸っ子職人並みに頑固なので
場合によっては
TO_charやTo_numericのような明示的な型変換を挟む必要が出てきます。
これ、本当に注意。

おわりに

次回以降、簡単なSQLを比較して
陥りやすい(私がハマった)ミス、注意点などを紹介したいと思っています。
またどうぞよしなにしてください

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?