All skills
github avatar

/migrating-oracle-to-postgres-stored-procedures

@f7e8aaa official
by githubgithub/awesome-copilot40k stars
5,040

Migrates Oracle PL/SQL stored procedures to PostgreSQL PL/pgSQL. Translates Oracle-specific syntax, preserves method signatures and type-anchored parameters, leverages orafce where appropriate, and applies explicit collation mapping (`COLLATE "C"` only when appropriate, locale collations when required). Use when converting Oracle stored procedures or functions to PostgreSQL equivalents during a database migration.

Use this Skill: https://skilld.dev/gh/github/awesome-copilot/migrating-oracle-to-postgres-stored-procedures

This session only. Nothing lands on disk.

SKILL.md

≈116 tokens always: the name and description. ≈664 when used: this file.

Migrating Stored Procedures from Oracle to PostgreSQL

Translate Oracle PL/SQL stored procedures and functions to PostgreSQL PL/pgSQL equivalents.

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 directory

Step 1: Read the Oracle source procedure

Read the Oracle stored procedure from .github/oracle-to-postgres-migration/DDL/Oracle/Procedures and Functions/. Consult the Oracle table/view definitions at .github/oracle-to-postgres-migration/DDL/Oracle/Tables and Views/ for type resolution.

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, INTEGER) for output parameters passed to other procedures — do not type-anchor these.
  • 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 COMMENT or GRANT statements.
  • Apply collation intentionally when ordering text:
    • Use COLLATE "C" only when Oracle-compatible binary ordering is required and no other sort order is specified.
    • If Oracle used explicit linguistic sorting (for example NLS_SORT = French), map to an explicit PostgreSQL locale collation instead of "C".
    • Use SELECT collname, collprovider, collcollate, collctype FROM pg_collation ORDER BY collname; to discover collations in the target environment.
  • Treat UNION ALL as a review checkpoint. Validate plan quality per branch and restructure if combined-branch planning causes regressions (for example, unexpected sequential scans on large tables).
  • Leverage the orafce extension when it improves clarity or fidelity.

Consult the PostgreSQL table/view definitions at .github/oracle-to-postgres-migration/DDL/Postgres/{ProjectName}/Tables and Views/ for target schema details.

Step 3: Write the migrated procedure to Postgres output directory

Place each migrated procedure in its own file under .github/oracle-to-postgres-migration/DDL/Postgres/{ProjectName}/Procedures and Functions/{PACKAGE_NAME_IF_APPLICABLE}/. One procedure per file.

{ProjectName} is the project's assembly/folder name with spaces normalized to - (e.g. MyApp.DataAccess). This matches the path used by the agent and other migration skills.

Source: SKILL.md on GitHub

1 warning16d5 checks · Risk SAFE
  • Gen Agent Trust Hub16d

    The skill is a standard database migration utility that translates Oracle stored procedures to PostgreSQL. It operates entirely within the local repository's directory structure and does not perform any network operations, command execution, or other risky behaviors.

  • Socket16d

    No alerts

  • Snyk16d

    Risk: LOW · No issues

  • Runlayer6mo

    1/1 file flagged

  • ZeroLeaks5mo

    Score: 93/100 · 2 sections analyzed

Signed by skilld at f7e8aaa. This ties the file your Agent reads to that commit on GitHub. It does not review the instructions.

Last checked against GitHub 20 hours ago.

Activeupdated 2 months ago
  • Database
  • oracle
  • postgres
  • plsql
  • plpgsql
  • migrations
  • stored-procedures
  • orafce

README badge

README badge for github/awesome-copilot/migrating-oracle-to-postgres-stored-procedures

Translates Oracle PL/SQL stored procedures and functions to PostgreSQL PL/pgSQL, preserving type-anchored parameters and method signatures while applying Oracle-compatible text sorting with COLLATE "C". Targets database migrations where Oracle procedures need PostgreSQL equivalents, using the orafce extension where it improves fidelity.

Generated from the current SKILL.md.

Does this skill preserve Oracle-specific features like type-anchored parameters?
Yes. Input parameters keep their type-anchored form (e.g., table_name.column_name%TYPE), while output parameters are converted to explicit types (NUMERIC, VARCHAR, INTEGER) for PostgreSQL compatibility.
What happens with Oracle syntax that has no direct PostgreSQL equivalent?
The skill translates Oracle-specific syntax to PostgreSQL equivalents and leverages the orafce extension where it improves clarity or fidelity to the original behavior.
Does this skill handle text sorting differences between Oracle and PostgreSQL?
Yes. It applies COLLATE "C" when ordering by text fields to maintain Oracle-compatible sorting behavior.
Will method signatures or control flow be altered during migration?
No. The skill preserves original method signatures, control flow logic, and exception handling as-is while translating syntax.
Does this generate COMMENT or GRANT statements?
No. The skill does not generate COMMENT or GRANT statements; it focuses on translating the procedure logic itself.

Generated from the current SKILL.md. These answers refresh after source changes.