The Legacy Obituaries

Oracle Database Extensions for .NET

pre-11.2 · plsql · deprecated 21c · desupported 26ai

Survived, partially.

✓ certified by the mortician

In life

Oracle Database Extensions for .NET let developers write stored procedures and functions in .NET languages, host them in a common language runtime running in an external process on a Windows database server, and publish them behind PL/SQL wrappers so SQL and PL/SQL callers could not tell the difference.

Migrations care because this code must be re-hosted rather than translated. It also signals that the source database ran on Windows, which matters for lift-and-shift planning. SQL Server has its own CLR integration, but availability differs between Azure SQL service tiers, so the .NET assemblies cannot simply be assumed to carry over.

Oracle's 21c Upgrade Guide deprecates the extensions and the 26ai guide desupports them (notice dated April 2023). Oracle recommends moving the .NET code to a middle tier, using the external procedures feature, or rewriting it in PL/SQL or Java.

Cause of departure

Desupported in Oracle Database 26ai after deprecation in 21c. Oracle names Middle-tier .NET code, external procedures, or PL/SQL and Java as the successor.

Obituary

Oracle Database Extensions for .NET, born before 11.2, brought .NET assemblies into the Oracle database process on Windows. It served as a home for .NET stored procedures, close to the data and its transactions.

Deprecated in 21c and desupported in 26ai, it found Azure SQL Database offered no common language runtime integration. Managed Instance permits SQL CLR, though assemblies must arrive FROM BINARY because no file system is available to CREATE ASSEMBLY FROM FILE.

It is survived by Azure SQL Managed Instance, partly, and Azure Functions, only by workaround. The former requires recompilation against the SQL CLR model; the latter moves C# outside the database, leaving transaction-dependent procedures needing a rewrite.

Survived by

Azure SQL Managed Instance partial effort M

Applies to Oracle 11.2, 12.1, 12.2, 18c, 19c, 21c, 23ai

SQL CLR integration is the SQL Server counterpart to Oracle's .NET stored procedures and is available on Managed Instance, where assemblies must be created FROM BINARY because there is no file system access; Azure SQL Database does not support CLR at all. The Oracle .NET extension API differs from SqlServer.Server attributes, so assemblies are recompiled against the SQL CLR model, and unsafe or external-access assemblies face the usual restrictions.

  • Rebuild each assembly against Microsoft.SqlServer.Server with SqlProcedure/SqlFunction attributes.
  • Deploy with CREATE ASSEMBLY FROM BINARY (hex literal) and create the wrapping procedures.
  • Prefer SAFE permission sets; move external access logic to Azure Functions.

Complications

blocker Common language runtime integration is not available in Azure SQL Database; on Azure SQL Managed Instance it is available but assemblies can be created only FROM BINARY because CREATE ASSEMBLY FROM FILE has no file system to read from.

Azure Functions workaround effort L

Applies to Oracle 11.2, 12.1, 12.2, 18c, 19c, 21c, 23ai

Oracle Database Extensions for .NET ran .NET assemblies inside the database process on Windows. Azure Functions runs the same C# code as HTTP, timer, Service Bus or SQL-triggered functions outside the database, which is Microsoft's general direction for .NET logic on PaaS databases. The code no longer executes inside a transaction with the calling SQL, so procedures that depended on in-transaction behaviour need a T-SQL or PL/pgSQL rewrite instead.

  • Extract the .NET assemblies and classify procedures as compute-only, data-access, or transaction-dependent.
  • Port compute-only and data-access logic to Azure Functions using the Azure SQL or PostgreSQL client libraries.
  • Rewrite transaction-dependent procedures in T-SQL or PL/pgSQL.
  • Call functions from the application tier rather than from SQL.

Notices of correction

  1. oracle Oracle Database Changes, Desupports, and Deprecations (Upgrade Guide 21c) · Upgrade Guide 21c, F17069-48, Feb 2026 · read 2026-09-26
  2. oracle Oracle Database Changes, Desupports, and Deprecations (Upgrade Guide 26ai) · Upgrade Guide 26ai, G43570-12, updated Jul 2026 · read 2026-09-26
  3. oracle Server-Side Programming: PL/SQL and Java (Database Concepts 19c) · Database Concepts 19c, E96138-11, Sep 2025 · read 2026-09-26
  4. microsoft T-SQL differences between SQL Server and Azure SQL Managed Instance · page updated 2026-09-09 · read 2026-09-26
  5. microsoft Compare SQL Database Engine features: Azure SQL Database vs Azure SQL Managed Instance · page updated 2026-09-09 · read 2026-09-26
  6. microsoft Azure Functions overview · page updated 2026-09-21 · read 2026-09-26

← All notices

Oracle Database Extensions for .NET — Legacy Obituaries