perl -MCPAN -e shell
get DBD::Oracle
quit
cd /home/Xavier/.cpan/build/DBD-Oracle-1.74-Vp3xUv/
perl Makefile.PL
......
OCI directory not found, please install OCI in /cygdrive/c/Program Files/Common Files/Microsoft Shared/Windows Live at Makefile.PL line 324.
ORACLE_HOME=/cygdrive/c/app/Xavier/product/11.2.0/dbhome_1/
export ORACLE_HOME
perl Makefile.PL
....
make
...........
/bin/sh: gcc-4 : commande introuvable
Makefile:407: recipe for target 'Oracle.o' failed
make: *** [Oracle.o] Error 127
ln -s /usr/bin/gcc.exe /usr/bin/gcc-4
ln -s /usr/bin/gcc.exe /usr/bin/g++-4
make
....
make install
...
Ca a l'air ok, mais j'ai des problème de conf Oracle à régler (SID).
]]>La meilleur solution dans ce cas, si linux ne peux pas être utilisé bien sur, c'est d'installer le Perl d'ActiveState, ils ont un module DBD::Oracle précompilé ce qui simplifie grandement l'installation.
En fait, j'avais déjà Cygwin installé sur ma machine. Site à vos remarques, j'ai regardé dans la liste des packages disponibles, ora2pg n'y est pas (dommage), mais dans la cathégorie databases, je vois perl:DBI (il est aussi accessible depuis la cathégorie perl). Je l'ai installé, et plus d'erreur :-)
Enfin, je ne l'ai pas encore utilisé pour transférer des données, mais au moins, quand je tape ora2pg, j'ai bien un rappel de l'usage.
Donc, pour ceux que ça interresse de faire fonctionner ora2pg avec cygwin, c'est très simple :
installer cygwin avec make (qui n'est pas par defaut !), perl et perl:DBI.
Puis les commandes pour unix/linux :
tar xzf ora2pg-10.x.tar.gz
cd ora2pg-10.x/
perl Makefile.PL
make && make install
Il n'est pas nécessaire d'utiliser cygwin pour installer Ora2Pg. La procédure d'installation est décrite dans le fichier README du paquet ora2pg. Il faut prendre soins de lire la rubrique INSTALLATION en entier, les infos sur l'installation sous Windows sont éparses.
Sinon, la plupart des échecs d'installation sous Windows sont imputable à la partie DBD::Oracle, il est clair que si l'on est pas habitué à l'installation de module Perl et la compilation cela peut être rébarbatif. La meilleur solution dans ce cas, si linux ne peux pas être utilisé bien sur, c'est d'installer le Perl d'ActiveState, ils ont un module DBD::Oracle précompilé ce qui simplifie grandement l'installation.
Désolé pour le retard de réponse.
Cordialement,
]]>Can't locate DBI.pm
Il a besoin de DBI (ainsi que du DBD::Oracle je suppose) pour se connecter à la base de données : se sont les lib de connexion standard en perl
http://search.cpan.org/~timb/DBI-1.631/DBI.pm
http://search.cpan.org/~pythian/DBD-Ora … /Oracle.pm
Can't locate DBI.pm in @INC (@INC contains: /usr/lib/perl5/site_perl/5.14/i686-cygwin-threads-64int /usr/lib/perl5/site_perl/5.14 /usr/lib/perl5/vendor_perl/5.14/i686-cygwin-threads-64int /usr/lib/perl5/vendor_perl/5.14 /usr/lib/perl5/5.14/i686-cygwin-threads-64int /usr/lib/perl5/5.14 /usr/lib/perl5/site_perl/5.10 /usr/lib/perl5/vendor_perl/5.10 /usr/lib/perl5/site_perl/5.8 .) at /usr/lib/perl5/site_perl/5.14/Ora2Pg.pm line 29.
BEGIN failed--compilation aborted at /usr/lib/perl5/site_perl/5.14/Ora2Pg.pm line 29.
Compilation failed in require at /usr/local/bin/ora2pg line 30.
BEGIN failed--compilation aborted at /usr/local/bin/ora2pg line 30.
Du coup, je n'ai pas eu envie de me battre avec ça. J'ai mis les droits à mon utilisateur, et jai utilisé l'outil que j'avais trouvé au début ...
]]>2014-04-24 13:58:03 CEST ERREUR: droit refusé pour la relation pg_class
2014-04-24 13:58:03 CEST INSTRUCTION : update pg_catalog.pg_class set relhasindex = 'f' where oid = 'monschema.table3'::pg_catalog.regclass
Quelles sont les erreurs associées dans vos logs postgres ?
]]>Vous pouvez utiliser cet excellent outil :ora2pg
http://ora2pg.darold.net/
En fait, quand j'ai cherché un outil de transfert de données d'Oracle vers pg, j'ai de suite trouvé EnterpriseDB Tools sur http://www.enterprisedb.com. Comme c'est simple et gratuit, j'ai pensé que c'était l'outil de référence que tout le monde utilise.
Je vois que non.
Alors quel est l'outil le plus simple de transfert qui serait l'outil de "reférence" ?