Récursivité avec Oracle 11gR2

Abonnements, magazines... Notre catalogue complet au bas de cette page.

« Chi va piano, va sano, e va lontano », il aura fallu attendre 11 ans avant qu’Oracle n’implémente le concept de récursivité, prévu par la norme SQL en 1999. Microsoft et IBM l’avaient quelque peu devancé sur ce point (2005 pour SQL Server).

Depuis la release 2 de la version 11g, l’opérateur WITH permet de programmer la récursivité. Une sous-requête peut désormais utiliser la requête principale. Ce type d’écriture est plus concis et plus efficace que la bonne vielle clause CONNECT BY que vous pouvez désormais ranger dans le tiroir. La structure d’une telle requête est la suivante. Chaque résultat d’une sous-requête est appelé CTE (Common Table Expression). La norme SQL avait introduit la directive RECURSIVE afin de différencier une CTE récursive d’une autre non récursive. Aucun des éditeurs n’a adopté ce mot-clé et c’est au travers de la requête qu’on peut statuer à propos de la récursivité.

Christian Soutou

S'ABONNER
Egalement au sommaire de :
Programmez! #134