Official agent skill

Migrating Oracle To Postgres Data Access Code

by github in github/awesome-copilot

Migrates .NET/C data access code from Oracle to PostgreSQL (Npgsql).

OfficialMITAuto-check passedDatabases

Install Migrating Oracle To Postgres Data Access Code

skills CLI
$ npx skills add github/awesome-copilot --skill migrating-oracle-to-postgres-data-access-code -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install github/awesome-copilot migrating-oracle-to-postgres-data-access-code --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/github/awesome-copilot.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/migrating-oracle-to-postgres-data-access-code .claude/skills/migrating-oracle-to-postgres-data-access-code && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
migrating-oracle-to-postgres-data-access-code
GitHub stars
40k
Token cost
~2k tokens
SKILL.md length
787 words
Files
1
Skills in repo
417
Repo updated
First seen
Licence
MIT

At a glance

Migrates .NET/C data access code from Oracle to PostgreSQL (Npgsql).

  • Works in 3 steps: Run dotnet build on the .Postgres… → Verify no Oracle-specific namespaces… → Mark completed items in…
  • Migrating the application code layer of a .NET project during an Oracle-to-PostgreSQL database migration
  • SKILL.md covers Prerequisites, Workflow, EF Core projects and Key Constraints
  • Calls dotnet

What it does

Migrating Oracle To Postgres Data Access Code is an agent skill from github/awesome-copilot, published by the product's own GitHub organization. Migrates .NET/C data access code from Oracle to PostgreSQL (Npgsql). Replaces Oracle NuGet packages, rewrites OracleConnection/OracleCommand/OracleDataReader usage, fixes DbType mappings, updates stored procedure invocation patterns, and adapts connection string configuration. Use when migrating the application code layer of a .NET project during an Oracle-to-PostgreSQL database migration.

Its SKILL.md is about 2k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It sits in Databases, covering Database migrations. It works with PostgreSQL, .NET and C#. The repository describes itself as: Community-contributed instructions, agents, skills, and configurations to help you make the most of GitHub Copilot. The licence is MIT.

When your agent uses it

  • Migrating the application code layer of a .NET project during an Oracle-to-PostgreSQL database migration
  • Tasks that involve Database migrations

Example prompts

  • “Use the migrating-oracle-to-postgres-data-access-code skill to migrate .NET/C data access code from Oracle to PostgreSQL (Npgsql)”
  • “/migrating-oracle-to-postgres-data-access-code”

Workflow steps

3 steps, taken from the first numbered list in SKILL.md.

  1. Run dotnet build on the .Postgres project. Fix any remaining compilation errors.
  2. Verify no Oracle-specific namespaces remain: search for Oracle.ManagedDataAccess, OracleConnection, OracleCommand, :param patterns.
  3. Mark completed items in Reports/{ProjectName}/MigrationChecklist.md.

What it can do on your machine

Read from SKILL.md and the folder at commit 727ff2e. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • dotnet

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Migrating Oracle To Postgres Data Access Code loads about 2k tokens when it runs. Until then it costs about 110 tokens; SKILL.md has 787 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~110
When it runs · the whole SKILL.md, loaded when a task matches
~2k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from github/awesome-copilot at commit 727ff2e, republished under its MIT licence (© github). 787 words, ~2,016 tokens.

Download SKILL.mdSave it as .claude/skills/migrating-oracle-to-postgres-data-access-code/SKILL.md (or your agent's skills folder).
name
migrating-oracle-to-postgres-data-access-code
description
Migrates .NET/C# data access code from Oracle to PostgreSQL (Npgsql). Replaces Oracle NuGet packages, rewrites OracleConnection/OracleCommand/OracleDataReader usage, fixes DbType mappings, updates stored procedure invocation patterns, and adapts connection string configuration. Use when migrating the application code layer of a .NET project during an Oracle-to-PostgreSQL database migration.

Migrating .NET Data Access Code from Oracle to PostgreSQL

Migrate the C# data access layer of a single .Postgres-copy project from Oracle (Oracle.ManagedDataAccess) to PostgreSQL (Npgsql). Work item by item through Reports/{ProjectName}/MigrationChecklist.md.

Prerequisites

  • The .Postgres project copy exists (created in Phase 5 setup).
  • Reports/{ProjectName}/MigrationChecklist.md exists and is the source of truth for what to change.
  • Reports/{ProjectName}/OracleRiskAnalysis.md exists for cross-referencing behavioral differences.

Workflow

Progress:
- [ ] Step 1: Replace NuGet packages
- [ ] Step 2: Update connection string configuration
- [ ] Step 3: Rewrite ADO.NET type references
- [ ] Step 4: Fix DbType mappings
- [ ] Step 5: Migrate stored procedure invocation
- [ ] Step 6: Address Oracle-specific SQL and syntax
- [ ] Step 7: Build and verify

Step 1: Replace NuGet packages

In the .csproj of the .Postgres project:

  • Remove: Oracle.ManagedDataAccess.Core, Oracle.EntityFrameworkCore (and any other Oracle.* packages)
  • Add: Npgsql (for ADO.NET) and/or Npgsql.EntityFrameworkCore.PostgreSQL (for EF Core)
  • Keep version pinning consistent with the target .NET version; do not introduce newer package versions than what the solution already uses for similar packages.
  • If System.Data abstractions (IDbConnection, IDbCommand) are used project-wide, the surface-level code may need fewer changes — identify them first.

Step 2: Update connection string configuration

  • Locate the Oracle connection string in appsettings.json, appsettings.{env}.json, web.config, app.config, or environment variable configuration.
  • Replace with a Npgsql-compatible connection string: Host=localhost;Port=5432;Database=mydb;Username=myuser;Password=mypassword
  • Do not hardcode credentials — use the same configuration mechanism already in use (e.g., environment variables, secrets manager, IConfiguration).
  • Update any named connection string keys only if they were Oracle-specific (e.g., OracleConnection). Prefer keeping the same key name to minimize application config changes.

Step 3: Rewrite ADO.NET type references

Replace Oracle-specific ADO.NET types with Npgsql equivalents:

Oracle typeNpgsql replacement
OracleConnectionNpgsqlConnection
OracleCommandNpgsqlCommand
OracleDataReaderNpgsqlDataReader
OracleDataAdapterNpgsqlDataAdapter
OracleParameterNpgsqlParameter
OracleTransactionNpgsqlTransaction
OracleExceptionNpgsqlException
OracleDbTypeNpgsqlDbType (from NpgsqlTypes namespace)

Update using directives accordingly (using Oracle.ManagedDataAccess.Client → using Npgsql).

If the codebase uses IDbConnection/IDbCommand abstractions registered via DI, update only the DI registration and connection string — the consuming code may not need changes.

Step 4: Fix DbType and NpgsqlDbType mappings

Oracle parameter types do not map 1:1 to Npgsql. Review every OracleParameter (now NpgsqlParameter) that sets an explicit type:

Oracle typeNotes
OracleDbType.Varchar2Use NpgsqlDbType.Varchar or omit (Npgsql infers from value)
OracleDbType.ClobUse NpgsqlDbType.Text
OracleDbType.NumberUse NpgsqlDbType.Numeric or NpgsqlDbType.Integer depending on precision
OracleDbType.DateUse NpgsqlDbType.Date (date only) or NpgsqlDbType.Timestamp (if time component used)
OracleDbType.TimeStampUse NpgsqlDbType.Timestamp
OracleDbType.RefCursorUse NpgsqlDbType.Refcursor — see Step 5
OracleDbType.CharUse NpgsqlDbType.Char

For parameters where Oracle inferred the type from the value, Npgsql also infers — explicit type setting is often unnecessary and can be removed.

Step 5: Migrate stored procedure invocation

Oracle and PostgreSQL stored procedure invocation differ significantly:

  • Command type: Retain CommandType.StoredProcedure for function calls. For procedures that use OUT parameters, PostgreSQL requires CommandType.Text with CALL proc_name(...) syntax in some versions of Npgsql — verify against the target Npgsql version.
  • RefCursor handling: Oracle returns ref cursors as output parameters; PostgreSQL returns them differently:
    • For RETURNS TABLE / RETURNS SETOF, use ExecuteReader() directly — no cursor parameter needed.
    • For RETURNS refcursor, call within a transaction, read the cursor name from the output parameter, then issue FETCH ALL IN "<cursor_name>".
    • Remove any Oracle-specific cursor-wrapping code (e.g., OracleRefCursor).
  • OUT parameters: PostgreSQL stored procedures use INOUT or function return values. Verify parameter direction matches the migrated procedure signature.
  • Sequence NEXTVAL: Replace SELECT {SEQUENCE}.NEXTVAL FROM DUAL with SELECT nextval('{sequence_name}').
  • Named parameters: Npgsql uses @param_name; Oracle used :param_name. Update all parameter name prefixes.
Show full SKILL.md (282 more words)Show less

Step 6: Address Oracle-specific SQL and C# patterns

Review inline SQL strings and query builders for Oracle-specific constructs and replace:

Oracle constructPostgreSQL replacement
ROWNUM <= nLIMIT n
ROWNUM = 1LIMIT 1
NVL(x, y)COALESCE(x, y)
DECODE(expr, v1, r1, ...)CASE WHEN expr = v1 THEN r1 ... END
SYSDATE / SYSTIMESTAMPNOW() or CURRENT_TIMESTAMP
TO_CHAR(date, fmt)TO_CHAR(date, fmt) (mostly compatible; verify format strings)
TO_DATE(str, fmt)TO_DATE(str, fmt) (verify format strings)
TO_NUMBER(str)CAST(str AS NUMERIC) or str::NUMERIC
`
DUAL tableRemove FROM DUAL; PostgreSQL evaluates SELECT expr without a table
CONNECT BY hierarchyRewrite using recursive CTEs (WITH RECURSIVE)
MERGE INTORewrite as INSERT ... ON CONFLICT DO UPDATE
Empty string '' as NULLOracle treats '' as NULL; PostgreSQL does not — check comparisons and IS NULL guards
VARCHAR2VARCHAR or TEXT

Step 7: Build and verify

After addressing all checklist items:

  1. Run dotnet build on the .Postgres project. Fix any remaining compilation errors.
  2. Verify no Oracle-specific namespaces remain: search for Oracle.ManagedDataAccess, OracleConnection, OracleCommand, :param patterns.
  3. Mark completed items in Reports/{ProjectName}/MigrationChecklist.md.

EF Core projects

If the project uses Oracle.EntityFrameworkCore:

  • Replace the provider registration in DbContext configuration: .UseOracle(...) → .UseNpgsql(...)
  • Replace OracleDbContextOptionsBuilder references.
  • Review OnModelCreating for Oracle-specific configurations (e.g., HasColumnType("NUMBER") → HasColumnType("numeric")).
  • Sequence configuration: modelBuilder.HasSequence<int>("seq_name").StartsAt(1).IncrementsBy(1) syntax is compatible; verify column defaults referencing sequences.
  • Do not run EF Core migrations — schema is managed externally via DDL scripts (Phase 4).

Key Constraints

  • Work only within the .Postgres copy — never modify the original Oracle-targeting project.
  • Keep to existing .NET and C# versions; do not introduce newer language or runtime features.
  • Preserve comments and application logic; change only what is necessary for PostgreSQL compatibility.
  • Oracle is the source of truth — behavioral differences must be documented as bug reports, not silently altered.

© github, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in skills/migrating-oracle-to-postgres-data-access-code of github/awesome-copilot.

Open the folder on GitHubat commit 727ff2e

Compare with similar skills

Migrating Oracle To Postgres Data Access Code next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Migrating Oracle To Postgres Data Access Code compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Migrating Oracle To Postgres Data Access Code this skillgithub/awesome-copilot40k—~2kAutomated safety check: PassMIT
Blockchain IndexingNethereum/Nethereum2.3k—~4.8kAutomated safety check: PassMIT
Scaffolding Oracle To Postgres Migration Test Projectboshi-xixixi/TraeSkill274—~632Automated safety check: PassMIT
Supabase Postgres Best Practicessupabase/agent-skills2.7k24 repos~808Automated safety check: PassMIT
Saleor Django Migration Rulessaleor/saleor23k—~1.6kAutomated safety check: PassBSD-3-Clause
Migrationgocronx-team/gocron808—~1.1kAutomated safety check: PassMIT

Similar skills

  • Blockchain Indexing

    Nethereum/Nethereum

    Index blockchain data (blocks, transactions, logs, tokens) to PostgreSQL/SqlServer/SQLite with progress tracking, reorg handling, and hosted services (.NET/C).

    2.3k GitHub stars~4.8k tokensUpdated 2 days ago
    DatabasesAuto-check passed
  • Scaffolds an xUnit integration test project for validating Oracle-to-PostgreSQL database migration behavior in .NET solutions.

    274 GitHub stars~632 tokensUpdated 4 mo ago
    Testing & QAAuto-check passed
  • Official

    Gives the agent Postgres rules to consult before writing or changing tables, queries, indexes, RLS policies or migrations, and when diagnosing slow queries.

    2.7k GitHub starsUsed in 24 repos~808 tokens
    DatabasesAuto-check passed
  • Rules for writing Django migrations in Saleor that avoid long table locks and stay compatible with zero-downtime rolling deploys.

    23k GitHub stars~1.6k tokensUpdated today
    DatabasesAuto-check passed
  • Migration

    gocronx-team/gocron

    Create, review, or verify gocron database migrations across SQLite, MySQL, and PostgreSQL.

    808 GitHub stars~1.1k tokensUpdated 4 days ago
    DatabasesAuto-check passed
  • Observal Admin

    Observal/Observal

    Administers Observal users, settings, diagnostics, review queues, security events, audit logs, SAML, SCIM, the local Observal server, its upgrades and rollback, and its own PostgreSQL and ClickHouse…

    4.1k GitHub stars~774 tokensUpdated today
    DatabasesAuto-check passed

More from github/awesome-copilot

All 417 skills in this repo
  • Acquire Codebase Knowledge

    github/awesome-copilot

    Official

    Maps an unfamiliar codebase into seven evidence-backed documents in docs/codebase/, using a scan script and templates, for onboarding or architecture write-ups.

    40k GitHub starsUsed in 1 repo~2.3k tokens
    Auto-check passed
  • Azure Architecture Autopilot

    github/awesome-copilot

    Official

    Designs Azure infrastructure from a natural-language description, or diagrams an existing resource group, then refines the design through conversation and deploys it with Bicep.

    40k GitHub starsUsed in 1 repo~1.9k tokens
    Auto-check passed
  • Draw.io Diagram Generator

    github/awesome-copilot

    Official

    Generates, edits and validates draw.io files with correct mxGraph XML, covering flowcharts, architecture, sequence, ER and UML class diagrams.

    40k GitHub starsUsed in 1 repo~4.9k tokens
    Auto-check passed
  • Credit Risk Data Cleaning

    github/awesome-copilot

    Official

    Cleans raw credit data and screens variables before loan modeling, dropping unstable, noisy or redundant features and writing an Excel report of every step.

    40k GitHub starsUsed in 1 repo~1.5k tokens
    Auto-check passed
  • Daily Focus Board

    github/awesome-copilot

    Official

    Builds a warm, browser-based daily focus board the user updates by talking to their agent, with Eisenhower priorities, a brain-dump box and kind not-today carryover.

    40k GitHub stars~3k tokensUpdated today
    Auto-check passed
  • Python Pypi Package Builder

    github/awesome-copilot

    Official

    End-to-end skill for building, testing, linting, versioning, and publishing a production-grade Python library to PyPI.

    40k GitHub starsUsed in 1 repo~4.6k tokens
    Auto-check passed

Categories

Questions about Migrating Oracle To Postgres Data Access Code

What does Migrating Oracle To Postgres Data Access Code do?

Migrates .NET/C data access code from Oracle to PostgreSQL (Npgsql). Migrating Oracle To Postgres Data Access Code is an agent skill from github/awesome-copilot, published by the product's own GitHub organization.NET/C data access code from Oracle to PostgreSQL (Npgsql).

When should I use Migrating Oracle To Postgres Data Access Code?

Migrating Oracle To Postgres Data Access Code fits situations like: migrating the application code layer of a .NET project during an Oracle-to-PostgreSQL database migration; tasks that involve Database migrations.

How do I install Migrating Oracle To Postgres Data Access Code in Claude Code?

Run `npx skills add github/awesome-copilot --skill migrating-oracle-to-postgres-data-access-code -a claude-code`. Or copy the skill folder (skills/migrating-oracle-to-postgres-data-access-code in github/awesome-copilot) into .claude/skills/migrating-oracle-to-postgres-data-access-code in your project. Claude Code loads it when a task matches its description.

How do I install Migrating Oracle To Postgres Data Access Code in Codex?

Run `npx skills add github/awesome-copilot --skill migrating-oracle-to-postgres-data-access-code -a codex`. Or copy the skill folder (skills/migrating-oracle-to-postgres-data-access-code in github/awesome-copilot) into .agents/skills/migrating-oracle-to-postgres-data-access-code in your project. Codex loads it when a task matches its description.

Can I use Migrating Oracle To Postgres Data Access Code in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add github/awesome-copilot --skill migrating-oracle-to-postgres-data-access-code -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/migrating-oracle-to-postgres-data-access-code, .gemini/skills/migrating-oracle-to-postgres-data-access-code, .github/skills/migrating-oracle-to-postgres-data-access-code and .opencode/skills/migrating-oracle-to-postgres-data-access-code in your project.

What does Migrating Oracle To Postgres Data Access Code need to run?

Going by SKILL.md and its folder, Migrating Oracle To Postgres Data Access Code needs the command-line tools its instructions call (dotnet).

Does Migrating Oracle To Postgres Data Access Code access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Migrating Oracle To Postgres Data Access Code safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Migrating Oracle To Postgres Data Access Code use?

Migrating Oracle To Postgres Data Access Code is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Migrating Oracle To Postgres Data Access Code use?

About 2k tokens (SKILL.md is roughly 8.1k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Migrating Oracle To Postgres Data Access Code?

Skills that share tags, products or a category with Migrating Oracle To Postgres Data Access Code: Blockchain Indexing (Nethereum/Nethereum, 2.3k stars), Scaffolding Oracle To Postgres Migration Test Project (boshi-xixixi/TraeSkill, 274 stars), Supabase Postgres Best Practices (supabase/agent-skills, 2.7k stars) and Saleor Django Migration Rules (saleor/saleor, 23k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Migrating Oracle To Postgres Data Access Code?

github (a GitHub organization, an official publisher) maintains it in github/awesome-copilot, which has 39,748 GitHub stars. The repository holds 417 skills in this directory. The repository was last updated on October 7, 2026.

Source: github/awesome-copilot on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.