[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6ADVR55EA2HJ5JSKAZHSDPC":3,"skill-same:01M6ADVR55EA2HJ5JSKAZHSDPC":76},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":16,"categories":17,"keywords":23,"publishedAt":41,"linkOnly":42,"markdownContent":43,"markdownBody":44,"frontMatter":45,"refName":46,"commitSha":47,"skillDirectory":48,"forksCount":49,"repositoryHtmlUrl":50,"repositoryHomepageUrl":51,"ownerHtmlUrl":52,"ownerBlogUrl":53,"ownerDescription":54,"updatedAt":55,"install":56,"resources":69},"01M6ADVR55EA2HJ5JSKAZHSDPC","migrating-oracle-to-postgres-stored-procedures",null,"Migrates Oracle PL\u002FSQL stored procedures to PostgreSQL PL\u002FpgSQL. 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.","github\u002Fawesome-copilot","github","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F9919?v=4","01M6AC83DS133TPXFSP1DHNCC6","GitHub","01M6AD3PBDYPK7NVFJNJ66Y8RS",41081,"MIT","https:\u002F\u002Fgithub.com\u002Fgithub\u002Fawesome-copilot\u002Fblob\u002Fmain\u002Fskills\u002Fmigrating-oracle-to-postgres-stored-procedures\u002FSKILL.md",[18],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000010","后端与接口","SCENARIO","使用场景",[24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40],"migrating oracle to postgres stored procedures","postgres","oracle","only","when","locale","mapping","type","signatures","functions","migration","use","syntax","database migration","postgresql","database","sql","2026-11-10 10:12:30",false,"---\nname: migrating-oracle-to-postgres-stored-procedures\ndescription: 'Migrates Oracle PL\u002FSQL stored procedures to PostgreSQL PL\u002FpgSQL. 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.'\n---\n\n# Migrating Stored Procedures from Oracle to PostgreSQL\n\nTranslate Oracle PL\u002FSQL stored procedures and functions to PostgreSQL PL\u002FpgSQL equivalents.\n\n## Workflow\n\n```\nProgress:\n- [ ] Step 1: Read the Oracle source procedure\n- [ ] Step 2: Translate to PostgreSQL PL\u002FpgSQL\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\u002Foracle-to-postgres-migration\u002FDDL\u002FOracle\u002FProcedures and Functions\u002F`. Consult the Oracle table\u002Fview definitions at `.github\u002Foracle-to-postgres-migration\u002FDDL\u002FOracle\u002FTables and Views\u002F` for type resolution.\n\n**Step 2: Translate to PostgreSQL PL\u002FpgSQL**\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- Apply collation intentionally when ordering text:\n  - Use `COLLATE \"C\"` only when Oracle-compatible binary ordering is required and no other sort order is specified.\n  - If Oracle used explicit linguistic sorting (for example `NLS_SORT = French`), map to an explicit PostgreSQL locale collation instead of `\"C\"`.\n  - Use `SELECT collname, collprovider, collcollate, collctype FROM pg_collation ORDER BY collname;` to discover collations in the target environment.\n- 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).\n- Leverage the `orafce` extension when it improves clarity or fidelity.\n\nConsult the PostgreSQL table\u002Fview definitions at `.github\u002Foracle-to-postgres-migration\u002FDDL\u002FPostgres\u002F{ProjectName}\u002FTables and Views\u002F` 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\u002Foracle-to-postgres-migration\u002FDDL\u002FPostgres\u002F{ProjectName}\u002FProcedures and Functions\u002F{PACKAGE_NAME_IF_APPLICABLE}\u002F`. One procedure per file.\n\n> `{ProjectName}` is the project's assembly\u002Ffolder name with spaces normalized to `-` (e.g. `MyApp.DataAccess`). This matches the path used by the agent and other migration skills.\n","# Migrating Stored Procedures from Oracle to PostgreSQL\n\nTranslate Oracle PL\u002FSQL stored procedures and functions to PostgreSQL PL\u002FpgSQL equivalents.\n\n## Workflow\n\n```\nProgress:\n- [ ] Step 1: Read the Oracle source procedure\n- [ ] Step 2: Translate to PostgreSQL PL\u002FpgSQL\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\u002Foracle-to-postgres-migration\u002FDDL\u002FOracle\u002FProcedures and Functions\u002F`. Consult the Oracle table\u002Fview definitions at `.github\u002Foracle-to-postgres-migration\u002FDDL\u002FOracle\u002FTables and Views\u002F` for type resolution.\n\n**Step 2: Translate to PostgreSQL PL\u002FpgSQL**\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- Apply collation intentionally when ordering text:\n  - Use `COLLATE \"C\"` only when Oracle-compatible binary ordering is required and no other sort order is specified.\n  - If Oracle used explicit linguistic sorting (for example `NLS_SORT = French`), map to an explicit PostgreSQL locale collation instead of `\"C\"`.\n  - Use `SELECT collname, collprovider, collcollate, collctype FROM pg_collation ORDER BY collname;` to discover collations in the target environment.\n- 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).\n- Leverage the `orafce` extension when it improves clarity or fidelity.\n\nConsult the PostgreSQL table\u002Fview definitions at `.github\u002Foracle-to-postgres-migration\u002FDDL\u002FPostgres\u002F{ProjectName}\u002FTables and Views\u002F` 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\u002Foracle-to-postgres-migration\u002FDDL\u002FPostgres\u002F{ProjectName}\u002FProcedures and Functions\u002F{PACKAGE_NAME_IF_APPLICABLE}\u002F`. One procedure per file.\n\n> `{ProjectName}` is the project's assembly\u002Ffolder name with spaces normalized to `-` (e.g. `MyApp.DataAccess`). This matches the path used by the agent and other migration skills.\n",{"name":5,"description":7},"main","5269f7ea2d6c3a9bfda5ed878b6726cf509121fd","skills\u002Fmigrating-oracle-to-postgres-stored-procedures",5344,"https:\u002F\u002Fgithub.com\u002Fgithub\u002Fawesome-copilot","https:\u002F\u002Fawesome-copilot.github.com\u002F","https:\u002F\u002Fgithub.com\u002Fgithub","https:\u002F\u002Fgithub.com\u002Fabout","How people build software.","2026-11-13 02:05:36",{"source":8,"skillName":5,"commands":57,"prompt":67,"zipAvailable":68},[58,61,64],{"tool":59,"command":60},"npx","npx skills add github\u002Fawesome-copilot --skill migrating-oracle-to-postgres-stored-procedures",{"tool":62,"command":63},"bunx","bunx skills add github\u002Fawesome-copilot --skill migrating-oracle-to-postgres-stored-procedures",{"tool":65,"command":66},"pnpm","pnpm dlx skills add github\u002Fawesome-copilot --skill migrating-oracle-to-postgres-stored-procedures","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fgithub\u002Fawesome-copilot\u002Fblob\u002Fmain\u002Fskills\u002Fmigrating-oracle-to-postgres-stored-procedures\u002FSKILL.md",true,[70],{"path":71,"resourceType":72,"resourceTypeDesc":73,"sizeBytes":74,"sourceHtmlUrl":75},"scripts\u002Findex.html","SCRIPT","脚本",5982,"https:\u002F\u002Fgithub.com\u002FDenisovAV\u002Fflutter_edge_ai\u002Fblob\u002Fmain\u002Fpackages\u002Fflutter_edge_ai_agent\u002Fassets\u002Fskills\u002Fquery-wikipedia\u002Fscripts\u002Findex.html",[77,107,135,164,196,213],{"skillNo":78,"name":79,"nameZh":6,"description":80,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":81,"categories":82,"keywords":89,"publishedAt":41},"01M70KXZNX9ES38N2A8M58ZZMZ","supabase-rls-policies","Write, review, and test Supabase Row Level Security (RLS) policies so that one user cannot read or change another user's rows. Use when creating or changing tables, policies, views, or security definer functions in a Supabase project, when reviewing a migration that touches RLS, or when asked to prove user isolation with pgTAP tests that sign in as two users.","https:\u002F\u002Fgithub.com\u002Fgithub\u002Fawesome-copilot\u002Fblob\u002Fmain\u002Fskills\u002Fsupabase-rls-policies\u002FSKILL.md",[83,86],{"categoryNo":84,"categoryName":85,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000008","测试与质量",{"categoryNo":87,"categoryName":88,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000023","Skill与智能体开发",[90,91,92,93,94,28,95,96,97,98,99,100,101,102,103,104,35,105,33,106],"supabase","rls","supabase rls","supabase rls policies","project","review","change","read","write","security","isolation","tables","as","tests","prove","users","with",{"skillNo":108,"name":109,"nameZh":6,"description":110,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":111,"categories":112,"keywords":114,"publishedAt":41},"01M70KWA5YWXDV6V8DZ19E3T2Y","skill-distribution-audit","Audit a skill collection before release or investigate installer omissions, archived\u002Ftemplate leakage, duplicate identities, and manifest drift. Reconcile the intended public source set, distribution manifest, and actual discovery output for a specified consumer version. Includes a deterministic set-comparison helper.","https:\u002F\u002Fgithub.com\u002Fgithub\u002Fawesome-copilot\u002Fblob\u002Fmain\u002Fskills\u002Fskill-distribution-audit\u002FSKILL.md",[113],{"categoryNo":87,"categoryName":88,"taxonomyType":21,"taxonomyTypeDesc":22},[115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134],"distribution","skill distribution audit","audit","SET","deterministic","installer","for","discovery","comparison","helper","manifest","version","collection","drift","output","investigate","duplicate","template","release","reconcile",{"skillNo":136,"name":137,"nameZh":6,"description":138,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":139,"sourceHtmlUrl":140,"categories":141,"keywords":147,"publishedAt":41},"01M70KCJPFVW7PPQ49CC5R8JGK","logicapps-custom-code-net10-migration","Migrate Azure Logic Apps Standard local-function custom-code projects from .NET 8 to .NET 10. Use for legacy Logic Apps custom-code workspace upgrades, project\u002Fpackage configuration, custom-worker settings, publication, and integrated VS Code debugging. Not for ordinary .NET applications, standalone Azure Functions, Consumption workflows, or cloud deployment.","https:\u002F\u002Fgithub.com\u002Fgithub\u002Fawesome-copilot\u002Fblob\u002Fmain\u002Fskills\u002Flogicapps-custom-code-net10-migration\u002FLICENSE","https:\u002F\u002Fgithub.com\u002Fgithub\u002Fawesome-copilot\u002Fblob\u002Fmain\u002Fskills\u002Flogicapps-custom-code-net10-migration\u002FSKILL.md",[142],{"categoryNo":143,"categoryName":144,"taxonomyType":145,"taxonomyTypeDesc":146},"01JBSEEDCAT000000000000030","开发工程师","PROFESSION","适用职业",[148,149,150,34,151,152,121,94,153,154,155,156,157,158,159,35,160,161,162,163],"custom","code","logicapps custom code net10 migration","projects","standalone","deployment","applications","local","azure","worker","upgrades","package","apps","Legacy","debugging","workflows",{"skillNo":165,"name":166,"nameZh":6,"description":167,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":168,"sourceHtmlUrl":169,"categories":170,"keywords":173,"publishedAt":41},"01M6AEBN37RQMXJ3298PEY7PG1","winmd-api-search","Find and explore Windows desktop APIs. Use when building features that need platform capabilities — camera, file access, notifications, UI controls, AI\u002FML, sensors, networking, etc. Discovers the right API for a task and retrieves full type details (methods, properties, events, enumeration values).","https:\u002F\u002Fgithub.com\u002Fgithub\u002Fawesome-copilot\u002Fblob\u002Fmain\u002Fskills\u002Fwinmd-api-search\u002FLICENSE.txt","https:\u002F\u002Fgithub.com\u002Fgithub\u002Fawesome-copilot\u002Fblob\u002Fmain\u002Fskills\u002Fwinmd-api-search\u002FSKILL.md",[171,172],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},{"categoryNo":143,"categoryName":144,"taxonomyType":145,"taxonomyTypeDesc":146},[174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,28,189,190,191,192,193,121,194,195],"winmd api search","search","api","windows","desktop","file access","enumeration","ui","ml","file","networking","capabilities","notifications","explore","access","features","full","camera","events","platform","methods","controls",{"skillNo":197,"name":198,"nameZh":6,"description":199,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":200,"licenseFileUrl":201,"sourceHtmlUrl":202,"categories":203,"keywords":209,"publishedAt":41},"01M6AE571R3SC1ZGE202B3NB5S","resemble-detect","Deepfake detection and media safety — detect AI-generated audio, images, video, and text, trace synthesis sources, apply watermarks, verify speaker identity, and analyze media intelligence using Resemble AI","Apache-2.0","https:\u002F\u002Fgithub.com\u002Fgithub\u002Fawesome-copilot\u002Fblob\u002Fmain\u002Fskills\u002Fresemble-detect\u002FLICENSE","https:\u002F\u002Fgithub.com\u002Fgithub\u002Fawesome-copilot\u002Fblob\u002Fmain\u002Fskills\u002Fresemble-detect\u002FSKILL.md",[204,205,208],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},{"categoryNo":206,"categoryName":207,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000016","图像与多媒体",{"categoryNo":87,"categoryName":88,"taxonomyType":21,"taxonomyTypeDesc":22},[210,118,183,211,212],"resemble detect","https","identity",{"skillNo":214,"name":215,"nameZh":6,"description":216,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":200,"licenseFileUrl":217,"sourceHtmlUrl":218,"categories":219,"keywords":224,"publishedAt":41},"01M6AE30BSK2HCY4TQQ22Z8JRD","quality-playbook","Run a complete quality engineering audit on any codebase. Derives behavioral requirements from the code, generates spec-traced functional tests, runs a three-pass code review with regression tests, executes a multi-model spec audit (Council of Three), and produces a consolidated bug report with TDD-verified patches. Finds the 35% of real defects that structural code review alone cannot catch. Works with any language. Trigger on 'quality playbook', 'spec audit', 'Council of Three', 'fitness-to-purpose', or 'coverage theater'.","https:\u002F\u002Fgithub.com\u002Fgithub\u002Fawesome-copilot\u002Fblob\u002Fmain\u002Fskills\u002Fquality-playbook\u002FLICENSE.txt","https:\u002F\u002Fgithub.com\u002Fgithub\u002Fawesome-copilot\u002Fblob\u002Fmain\u002Fskills\u002Fquality-playbook\u002FSKILL.md",[220,223],{"categoryNo":221,"categoryName":222,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000007","代码审查",{"categoryNo":87,"categoryName":88,"taxonomyType":21,"taxonomyTypeDesc":22},[225,226,227,228,149,95,9,117,229,230,211,231,232,233,234,235,236,237,238,239,240,241,103,242,243,244,245],"playbook","quality playbook","quality","code review","tdd","run","report","spec","bug report","council","engineering","functional","spec audit","bug","verified","multi-model","three","coverage","model","regression","structural"]