<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="fr">
  <title>Data Bene - Yasir Hussain Shah</title>
  <subtitle>Base de données relationnelles, open-source et adaptives.</subtitle>
  <link href="https://www.data-bene.io/fr/authors/yasir-hussain-shah/feed.xml" rel="self" type="application/atom+xml" />
  <updated>2026-01-27T00:00:00Z</updated>
  <id>https://www.data-bene.io/fr/authors/yasir-hussain-shah/feed.xml</id>
    <entry>
      <title>IvorySQL 5.0+ : un tournant pour les transitions Oracle vers PostgreSQL</title>
      <link href="https://www.data-bene.io/fr/blog/ivorysql-5/" />
      <updated>2026-01-27T00:00:00Z</updated>
      <id>https://www.data-bene.io/fr/blog/ivorysql-5/</id>
     <content type="html"><![CDATA[ <p>IvorySQL : « un PostgreSQL avancé, complet, open source, compatible Oracle, avec un engagement ferme de rester toujours 100% compatible et un remplacement direct de la dernière version de PostgreSQL. » (<a href="https://github.com/IvorySQL/IvorySQL" rel="noopener">GitHub</a>)</p>
<p>C’est aussi le moteur préféré de notre équipe pour traduire à la fois le SQL étranger et les applications étrangères pour PostgreSQL ! Nous croyons en les transitions, pas les migrations — un déplacement progressif de l’ancien moteur de base de données vers le nouveau, spécifiquement pour réduire les risques et optimiser les résultats. Utiliser un projet comme celui-ci fait toute la différence pour atteindre ces deux objectifs.</p>
<p>La dernière version majeure est sortie il y a un peu de temps, mais nous sommes toujours enthousiastes quant à ce qui est nouveau et nous avons tenu à le partager.</p>
<h2 id="nouveautes"><a class="heading-anchor" href="#nouveautes">Nouveautés</a></h2>
<p>La version 5.0 (<a href="https://github.com/IvorySQL/IvorySQL/releases/tag/IvorySQL_5.0" rel="noopener">notes de version</a>) est sortie le 25 novembre 2025 et une version mineure a déjà été publiée depuis (<a href="https://github.com/IvorySQL/IvorySQL/releases/tag/IvorySQL_5.1" rel="noopener">notes de version 5.1</a>) le 18 décembre 2025. Ces éditions du projet sont le résultat direct des efforts massifs de l’équipe IvorySQL pour fournir de nombreuses améliorations de qualité ainsi que pour implémenter la compatibilité avec PostgreSQL 18.</p>
<p>IvorySQL 5 a apporté de nombreux changements nécessaires, notamment :</p>
<ul class="list">
<li><strong>PLiSQL</strong> — un sous-ensemble compatible d’Oracle PL/SQL</li>
<li><strong>Support des paquets compatibles Oracle</strong></li>
<li><strong>Support des séquences style Oracle</strong></li>
<li>les améliorations de v5.0 telles que <strong>ROWID</strong>, <strong>%TYPE</strong>, <strong>%ROWTYPE</strong> et <strong>les sous-fonctions imbriquées</strong></li>
</ul>
<p>En particulier, nous apprécions beaucoup les améliorations fonctionnelles.</p>
<p>Par exemple, IvorySQL dispose désormais d’un <strong>meilleur traitement des valeurs NULL</strong>, où NULL est désormais traité comme une chaîne vide en mode compatible (correspondant au comportement Oracle) pour éviter des bugs lors de la migration. Ainsi, dans des situations telles que <code>SELECT CONCAT('a' || NULL)</code>, IvorySQL retournera désormais <code>'a'</code> au lieu de suivre le comportement de PostgreSQL qui retournerait <code>NULL</code>.</p>
<p>Une amélioration que nous apprécions particulièrement est qu’il est désormais possible <strong>d’imbriquer des fonctions et des procédures</strong>. Les fonctions peuvent être intégrées dans d’autres fonctions (à la manière des paquets Oracle, mais plus simplement, en utilisant uniquement des méthodes privées). Cela permet d’organiser une logique complexe en un seul endroit.</p>
<p>Dans le même ordre d’idées, le support a également été ajouté pour <code>DO [ LANGUAGE lang_name ] code [USING IN | OUT | IN OUT, ...]</code>.</p>
<h2 id="lessayer"><a class="heading-anchor" href="#lessayer">L’essayer</a></h2>
<p>Actuellement, nous intégrons des applications allant de quelques paquets, procédures et fonctions (environ 10 à 50 objets) à des chargements de données massifs incluant environ 50 000 objets (plus de 10 000 procédures et des centaines de paquets).</p>
<p>Bien que de nombreuses fonctionnalités devront encore être ajoutées avec le temps, cela réduit considérablement l’effort nécessaire pour achever avec succès la transition d’Oracle vers PostgreSQL.</p>
<p>Si vous envisagez de le tester vous-même, il existe une pléthore d’options pour commencer (y compris la compilation depuis la source, l’utilisation de conteneurs, etc.)… et même une compilation WASM ! En particulier, cela permet d’exécuter IvorySQL directement dans le navigateur sans avoir à l’installer localement ; c’est très pratique pour examiner le support de syntaxe et faire le premier pas vers le monde de PostgreSQL.</p>
<p>Vous pouvez déployer le projet IvorySQL-WASM localement en quelques étapes, en suivant <a href="https://www.ivorysql.org/blog/ivorysql-wasm/" rel="noopener">le billet de blog publié par IvorySQL</a> sur le sujet.</p>
<p>Sinon, vous pouvez <a href="https://trial.ivorysql.org/" rel="noopener">essayer le WASM hébergé</a> sur le site web d’IvorySQL.</p>
<h2 id="et-la-suite"><a class="heading-anchor" href="#et-la-suite">Et la suite ?</a></h2>
<p>Vous souhaitez en apprendre davantage sur l’utilisation d’IvorySQL ? Restez à l’affût des webinaires enregistrés sur leur site web (<a href="https://www.ivorysql.org/webinars-page" rel="noopener">à venir !</a>), ou <a href="https://www.youtube.com/@ivorysql" rel="noopener">consultez les enregistrements</a> de la conférence HOW2025 à Jinan, en Chine, en attendant.</p>
<p><a href="https://ivorysql.io/" rel="noopener">La prochaine conférence à Jinan</a> est déjà prévue, du 26 au 28 avril ! (Au passage, <a href="https://sessionize.com/how2026" rel="noopener">l’appel à contributions est ouvert</a> jusqu’au 27 février 2026.)</p>
<p>Notre équipe est heureuse d’employer des contributeurs au projet IvorySQL. Certains de nos membres (Cédric Villemain, Yasir Hussain Shah) ont été reconnus dans les notes de version de 5.0 et 5.1 — et nous avons d’autres ajouts prévus. Pour la prochaine version, nous avons prévu des développements passionnants, notamment :</p>
<ul class="list">
<li>la syntaxe de contrainte <code>ENABLE/DISABLE</code></li>
<li>l’ajout du paquet <code>UTL_FILE</code></li>
<li>le corps de <code>CREATE TRIGGER</code> style Oracle (sans avoir besoin de créer une fonction au préalable)</li>
<li>le support de l’opérateur de jointure legacy d’Oracle <code>(+)</code></li>
</ul>
<p>Nous avons hâte de voir les résultats du travail communautaire en cours pour la prochaine version. De nombreuses fonctionnalités excellentes sont activement ajoutées ; par exemple, récemment, un nouveau contributeur au projet, Rophy Tsai, a ajouté les paquets <code>DBMS_OUTPUT</code> et <code>DBMS_UTILITY</code> : des éléments largement utilisés dans les bases de code SQL basées sur Oracle. Ils ont récemment été fusionnés dans la branche principale d’IvorySQL et seront probablement inclus dans la prochaine version mineure ou majeure.</p>
<p>Pour ceux qui souhaitent passer à PostgreSQL ou l’explorer sans modifications importantes de leur logique de base de données et de leurs applications existantes, IvorySQL (en particulier v5.x) offre une solution pratique. Une migration directe vers PostgreSQL pourrait, dans certains cas, nécessiter des changements importants tant au niveau des objets de base de données qu’au niveau du code applicatif. IvorySQL aide à combler cet écart, permettant une adoption plus fluide de PostgreSQL avec une plus grande compatibilité.</p>
<h2 id="ressources-complementaires"><a class="heading-anchor" href="#ressources-complementaires">Ressources complémentaires</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">Annonce PostgreSQL.org pour IvorySQL 5</a></li>
<li><a href="https://github.com/orgs/IvorySQL/projects/19" rel="noopener">Feuille de route d’IvorySQL 5.0 sur GitHub</a></li>
</ul>
 ]]></content>
			<author>
				<name>Yasir Hussain Shah</name>
			</author>
    </entry>
</feed>
