LoginSignup
2
0

More than 1 year has passed since last update.

OracleからPostgreSQLへマイグレーション

Oracleのライセンス形態が変わり、使い勝手がよくなくなっているようで、OracleからPostgreSQLへの切り替えの話が時々出る。
弊社でも、Delphiプログラムのマイグレーションついで、データベースのOracleからPostgreSQLへのマイグレーションを数件やらせていただいた実績がある。

マイグレーション注意点

マイグレーションに際しては、SQL文の変更が必要になってくる。

外部結合演算子(+) の変更や、オラクル固有の関数などの対応です。
オラクル関数について、よく使われている(弊社実績)関数、nvl(), decode() については、PostgreSQLのfunction()を使うことで何とかなりそうだが
厄介なのは、外部結合演算子。**** OUTER JOIN に書き換えないといけない。意外とめんどい。
ある程度、クエリを理解して書き換えるような部分も出てくる。それなりに工数もかかる。

C#のデータベースマイグレーション

最近、C#でのOracleからPostgreSQLへのマイグレーションの話をいただきソースを借用いただき調査したのだが、
外部結合演算子(+)が思っていた以上に多い。
依頼いただいたプログラムがこれまでDelphiでのDBマイグレーションを行ったものに比べソース量が多いのは確かだがそれにしても多い。

しばらく原因がわからないまま作業を進めたのだが、ふと一点気づいた。
Delphiの場合、外部結合演算子(+)で取得データはクエリに含めず、コンポーネントのLookUpフィールドで取得しているのだ。
これが、外部結合演算子(+)を減らしているのだ。
コンポーネントでLookUpフィールドを使うのはめんどいなぁと思っていたのだが、意外な効用があったということだ。

おわりに

教訓。
C#の場合、積極的にデータベースマイグレーションを勧めるのはやめよう。。。。
Delphiだったら、OracleからPostgreSQLへマイグレーション、積極的勧めよう。

C#、Delphi以外は、、、話が来てから考えよう。

(この記事の内容は、あくまでも雑感です)

2
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
2
0