ユーザ用ツール

サイト用ツール


it技術:データベース:postgresql:oracleからの移行

差分

このページの2つのバージョン間の差分を表示します。

この比較画面へのリンク

両方とも前のリビジョン前のリビジョン
次のリビジョン
前のリビジョン
it技術:データベース:postgresql:oracleからの移行 [2021/12/27 09:32] – [データ型] yajuadminit技術:データベース:postgresql:oracleからの移行 [2023/12/18 13:16] (現在) – [データ型] yajuadmin
行 11: 行 11:
 |SYSDATE|current_timestamp  \\ ※SQL92に従いnow()は使わない|現在の日付/時刻を取得する関数|HH24MMSS → HH24MISS| |SYSDATE|current_timestamp  \\ ※SQL92に従いnow()は使わない|現在の日付/時刻を取得する関数|HH24MMSS → HH24MISS|
 |ROWID|oid|32bit(約43億)で一周してしまう|Create文でWITH OIDSと設定しないと使用できない、PostgreSQL12以降はWITH OIDS廃止| |ROWID|oid|32bit(約43億)で一周してしまう|Create文でWITH OIDSと設定しないと使用できない、PostgreSQL12以降はWITH OIDS廃止|
 +| |ctid|ROWIDに相当|バキューム処理によって ctid が変更される可能性があります。|
  
 参照:[[http://interdbconnect.sourceforge.net/oracle_fdw/data_mapping-ja.html|oracle_fdw データ型マッピング]] 参照:[[http://interdbconnect.sourceforge.net/oracle_fdw/data_mapping-ja.html|oracle_fdw データ型マッピング]]
行 115: 行 116:
 </code> </code>
  
 +TABLEを作成するよりVIEWにする方が一般的。\\
 +[[https://thinkit.co.jp/cert/marugoto/2/1/21/2.htm|PostgreSQLとOracleによるデータベース相互移行マニュアル - ThinkIT]]
 +
 +<code sql>
 +CREATE VIEW dual AS
 +  SELECT 'X' AS DUMMY;
 +</code>
  
  
行 174: 行 182:
    WHERE MGR_ID IS NOT NULL;    WHERE MGR_ID IS NOT NULL;
 </code> </code>
 +==== DELETE文のFROM句にJOINが使えない ====
 +USING句やIN句に変更する。\\
 +[[https://kailo.jp/post/10|PostgreSQLでJOINした結果をDELETEする]]
 +
 +==== MERGE文サポート(PostgreSQL 15以降) ====
 +PostgreSQL 15でMERGE文がサポートされました。
 +
 +  * [[https://www.sraoss.co.jp/tech-blog/wp-content/uploads/2022/09/pg15_report_20220906_rev2.pdf|PostgreSQL15 検証レポート - pdf]]
 +  * [[https://dev.classmethod.jp/articles/postgresql15-suppoerts-merge-syntax-upsert/|PostgreSQL 15にMERGE文UPSERTがやってくる]]
 +
 ==== 集合演算 ==== ==== 集合演算 ====
 UNION句、INTERSEC句での変更はない。ただし、OracleのMINUS句は、PostgreSQLではEXCEPT句に変更する必要がある。\\ UNION句、INTERSEC句での変更はない。ただし、OracleのMINUS句は、PostgreSQLではEXCEPT句に変更する必要がある。\\
行 206: 行 224:
 WHERE AA = xxx AND AB = xxx AND AC = xxx AND AD = xxx WHERE AA = xxx AND AB = xxx AND AC = xxx AND AD = xxx
 </code> </code>
 +
 +=== bloomインデックスを使用する ===
 +主キーが複数の場合のインデックスにはデフォルトのb-treeインデックスが使用されるが、弱点として先頭のキーが外れるとインデックスが使われなくなる。その場合に複数列インデックスには、bloomインデックスを使用することで、先頭のキーが条件が外れていてもインデックスが使われる。\\
 +[[https://qiita.com/nuko_yokohama/items/4a7fe2a731a479189034|bloomインデックス]]
  
 ==== ダブルパイプ結合したインデックスは作成できない ==== ==== ダブルパイプ結合したインデックスは作成できない ====
it技術/データベース/postgresql/oracleからの移行.1640565174.txt.gz · 最終更新: 2021/12/27 09:32 by yajuadmin