it技術:データベース:postgresql:oracleからの移行
差分
このページの2つのバージョン間の差分を表示します。
両方とも前のリビジョン前のリビジョン次のリビジョン | 前のリビジョン次のリビジョン両方とも次のリビジョン | ||
it技術:データベース:postgresql:oracleからの移行 [2021/06/25 00:18] – [複合インデックスの指定方法] yajuadmin | it技術:データベース:postgresql:oracleからの移行 [2022/12/14 11:23] – [集合演算] yajuadmin | ||
---|---|---|---|
行 6: | 行 6: | ||
^Oracleのデータ型^PostgreSQL^説明^備考^ | ^Oracleのデータ型^PostgreSQL^説明^備考^ | ||
- | |VARCHAR2(n)|CHARACTER VARYING(n)| 最大n文字の長さの文字列| | + | |VARCHAR2(n)|CHARACTER VARYING(n)| 最大n文字の長さの文字列|Oracleはバイト数、PostgreSQLは文字数| |
- | |NUMBER|NUMERIC|最大1000桁、ユーザ指定精度| | + | |NUMBER|NUMERIC|最大1000桁、ユーザ指定精度| | |
|DATE|TIMESTAMP| |DATEのままだと日付のみになる| | |DATE|TIMESTAMP| |DATEのままだと日付のみになる| | ||
|SYSDATE|current_timestamp | |SYSDATE|current_timestamp | ||
行 15: | 行 15: | ||
=== 注意点 === | === 注意点 === | ||
+ | OracleはVARCHAR2はバイト数、PostgreSQLはCHARACTER VARYINGは文字数となる。\\ | ||
OracleのNUMBER型をPostgreSQLのNUMERIC型に単純に変更したが、これには弊害もある。\\ | OracleのNUMBER型をPostgreSQLのNUMERIC型に単純に変更したが、これには弊害もある。\\ | ||
整数しか入らないなら、素直にsmallint型やinteger型にする方がいいかも。 | 整数しか入らないなら、素直にsmallint型やinteger型にする方がいいかも。 | ||
行 114: | 行 115: | ||
</ | </ | ||
+ | TABLEを作成するよりVIEWにする方が一般的。\\ | ||
+ | [[https:// | ||
+ | |||
+ | <code sql> | ||
+ | CREATE VIEW dual AS | ||
+ | SELECT ' | ||
+ | </ | ||
行 173: | 行 181: | ||
WHERE MGR_ID IS NOT NULL; | WHERE MGR_ID IS NOT NULL; | ||
</ | </ | ||
+ | ==== DELETE文のFROM句にJOINが使えない ==== | ||
+ | USING句やIN句に変更する。\\ | ||
+ | [[https:// | ||
+ | |||
+ | ==== MERGE文サポート(PostgreSQL 15以降) ==== | ||
+ | PostgreSQL 15でMERGE文がサポートされました。 | ||
+ | |||
+ | * [[https:// | ||
+ | * [[https:// | ||
+ | |||
==== 集合演算 ==== | ==== 集合演算 ==== | ||
UNION句、INTERSEC句での変更はない。ただし、OracleのMINUS句は、PostgreSQLではEXCEPT句に変更する必要がある。\\ | UNION句、INTERSEC句での変更はない。ただし、OracleのMINUS句は、PostgreSQLではEXCEPT句に変更する必要がある。\\ |
it技術/データベース/postgresql/oracleからの移行.txt · 最終更新: 2023/12/18 13:16 by yajuadmin