Bonjour,
D'abord les caractéristiques :
OS : red hat 9.2
Perl V 5.8.0
DBD-Oracle-1.16
DBI-1.48
Bases oracle cible 8.1.7
Voilà, je suis actuellement en train de concevoir un programme Perl pour alimenter une base oracle (client) à partir d'une seconde base oracle (fournisseur). Ces deux bases se trouvent sur des machines distinctes (OS AIX), mon programme est quant à lui lancé sur une troisième machine.
Pour cela j'ai créé un data base link de ma base fournisseur au niveau de ma base cliente. Lorsque je me connecte à ma base cliente et que je tente d'utiliser le database link dans mon programme :
J'obtiens le message suivant :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 $sth = $dbh->prepare("select count(id) from t_66\@dbl_M01"); $sth->execute() ;
Hors lorsque je tente la même requête depuis ma machine via sqlplus en me connectant à mon base cliente tout fonctionne.
Code : Sélectionner tout - Visualiser dans une fenêtre à part DBD::Oracle::st execute failed: ORA-03120: two-task conversion routine: integer overflow (DBD ERROR: OCIStmtExecute) [for Statement "select count(id) from t_66@dbl_M01"] at ./update.pl line 29.
Ma connexion à la base cliente est Ok et les requête fonctionne bien. Le problème concerne donc l'accès à la base fournisseur (identique en terme de caractéristique à la base client) via le database link dans Perl.
Est-ce que le dernier module DBD::Oracle n'est pas pleinement compatible avec les versions 8 d'Oracle ?
Je ne sais plus trop par où attaquer. La seule info sur le sujet proposait de recompiler Perl, DBI et Oracle avec l'option sans les threads.
Si quelqu'un a été confronté à ce problème ou a une idée il est le bien venu !
A+ et merci
[/code]
Partager