{"id":"19e5a393-cfda-4a5d-9c47-f73b5611f805","shortId":"rvSDwx","kind":"skill","title":"migrating-oracle-to-postgres-stored-procedures","tagline":"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 COLLATE \"C\" for Oracle-compatible text sorting. Use when converting Oracle","description":"# Migrating Stored Procedures from Oracle to PostgreSQL\n\nTranslate Oracle PL/SQL stored procedures and functions to PostgreSQL PL/pgSQL equivalents.\n\n## Workflow\n\n```\nProgress:\n- [ ] Step 1: Read the Oracle source procedure\n- [ ] Step 2: Translate to PostgreSQL PL/pgSQL\n- [ ] Step 3: Write the migrated procedure to Postgres output directory\n```\n\n**Step 1: Read the Oracle source procedure**\n\nRead 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.\n\n**Step 2: Translate to PostgreSQL PL/pgSQL**\n\nApply these translation rules:\n\n- Translate all Oracle-specific syntax to PostgreSQL equivalents.\n- Preserve original functionality and control flow logic.\n- Keep type-anchored input parameters (e.g., `PARAM_NAME IN table_name.column_name%TYPE`).\n- Use explicit types (`NUMERIC`, `VARCHAR`, `INTEGER`) for output parameters passed to other procedures — do not type-anchor these.\n- Do not alter method signatures.\n- Do not prefix object names with schema names unless already present in the Oracle source.\n- Leave exception handling and rollback logic unchanged.\n- Do not generate `COMMENT` or `GRANT` statements.\n- Use `COLLATE \"C\"` when ordering by text fields for Oracle-compatible sorting.\n- Leverage the `orafce` extension when it improves clarity or fidelity.\n\nConsult the PostgreSQL table/view definitions at `.github/oracle-to-postgres-migration/DDL/Postgres/Tables and Views/` for target schema details.\n\n**Step 3: Write the migrated procedure to Postgres output directory**\n\nPlace each migrated procedure in its own file under `.github/oracle-to-postgres-migration/DDL/Postgres/Procedures and Functions/{PACKAGE_NAME_IF_APPLICABLE}/`. One procedure per file.","tags":["migrating","oracle","postgres","stored","procedures","awesome","copilot","github","agent-skills","agents","custom-agents","github-copilot"],"capabilities":["skill","source-github","skill-migrating-oracle-to-postgres-stored-procedures","topic-agent-skills","topic-agents","topic-awesome","topic-custom-agents","topic-github-copilot","topic-hacktoberfest","topic-prompt-engineering"],"categories":["awesome-copilot"],"synonyms":[],"warnings":[],"endpointUrl":"https://skills.sh/github/awesome-copilot/migrating-oracle-to-postgres-stored-procedures","protocol":"skill","transport":"skills-sh","auth":{"type":"none","details":{"cli":"npx skills add github/awesome-copilot","source_repo":"https://github.com/github/awesome-copilot","install_from":"skills.sh"}},"qualityScore":"0.700","qualityRationale":"deterministic score 0.70 from registry signals: · indexed on github topic:agent-skills · 33270 github stars · SKILL.md body (1,857 chars)","verified":false,"liveness":"unknown","lastLivenessCheck":null,"agentReviews":{"count":0,"score_avg":null,"cost_usd_avg":null,"success_rate":null,"latency_p50_ms":null,"narrative_summary":null,"summary_updated_at":null},"enrichmentModel":"deterministic:skill-github:v1","enrichmentVersion":1,"enrichedAt":"2026-05-18T18:52:17.306Z","embedding":null,"createdAt":"2026-04-18T20:30:51.636Z","updatedAt":"2026-05-18T18:52:17.306Z","lastSeenAt":"2026-05-18T18:52:17.306Z","tsv":"'1':68,91 '2':75,119 '3':81,247 'alreadi':190 'alter':178 'anchor':27,147,174 'appli':34,124 'applic':271 'appropri':32 'c':36,212 'clariti':230 'collat':35,211 'comment':206 'compat':40,221 'consult':106,233 'control':141 'convert':45 'definit':110,237 'detail':245 'directori':89,255 'e.g':150 'equival':64,136 'except':197 'explicit':158 'extens':226 'fidel':232 'field':217 'file':263,275 'flow':142 'function':60,105,139,267 'generat':205 'github/oracle-to-postgres-migration/ddl/oracle/procedures':103 'github/oracle-to-postgres-migration/ddl/oracle/tables':112 'github/oracle-to-postgres-migration/ddl/postgres/procedures':265 'github/oracle-to-postgres-migration/ddl/postgres/tables':239 'grant':208 'handl':198 'improv':229 'input':148 'integ':162 'keep':144 'leav':196 'leverag':29,223 'logic':143,201 'method':22,179 'migrat':2,8,47,84,250,258 'migrating-oracle-to-postgres-stored-procedur':1 'name':152,155,185,188,269 'numer':160 'object':184 'one':272 'oracl':3,9,18,39,46,51,55,71,94,99,108,131,194,220 'oracle-compat':38,219 'oracle-specif':17,130 'orafc':30,225 'order':214 'origin':138 'output':88,164,254 'packag':268 'param':151 'paramet':28,149,165 'pass':166 'per':274 'pl/pgsql':15,63,79,123 'pl/sql':10,56 'place':256 'postgr':5,87,253 'postgresql':14,53,62,78,122,135,235 'prefix':183 'present':191 'preserv':21,137 'procedur':7,12,49,58,73,85,96,101,169,251,259,273 'progress':66 'read':69,92,97 'resolut':117 'rollback':200 'rule':127 'schema':187,244 'signatur':23,180 'skill' 'skill-migrating-oracle-to-postgres-stored-procedures' 'sort':42,222 'sourc':72,95,195 'source-github' 'specif':19,132 'statement':209 'step':67,74,80,90,118,246 'store':6,11,48,57,100 'syntax':20,133 'table/view':109,236 'table_name.column':154 'target':243 'text':41,216 'topic-agent-skills' 'topic-agents' 'topic-awesome' 'topic-custom-agents' 'topic-github-copilot' 'topic-hacktoberfest' 'topic-prompt-engineering' 'translat':16,54,76,120,126,128 'type':26,116,146,156,159,173 'type-anchor':25,145,172 'unchang':202 'unless':189 'use':43,157,210 'varchar':161 'view':114,241 'workflow':65 'write':82,248","prices":[{"id":"fe4d9b5d-8081-4ff8-9669-7f7af09a275a","listingId":"19e5a393-cfda-4a5d-9c47-f73b5611f805","amountUsd":"0","unit":"free","nativeCurrency":null,"nativeAmount":null,"chain":null,"payTo":null,"paymentMethod":"skill-free","isPrimary":true,"details":{"org":"github","category":"awesome-copilot","install_from":"skills.sh"},"createdAt":"2026-04-18T20:30:51.636Z"}],"sources":[{"listingId":"19e5a393-cfda-4a5d-9c47-f73b5611f805","source":"github","sourceId":"github/awesome-copilot/migrating-oracle-to-postgres-stored-procedures","sourceUrl":"https://github.com/github/awesome-copilot/tree/main/skills/migrating-oracle-to-postgres-stored-procedures","isPrimary":false,"firstSeenAt":"2026-04-18T21:50:14.872Z","lastSeenAt":"2026-05-18T18:52:17.306Z"},{"listingId":"19e5a393-cfda-4a5d-9c47-f73b5611f805","source":"skills_sh","sourceId":"github/awesome-copilot/migrating-oracle-to-postgres-stored-procedures","sourceUrl":"https://skills.sh/github/awesome-copilot/migrating-oracle-to-postgres-stored-procedures","isPrimary":true,"firstSeenAt":"2026-04-18T20:30:51.636Z","lastSeenAt":"2026-05-07T22:40:31.434Z"}],"details":{"listingId":"19e5a393-cfda-4a5d-9c47-f73b5611f805","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"github","slug":"migrating-oracle-to-postgres-stored-procedures","github":{"repo":"github/awesome-copilot","stars":33270,"topics":["agent-skills","agents","ai","awesome","custom-agents","github-copilot","hacktoberfest","prompt-engineering"],"license":"mit","html_url":"https://github.com/github/awesome-copilot","pushed_at":"2026-05-18T01:26:59Z","description":"Community-contributed instructions, agents, skills, and configurations to help you make the most of GitHub Copilot.","skill_md_sha":"f6363c314e6ac9dad2b28088d745653064a6cbbf","skill_md_path":"skills/migrating-oracle-to-postgres-stored-procedures/SKILL.md","default_branch":"main","skill_tree_url":"https://github.com/github/awesome-copilot/tree/main/skills/migrating-oracle-to-postgres-stored-procedures"},"layout":"multi","source":"github","category":"awesome-copilot","frontmatter":{"name":"migrating-oracle-to-postgres-stored-procedures","description":"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 COLLATE \"C\" for Oracle-compatible text sorting. Use when converting Oracle stored procedures or functions to PostgreSQL equivalents during a database migration."},"skills_sh_url":"https://skills.sh/github/awesome-copilot/migrating-oracle-to-postgres-stored-procedures"},"updatedAt":"2026-05-18T18:52:17.306Z"}}