Ora2pg 可以用来将 Oracle 数据库转换成 PostgreSQL。
Ora2pg 16.0 发布，此版本主要改进了 PL/SQL 代码替换，修复了一些 bug，添加了一些新特性：
- Full migration of MySQL database, it just work like with Oracle database.
- Full migration assessment report for MySQL database.
- New script, ora2pg_scanner, to perform a migration assessment of all Oracle and MySQL instances on a network.
- Add technical difficulty level in migration assessment.
- Allow migration assessment on client queries extracted from AUDIT_TRAIL (oracle) or general_log table (mysql).
- Ora2Pg has a “made in one night” brand new Web site (still need some work) http://ora2pg.darold.net/
- Export type SHOW_TABLE now shows additional information about table type (FOREIGN, EXTERNAL or PARTITIONED with the number of partition).
- Connection’s user and password can be passed through environment variables ORA2PG_USER and ORA2PG_PASSWD to avoid setting them at ora2pg command line.
- Improve PL/SQL replacement on ADD_MONTH(), ADD_YEAR(), TRUNC(), INSTR() and remove the replacement limitation on DECODE().
- Add detection of migration difficulties in views, was previously reserved to functions, procedures, packages and triggers.
- Replace values in auto generated configuration file from command line options -s, -n, -u and -p when –init_project is used.
- Adjust lot of scores following new functionalities in Ora2Pg, ex: autonomous transactions, dblink or synomyms are now more easy to migrate.
为 ora2pg 脚本增加新选项：
- -m | –mysql : to be used with –init_project and -i option to inform ora2pg that we work with a MySQL format
- -T | –temp_dir : option to be able to set a distinct temporary directory to run ora2pg in parallel.
- –audit_user : option to set the user used in audit filter and enable migration assessment report on queries from AUDIT_TRAIL (oracle) or general_log table (mysql).
- –dump_as_sheet and –print_header options to be able to compute a CSV file with all migration assessment from a list of oracle database.
- –dump_as_csv option to report assessments into a csv file. It will not include comments or details, just objects names, numbers and cost.
- Change NULL_EQUAL_EMPTY to be disabled by default to force change in the application instead of transforming the PL/SQL.
- MYSQL_PIPES_AS_CONCAT: Enable it if double pipe and double ampersand (|| and &&) should not be taken as equivalent to OR and AND.
- MYSQL_INTERNAL_EXTRACT_FORMAT: Enable it if you want EXTRACT() replacement to use the internal format returned as an integer.
- AUDIT_USER: Set the comma separated list of user name that must be used to filter from the DBA_AUDIT_TRAIL or general_log tables.
- REPLACE_ZERO_DATE: the “zero” date: 0000-00-00 00:00:00 is replaced by a NULL by default, use it to use the date of your choice. Useful when you have a NOT NULL constraint.
- INDEXES_RENAMING: force renaming of all indexes using a name with tablename_columnsnames. Useful for database that have multiple time the same index name or that use the same name than a table.
- HUMAN_DAYS_LIMIT: default to 5 days, used to set the number of human-days limit for migration of type C.
- Website: ora2pg.darold.net
- Download: sourceforge.net/projects/ora2pg
- Development: github.com/darold/ora2pg
- Changelog: github.com/darold/ora2pg/blob/master/changelog
- Documentation: github.com/darold/ora2pg/blob/master/README