migrating-oracle-to-postgres-stored-procedures
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
ChineseMigrating Stored Procedures from Oracle to PostgreSQL
将存储过程从Oracle迁移至PostgreSQL
Translate Oracle PL/SQL stored procedures and functions to PostgreSQL PL/pgSQL equivalents.
将Oracle PL/SQL存储过程和函数转换为PostgreSQL PL/pgSQL的等效实现。
Workflow
工作流程
Progress:
- [ ] Step 1: Read the Oracle source procedure
- [ ] Step 2: Translate to PostgreSQL PL/pgSQL
- [ ] Step 3: Write the migrated procedure to Postgres output directoryStep 1: Read the Oracle source procedure
Read the Oracle stored procedure from . Consult the Oracle table/view definitions at for type resolution.
.github/oracle-to-postgres-migration/DDL/Oracle/Procedures and Functions/.github/oracle-to-postgres-migration/DDL/Oracle/Tables and Views/Step 2: Translate to PostgreSQL PL/pgSQL
Apply these translation rules:
- Translate all Oracle-specific syntax to PostgreSQL equivalents.
- Preserve original functionality and control flow logic.
- Keep type-anchored input parameters (e.g., ).
PARAM_NAME IN table_name.column_name%TYPE - Use explicit types (,
NUMERIC,VARCHAR) for output parameters passed to other procedures — do not type-anchor these.INTEGER - Do not alter method signatures.
- Do not prefix object names with schema names unless already present in the Oracle source.
- Leave exception handling and rollback logic unchanged.
- Do not generate or
COMMENTstatements.GRANT - Use when ordering by text fields for Oracle-compatible sorting.
COLLATE "C" - Leverage the extension when it improves clarity or fidelity.
orafce
Consult the PostgreSQL table/view definitions at for target schema details.
.github/oracle-to-postgres-migration/DDL/Postgres/Tables and Views/Step 3: Write the migrated procedure to Postgres output directory
Place each migrated procedure in its own file under . One procedure per file.
.github/oracle-to-postgres-migration/DDL/Postgres/Procedures and Functions/{PACKAGE_NAME_IF_APPLICABLE}/进度:
- [ ] 步骤1:读取Oracle源存储过程
- [ ] 步骤2:转换为PostgreSQL PL/pgSQL
- [ ] 步骤3:将迁移后的存储过程写入Postgres输出目录步骤1:读取Oracle源存储过程
从路径读取Oracle存储过程。如需解析类型,请参考下的Oracle表/视图定义。
.github/oracle-to-postgres-migration/DDL/Oracle/Procedures and Functions/.github/oracle-to-postgres-migration/DDL/Oracle/Tables and Views/步骤2:转换为PostgreSQL PL/pgSQL
应用以下转换规则:
- 将所有Oracle专属语法转换为PostgreSQL等效语法。
- 保留原有功能和控制流逻辑。
- 保留类型锚定的输入参数(例如)。
PARAM_NAME IN table_name.column_name%TYPE - 对于传递给其他存储过程的输出参数,使用显式类型(、
NUMERIC、VARCHAR)——请勿对这些参数进行类型锚定。INTEGER - 不要修改方法签名。
- 除非Oracle源中已包含,否则不要为对象名称添加模式名前缀。
- 保持异常处理和回滚逻辑不变。
- 不要生成或
COMMENT语句。GRANT - 对文本字段排序时使用,以实现与Oracle兼容的排序效果。
COLLATE "C" - 当orafce扩展能提升清晰度或保真度时,使用该扩展。
如需了解目标模式详情,请参考下的PostgreSQL表/视图定义。
.github/oracle-to-postgres-migration/DDL/Postgres/Tables and Views/步骤3:将迁移后的存储过程写入Postgres输出目录
将每个迁移后的存储过程单独保存到路径下的独立文件中。每个文件对应一个存储过程。
.github/oracle-to-postgres-migration/DDL/Postgres/Procedures and Functions/{PACKAGE_NAME_IF_APPLICABLE}/