{{tag>sgbd BROUILLON}}
----
====== ORA2PG ======
**ORA2PG** est un outil facilitant la migration des bases de données Oracle vers PostgreSQL.
L'outil permet de migrer l'ensemble des éléments d'une base Oracle, et les dernières versions peuvent même transformer une partie du code PL/SQL en PLPGSQL.
Le contributeur principal est [[https://www.darold.net/|Gilles Darold]] et on peut noter qu'une des références ayant fait un usage d'ora2pg est [[http://www.bull.com/bulldirect/N9/expert.html|le groupe Bull]].
Bien que présent dans les dépôts Multiverse d'ubuntu, il n'est pas installable. Ceci fait d'ailleurs l'objet d'un [[https://bugs.launchpad.net/ubuntu/+source/ora2pg/+bug/316437|rapport de bug]] sur Launchpad.
En effet, il dépend du module Perl **libdbd-oracle-perl** dépendant du paquet **oracle-instantclient-basic** (la couche de connexion propriétaire) qui n'est pas disponible dans les dépôts car délivré exclusivement par Oracle.
On peut cependant assez simplement installer ces paquets sans avoir à passer par une étape de compilation.
===== Pré-requis =====
* Disposer des [[:sudo|droits d'administration]].
* Disposer d'une connexion à Internet configurée et activée.
* Avoir activé l'accès aux [[:depots#universe_et_multiverse|dépôts Universe et Multiverse]].
* Avoir [[:tutoriel:comment_installer_un_paquet|installé le paquet]] **[[apt://alien|alien]]**.
===== Installation =====
Tout d'abord, il nous faut récupérer le paquet RPM **oracle-instantclient-basic-10.2.0.3-1.i386.rpm** sur le site d'Oracle à [[http://www.oracle.com/technology/software/tech/oci/instantclient/htdocs/linuxsoft.html|cette adresse]].
Ensuite, transformer, à l'aide de l'utilitaire [[Alien]], ce paquet RPM en paquet Debian et l'installer directement :
sudo alien -i oracle-instantclient-basic-10.2.0.3-1.i386.rpm
On peut maintenant [[:tutoriel:comment_installer_un_paquet|installer le paquet]] **libdbd-oracle-perl** qui n'est pas présent dans les dépôts Ubuntu. On le trouve chez Debian à l'adresse [[http://ftp.debian.org/debian/pool/contrib/libd/libdbd-oracle-perl/]].
Pour l'installer :
sudo gdebi libdbd-oracle-perl_1.21-2_i386.deb
Et enfin, on peut installer [[:tutoriel:comment_installer_un_paquet|installer le paquet]] **[[apt://ora2pg|ora2pg]]**.
La version de ora2pg disponible dans les dépôts est 4.9-1. Vous trouverez une version plus récente sur le [[http://pgfoundry.org/projects/ora2pg/|site officiel]] du logiciel.
===== Utilisation =====
Il suffit de modifier un fichier de configuration sur le modèle fourni par le logiciel (''ora2pg.conf'') et lancer ora2pg avec ce fichier de configuration en paramètre :
ora2pg ora2pg.conf
On obtient en retour un fichier « output.sql » compatible avec PostgreSQL.
Principales options du fichier :
ORACLE_HOME /usr/local/oracle/10.2.0.3 #chemin d'installation d'oracle-instantclient-basic
ORACLE_DSN dbi:Oracle:host=localhost;sid=xe # chaine de connexion Oracle
ORACLE_USER system
ORACLE_PWD manager
SCHEMA SCOTT # schéma Oracle cible, en majuscules
TYPE TABLE SEQUENCE DATA PACKAGE FUNCTION PROCEDURE TRIGGER # types d'objets à extraire séparés par des espaces
OUTPUT SCOTT_all.sql # fichier sql de sortie, mettre SCOTT_all.sql.bz2 pour l'obtenir compressé
FKEY_DEFERRABLE 1 # permet de créer les enregistrements sans que les Foreign Key bloquent le chargement
DEFER_FKEY 1 # permet de créer les enregistrements sans que les Foreign Key bloquent le chargement
PLSQL_PGSQL 1 # Pour transformer le code PL/SQL en PLPGSQL
===== Limitations =====
FIXME
===== Voir aussi / Liens =====
* [[http://pgfoundry.org/projects/ora2pg/|Site officiel]]
* FIXME
----
//Contributeur principal : [[utilisateurs:kwakosaure|kwakosaure]].//