<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
  <title>Data Bene - Tag: 'Oracle'</title>
  <subtitle>Relational database, open-source and scalable.</subtitle>
  <link href="https://www.data-bene.io/en/blog/tag/oracle/feed.xml" rel="self" type="application/atom+xml" />
  <updated>2026-01-27T00:00:00Z</updated>
  <id>https://www.data-bene.io/en/blog/tag/oracle/feed.xml</id>
    <entry>
      <title>IvorySQL 5.0+: a game changer for Oracle to PostgreSQL transitions</title>
      <link href="https://www.data-bene.io/en/blog/ivorysql-5/" />
      <updated>2026-01-27T00:00:00Z</updated>
      <id>https://www.data-bene.io/en/blog/ivorysql-5/</id>
     <content type="html"><![CDATA[ <p>IvorySQL: “advanced, fully featured, open source Oracle compatible PostgreSQL with a firm commitment to always remain 100% compatible and a Drop-in replacement of the latest PostgreSQL.” (<a href="https://github.com/IvorySQL/IvorySQL" rel="noopener">GitHub</a>)</p>
<p>Also, it’s our team’s favorite engine to translate both foreign SQL and foreign applications for PostgreSQL! We believe in transitions, not migrations - a gradual shift from the old database engine to the new, specifically to reduce risk and optimize results. Using a project like this makes a huge difference in achieving both these goals.</p>
<p>It’s been a little bit since the latest major version was released, but we’re still excited about what’s new and wanted to share.</p>
<h2 id="whats-new"><a class="heading-anchor" href="#whats-new">What’s new</a></h2>
<p>Version 5.0 (<a href="https://github.com/IvorySQL/IvorySQL/releases/tag/IvorySQL_5.0" rel="noopener">release notes</a>) came out on November 25, 2025 and there’s already been a minor version released since then (<a href="https://github.com/IvorySQL/IvorySQL/releases/tag/IvorySQL_5.1" rel="noopener">5.1 release notes</a>) on December 18, 2025. These editions of the project were the direct result of massive efforts from the IvorySQL team to provide a lot of quality feature improvements as well as implement PostgreSQL 18 compatibility.</p>
<p>IvorySQL 5 brought a lot of necessary changes with it, including:</p>
<ul class="list">
<li><strong>PLiSQL</strong> - a compatible subset of Oracle PL/SQL</li>
<li><strong>Oracle-Compatible Package Support</strong></li>
<li><strong>Oracle-Style Sequence Support</strong></li>
<li>v5.0 enhancements such as <strong>ROWID</strong>, <strong>%TYPE</strong>, <strong>%ROWTYPE</strong>, and <strong>nested subfunctions</strong></li>
</ul>
<p>In particular, we really enjoy a lot of the functionality upgrades.</p>
<p>For example, IvorySQL now has <strong>better NULL handling</strong>, where NULL is now treated like an empty string in compatible mode (matching Oracle behavior) to avoid bugs during migration. So, when you have situations such as <code>SELECT CONCAT('a' || NULL)</code>, IvorySQL will now return <code>'a'</code> instead of following PostgreSQL’s behavior of returning <code>NULL</code>.</p>
<p>One enhancement we really enjoy is that you can now <strong>nest functions and procedures</strong>. Functions are able to be embedded inside other functions (like Oracle packages, but simpler, using only private methods). This lets you organize complex logic in one place.</p>
<p>Along the same lines, support was also added for <code>DO [ LANGUAGE lang_name ] code [USING IN | OUT | IN OUT, ...]</code>.</p>
<h2 id="trying-it-out"><a class="heading-anchor" href="#trying-it-out">Trying it out</a></h2>
<p>Currently, we’re ingesting applications that range from only a few packages, procedures, and functions (around 10-50 objects) to massive data loads that include around 50,000 objects (10,000+ procedures and hundreds of packages).</p>
<p>While there are still many features that will need to be added over time, it considerably reduces the effort taken to complete the transition from Oracle to PostgreSQL successfully.</p>
<p>If you’re thinking about testing it for yourself, there are a plethora of options to get started (including building it from source, using containers, etc.)… and even a WASM build! This in particular allows IvorySQL to be run directly in the browser without having to fully install it locally; it’s very convenient to look at syntax support and take the first step into the world of PostgreSQL.</p>
<p>You can deploy the IvorySQL-WASM project locally in just a few steps, following the <a href="https://www.ivorysql.org/blog/ivorysql-wasm/" rel="noopener">blog post IvorySQL published</a> on the subject.</p>
<p>Or, you can <a href="https://trial.ivorysql.org/" rel="noopener">try out the hosted WASM</a> on the IvorySQL website.</p>
<h2 id="whats-next"><a class="heading-anchor" href="#whats-next">What’s next</a></h2>
<p>Hoping to learn more about how to use IvorySQL yourself? Keep an eye out for recorded webinars on their website (<a href="https://www.ivorysql.org/webinars-page" rel="noopener">coming soon!</a>), or <a href="https://www.youtube.com/@ivorysql" rel="noopener">check out recordings</a> from the HOW2025 conference in Jinan, China in the meantime.</p>
<p><a href="https://ivorysql.io/" rel="noopener">The next conference in Jinan</a> is already scheduled, from April 26th to the 28th! (By the way, the <a href="https://sessionize.com/how2026" rel="noopener">Call for Proposals is open</a> until February 27th, 2026.)</p>
<p>Our team is happy to employ contributors to the IvorySQL project. Some of our team members (Cédric Villemain, Yasir Hussain Shah) have been recognized in the release notes for 5.0 and 5.1 - and we have more additions planned. For the next release, we have planned some exciting developments, including:</p>
<ul class="list">
<li><code>ENABLE/DISABLE</code> constraint syntax</li>
<li><code>UTL_FILE</code> package addition</li>
<li>Oracle-style <code>CREATE TRIGGER</code> body (without needing to create a function beforehand)</li>
<li>Support for Oracle’s legacy join operator <code>(+)</code></li>
</ul>
<p>We’re looking forward to seeing the result of ongoing community work for the next release as well. Many great features are actively being added; for example, recently a new contributor to the project, Rophy Tsai, added the <code>DBMS_OUTPUT</code> and <code>DBMS_UTILITY</code> packages: something widely used across Oracle-based SQL codebases. It was recently merged to IvorySQL’s main branch, and will likely be included in the next minor or major release.</p>
<p>For those looking to transition to or explore PostgreSQL without extensive modifications to their existing database logic and applications, IvorySQL (specially v5.x) offers a practical solution. A direct migration to PostgreSQL could, in some cases, require significant changes to both database objects and application code. IvorySQL helps bridge this gap, allowing a smoother adoption of PostgreSQL with greater compatibility.</p>
<h2 id="additional-resources"><a class="heading-anchor" href="#additional-resources">Additional resources</a></h2>
<ul class="list">
<li><a href="https://www.postgresql.org/about/news/ivorysql-50-released-major-oracle-compatibility-expansion-on-postgresql-180-foundation-3180/" rel="noopener">PostgreSQL.org announcement for IvorySQL 5</a></li>
<li><a href="https://github.com/orgs/IvorySQL/projects/19" rel="noopener">IvorySQL 5.0 roadmap on GitHub</a></li>
</ul>
 ]]></content>
			<author>
				<name>Yasir Hussain Shah</name>
			</author>
    </entry>
    <entry>
      <title>How to Transition Easily to PostgreSQL from Oracle</title>
      <link href="https://www.data-bene.io/en/blog/transition-easily-to-postgresql-from-oracle/" />
      <updated>2025-12-10T00:00:00Z</updated>
      <id>https://www.data-bene.io/en/blog/transition-easily-to-postgresql-from-oracle/</id>
     <content type="html"><![CDATA[ <p>If you need to transition easily from Oracle to PostgreSQL without worrying about type conversions or other Oracle packages that require modifications to be PostgreSQL-compatible, a useful solution is IvorySQL!</p>
<h2 id="introduction"><a class="heading-anchor" href="#introduction">Introduction</a></h2>
<p>More and more companies are seeking to free themselves from the costs and constraints of Oracle by migrating to PostgreSQL. But how can this transition be achieved without spending months on it? Here is a proven, fast and secure method, based on feedback and open source tools.</p>
<h3 id="start-by-assessing-and-mapping"><a class="heading-anchor" href="#start-by-assessing-and-mapping">Start by assessing and mapping</a></h3>
<p>Before migrating, it is essential to take stock of the situation: we start by listing Oracle objects through performing a complete extraction (including tables, views, sequences, procedures, functions, and packages).</p>
<p>It is also important to communicate regularly with the client to refine findings and validate directions, as well as to identify dependencies (applications connected with which technology, jobs, interfaces, etc.).</p>
<p>Finally, identify the client’s Oracle-specific features (specific functions such as ROWID, DUAL, DBMS_XXX, etc.) and any other keywords requiring special attention.</p>
<h3 id="choosing-the-right-open-source-tools"><a class="heading-anchor" href="#choosing-the-right-open-source-tools">Choosing the right open source tools</a></h3>
<p>The success of a transition to PostgreSQL – because it is indeed a gradual transition and not a migration – depends as much on strategy as it does on tools.</p>
<p>It is not enough to simply copy objects: you need to understand the subtleties of the Oracle engine and intelligently transpose them into the PostgreSQL universe.</p>
<p>Among the essential tools, Ora2Pg plays a central role. Not only does it generate clear inventory reports, it also automates the conversion of schemas, data and PL/SQL code. It is a valuable accelerator for well-structured projects.</p>
<p>But in some contexts, the reality is more complex. Many customers accumulate significant technical debt, with thousands of lines of procedural code. Attempting to rewrite everything in PL/pgSQL in a short period of time would exhaust teams and compromise the migration itself. Maintaining two code bases— one in PL/SQL, the other in PL/pgSQL— during a complete transition phase is often organisationally untenable.</p>
<p>This is precisely where IvorySQL offers a powerful alternative. This fork of PostgreSQL, enhanced with Oracle compatibilities (PL/SQL, ROWID, DUAL, etc.), significantly reduces the need for immediate rewriting. By combining IvorySQL with targeted documentation and business validation scripts, the transition is easier, more reliable, and above all, more controlled.</p>
<p>Once in production, teams have the time they need to gradually rewrite their procedural and remaining application code in PL/pgSQL, without pressure or functional disruption.</p>
<h3 id="integration-and-tests"><a class="heading-anchor" href="#integration-and-tests">Integration and tests</a></h3>
<p>One of the great advantages of IvorySQL is that it performs part of the integration upstream. Thanks to its native support for PL/SQL, Oracle objects and Oracle-compatible syntax, many elements migrated via Ora2Pg work immediately without any major adaptation.</p>
<p>Of course, this does not eliminate the need for testing. On the contrary, it is essential to validate business behaviour in an IvorySQL pre-production environment. Procedures, functions, packages, triggers, and views must be tested with real-world cases, comparing the results between Oracle and IvorySQL to ensure functional equivalence.</p>
<p>Comparison scripts can be used to verify query responses, transaction effects, or the behaviour of migrated functions. But in many cases, IvorySQL significantly reduces the need for patches or rewrites, speeding up production and securing the transition.</p>
<h3 id="document-and-support"><a class="heading-anchor" href="#document-and-support">Document and support</a></h3>
<p>A successful transition is not limited to technical aspects; it also relies on clear documentation and appropriate support. It is essential to write comprehensive test specifications for each complex object and module (procedure, package, trigger, etc.) in order to keep track of technical choices, adaptations made, and points of attention.</p>
<p>Support for client teams is just as important. Targeted workshops are used to share best practices, explain the differences between Oracle and PostgreSQL, and facilitate the adoption of IvorySQL.</p>
<p>Finally, a successful transition to PostgreSQL also depends on support for technical and functional teams. Targeted training sessions enable developers, DBAs, and project managers to learn the specifics of IvorySQL, understand the differences with Oracle, and quickly develop their skills.</p>
<p>This system also relies on structured technical support, which helps resolve issues, secure implementation choices, and facilitate communication between project teams and migration experts.</p>
<h2 id="ivorysql-in-the-real-world"><a class="heading-anchor" href="#ivorysql-in-the-real-world">IvorySQL in the real world</a></h2>
<p>During a recent assignment for a private sector company, we supported the transition from an Oracle database to IvorySQL in a challenging context: where there was significant technical debt, high volume, and tight deadlines.</p>
<p>Thanks to IvorySQL and our ability to automate this transition, it was completed quickly and almost all objects were integrated without rewriting.</p>
<p>The switch from IvorySQL to PostgreSQL can be carried out smoothly, as long as the application is fully functional and meets business expectations.</p>
<p>The teams were able to focus on business testing, while targeted training and technical support enabled rapid skill development.</p>
<p>It is essential to succeed in this type of project in order to build confidence and roll out this operation across your entire Oracle instance fleet!</p>
<p>Are you considering a transition from Oracle to PostgreSQL? Let’s talk about it.</p>
<p>Contact our team of experts at any time: <a href="mailto:contact@data-bene.io">contact@data-bene.io</a></p>
<p>On November 26, 2025 IvorySQL 5.0 was released - <a href="https://www.postgresql.org/about/news/ivorysql-50-released-major-oracle-compatibility-expansion-on-postgresql-180-foundation-3180/" rel="noopener">view the announcement here</a> for more information about this open-source project.</p>
 ]]></content>
			<author>
				<name>Stéphane Carton</name>
			</author>
    </entry>
</feed>
