DBを移行する際などに気を付けるべき点を記述する。
データ型
OracleDatabase | PostgreSQL | |
---|---|---|
数値型 | NUMBER | Integer, Numeric |
文字型 | CHAR, VARCHAR | CHAR, VARCHAR |
日付型 | DATE, TIMESTAMP | DATE, TIMESTAMP |
バイナリ列データ型 | RAW | bytea |
空文字列("")の扱い
OracleDatabase 空文字列("")をNULLとして扱う。
PostgreSQL 空文字列("")とNULLを違うものとして扱う。
SQL
varchar型のデータをWHERE句に指定する際
OracleDatabaseは条件をシングルクォートで囲んでも囲まなくてもOK
SELECT * FROM hoge WHERE column = '条件' ;
もしくは
SELECT * FROM hoge WHERE column = 条件;
PostgreSQLではシングルクォートで必ず囲む必要がある
SELECT * FROM hoge WHERE column = '条件' ;
外部結合
OracleDatabaseは結合演算子(+)が利用できる
PostgreSQLは結合演算子(+)が利用できず、JOIN句を利用する必要がある。
システム日付の取得
OracleではCURRENT_DATE, SYSDATEで取得可能
PostgreSQLではCURRENT_DATE, now()を利用する。