[PERL] se connecter a une base Oracle avec DBI

se connecter a une base Oracle avec DBI [PERL] - Perl - Programmation

Marsh Posté le 07-05-2003 à 16:48:33    

Voulant me connecter a une base Oracle avec Perl (activePerl 5.8), j'ai installé le module DBI avec ppm. Pas de probleme. Mais je crois avoir compris que je dois maintenant installer le module DBD::Oracle. Or ppm ne me le trouve pas, comment proceder pour l'installer ?
 
Merci

Reply

Marsh Posté le 07-05-2003 à 16:48:33   

Reply

Marsh Posté le 07-05-2003 à 20:52:24    

salut :hello:
 
va voir la : http://ppm.activestate.com/PPMPack [...] y/Windows/
 
ensuite j'ai trouvé ce petit tuto :
 

Citation :

Exemple d?installation avec DBI :
* créer un répertoire temporaire et y dézipper le fichier DBI.zip (ne pas dézipper les éventuels fichiers .tar.gz qui s?y trouveraient)
* ouvrir une fenêtre Ms-Dos et taper ppm
* au prompt de PPM, taper install DBI.ppd
* quitter PPM en tapant exit après installation
* répéter toutes ces opérations pour DBD-MySQL
 
Edit1 : bien entendu, tu dois te trouver dans le répertoire où tu as dézippé DBI.zip, puis DBD-MySQL.zip avant de taper ppm.
 
Edit2 : la méthode ci-dessus n'est valable que si tu as téléchargé les zip des modules à installer.


---------------
Tout à commencé par un rêve...
Reply

Marsh Posté le 09-05-2003 à 09:00:19    

Bah oui mais je ne vois pas de DBD::Oracle.zip dns cette liste !

Reply

Marsh Posté le 09-05-2003 à 09:26:59    

bezot3 a écrit :

Bah oui mais je ne vois pas de DBD::Oracle.zip dns cette liste !

Code :
  1. $message = <<FIN;
  2. Exemple d?installation avec DBI :
  3. * créer un répertoire temporaire et y dézipper le fichier DBI.zip (ne pas dézipper les éventuels fichiers .tar.gz qui s?y trouveraient)
  4. * ouvrir une fenêtre Ms-Dos et taper ppm
  5. * au prompt de PPM, taper install DBI.ppd
  6. * quitter PPM en tapant exit après installation
  7. * répéter toutes ces opérations pour DBD-MySQL
  8. Edit1 : bien entendu, tu dois te trouver dans le répertoire où tu as dézippé DBI.zip, puis DBD-MySQL.zip avant de taper ppm.
  9. Edit2 : la méthode ci-dessus n'est valable que si tu as téléchargé les zip des modules à installer.
  10. FIN
  11. $message =~ s/mysql/Oracle/ig;


voili voilou !


---------------
Samsung Galaxy S1 -> Samsung Galaxy S2 -> Samsung Note 2 -> Huawei Ascend Mate 7 -> ZTE Axon 7 -> OnePlus 6T -> Oppo Find X2 PRO -> Google Pixel 9 PRO XL
Reply

Marsh Posté le 09-05-2003 à 10:35:38    

dslé aricoh, j'ai récupéré ta doc :D


---------------
Tout à commencé par un rêve...
Reply

Marsh Posté le 09-05-2003 à 10:37:13    

SteF_DOBERMANN a écrit :

dslé aricoh, j'ai récupéré ta doc :D

spa grave, y a pas de copyright dessus :D
 
Le pire, c'est que cette doc, je l'avais pondu au départ justement pour Perl et Oracle et quand je l'ai reproduite dans un topic ici, je me suis fait suer à renommer tout ce qui concernait DBD-Oracle par DBD-Mysql, ah là là  :)


---------------
Samsung Galaxy S1 -> Samsung Galaxy S2 -> Samsung Note 2 -> Huawei Ascend Mate 7 -> ZTE Axon 7 -> OnePlus 6T -> Oppo Find X2 PRO -> Google Pixel 9 PRO XL
Reply

Marsh Posté le 09-05-2003 à 20:44:06    

oui j'ai bien compris comment installer le DBD::oracle.zip mais la question est : ou le recuperer ? Car sur l'adresse donné precedement, y'a bien le .zip de mysql mais pas celui d'oracle.

Reply

Marsh Posté le 12-05-2003 à 08:07:12    

Plus personne pour m'aider ???

Reply

Marsh Posté le 12-05-2003 à 08:18:14    

bezot3 a écrit :

Plus personne pour m'aider ???

En partant de ces principes :
- tu es sous windows
- tu utilises une version Perl de chez ActiveState
 
Perl 5.6.1 : http://ppm.activestate.com/PPMPack [...] ilds-only/
 
Perl 5.8.0 : http://ppm.activestate.com/PPMPack [...] y/Windows/
 
Comme tu l'as déjà signalé, je n'ai pas vu de package DBD-Oracle pour la 5.8.0 de Perl. Par contre, vu qu'en ce moment je bosse en Perl 5.8.0 avec une BDD MySql, et que je n'ai absolument pas eu besoin d'autre chose que de DBI, à voir si le module DBI pour la 5.8.0 n'intègre pas en interne les méthodes pour se connecter à Oracle tout seul comme un grand. Vu qu'il le fait sans soucis avec MySql ...


---------------
Samsung Galaxy S1 -> Samsung Galaxy S2 -> Samsung Note 2 -> Huawei Ascend Mate 7 -> ZTE Axon 7 -> OnePlus 6T -> Oppo Find X2 PRO -> Google Pixel 9 PRO XL
Reply

Marsh Posté le 12-05-2003 à 09:27:33    

oui c'est exactement ca !
 
Mais comment verifier que le module dbi contienent bien les drivers oracle ?

Reply

Marsh Posté le 12-05-2003 à 09:27:33   

Reply

Marsh Posté le 12-05-2003 à 09:30:50    

Essaie ce petit script :

Code :
  1. use strict;
  2. use DBI;
  3. my @Drivers;
  4. @drivers = DBI->available_drivers;
  5. foreach my $driver(@Drivers) {
  6.     print "$driver dispo\n";
  7. }


 
Source : http://mysql.turbolift.com/DBD_3.21.X.php3
 
Ca va te sortir la liste de tous les drivers disponibles sur ta machine. Dis-nous ce que donne le print.


---------------
Samsung Galaxy S1 -> Samsung Galaxy S2 -> Samsung Note 2 -> Huawei Ascend Mate 7 -> ZTE Axon 7 -> OnePlus 6T -> Oppo Find X2 PRO -> Google Pixel 9 PRO XL
Reply

Marsh Posté le 12-05-2003 à 09:37:35    

voila ce que ca me retourne :
 
ExampleP dispo
Proxy dispo
 
Donc oracle n'est bien pas dispo.  
 
Il faut donc installer le module oracle. Mais il ne semble pas disponible...
 
ME voila bien moi !

Reply

Marsh Posté le 12-05-2003 à 09:43:17    

bezot3 a écrit :

Donc oracle n'est bien pas dispo.


Zut ! :(  
 
Dis-moi, tu utilises un Perl 5.8.0 de chez ActiveState ou bien celui d'Indigo ?  
 
Chez ActiveState, en fouillant un peu ici (http://ppm.activestate.com/PPMPackages/zips/8xx-builds-only/Windows/), je suis tombé sur le module 'DBIx-OracleLogin.zip' dont la (courte) doc dis ceci : takes a string and splits out individual login information (user id, Oracle sid, and password) to be used in a DBI-connect() statement when connecting to an Oracle database.
 
J'ai pas l'impression que ça existait du temps de la 5.6.1 :??:


---------------
Samsung Galaxy S1 -> Samsung Galaxy S2 -> Samsung Note 2 -> Huawei Ascend Mate 7 -> ZTE Axon 7 -> OnePlus 6T -> Oppo Find X2 PRO -> Google Pixel 9 PRO XL
Reply

Marsh Posté le 12-05-2003 à 09:44:20    

bezot3 a écrit :

Donc oracle n'est bien pas dispo.


Ca coute rien de poser une question conne mais le service d'Oracle était actif lorsque tu as fait le test sur les drivers dispos ?


---------------
Samsung Galaxy S1 -> Samsung Galaxy S2 -> Samsung Note 2 -> Huawei Ascend Mate 7 -> ZTE Axon 7 -> OnePlus 6T -> Oppo Find X2 PRO -> Google Pixel 9 PRO XL
Reply

Marsh Posté le 12-05-2003 à 09:52:23    

Aricoh a écrit :


Zut ! :(  
 
Dis-moi, tu utilises un Perl 5.8.0 de chez ActiveState ou bien celui d'Indigo ?  
 
Chez ActiveState, en fouillant un peu ici (http://ppm.activestate.com/PPMPackages/zips/8xx-builds-only/Windows/), je suis tombé sur le module 'DBIx-OracleLogin.zip' dont la (courte) doc dis ceci : takes a string and splits out individual login information (user id, Oracle sid, and password) to be used in a DBI-connect() statement when connecting to an Oracle database.
 
J'ai pas l'impression que ça existait du temps de la 5.6.1 :??:  


 
oui j'utilise bien activerState Perl 5.8.
 
oui j'ai vu le module oraleLogin mais ca ne doit pas suffir pour une connexion.
 
Oui le service Oracle est bien demarré !
 
J4aurais aimé que ce soit ca !

Reply

Marsh Posté le 12-05-2003 à 10:13:14    

Sans trop y croire, essaie ceci pour voir :

Code :
  1. use strict;
  2. use DBI;
  3. my $Bdd = "dbi:Oracle:"; # nom de ta BDD
  4. my $User = "toto"; # nom du user A CHANGER !
  5. my $Pass = "titi"; # passwd user A CHANGER
  6. my $dbh;
  7. if ($dbh = DBI->connect($Bdd, $User, $Pass)) {
  8.     print "waouuuuuuuuuhhhhh YES YES YES !!!\n";
  9. } else {
  10.     print "ERREUR : $DBI::errstr\n";
  11.     exit();
  12. }
  13. $dbh->disconnect();


pour $Bdd, le nom indiqué dans mon exemple est celui que j'avais pour ma BDD Oracle sous Windows quand je bossais dessus avec la Perl 5.6.1. Si la valeur donnée pour $Bdd ne fonctionne pas, essaie les valeurs suivantes :

Code :
  1. $Bdd = "DBI:Oracle:";
  2. $Bdd = "DBI:Oracle:Nom_de_la_Bdd";
  3. $Bdd = "dbi:Oracle:Nom_de_la_Bdd";


Message édité par Aricoh le 12-05-2003 à 10:14:29

---------------
Samsung Galaxy S1 -> Samsung Galaxy S2 -> Samsung Note 2 -> Huawei Ascend Mate 7 -> ZTE Axon 7 -> OnePlus 6T -> Oppo Find X2 PRO -> Google Pixel 9 PRO XL
Reply

Marsh Posté le 12-05-2003 à 10:24:39    

quoique je fasse j'ai ca :
 
install_driver(oracle) failed: Can't locate DBD/oracle.pm in @INC (@INC contains
: E:/Perl/lib E:/Perl/site/lib .) at (eval 1) line 3.
Perhaps the DBD::oracle perl module hasn't been fully installed,
or perhaps the capitalisation of 'oracle' isn't right.
Available drivers: ExampleP, Proxy.
 at testConnexion.pl line 13

Reply

Marsh Posté le 12-05-2003 à 10:28:35    

Elle a l'air bien chiante, la 5.8.0 avec Oracle :fou:  
 
Là, j'ai épuisé toutes les idées que j'avais à la caboche. Et sinon, quand tu lances le SQL+, t'arrives sans aucun blème à te connecter à Oracle, utiliser la BDD, poser des requètes ???


---------------
Samsung Galaxy S1 -> Samsung Galaxy S2 -> Samsung Note 2 -> Huawei Ascend Mate 7 -> ZTE Axon 7 -> OnePlus 6T -> Oppo Find X2 PRO -> Google Pixel 9 PRO XL
Reply

Marsh Posté le 12-05-2003 à 10:50:11    

Ah oui ca sans probleme le sqlplus
 
Je devrais peut etre essayé en 5.6.0 ? Mais le module n'a pas l'air plus disponible ...

Reply

Marsh Posté le 12-05-2003 à 10:56:21    

bezot3 a écrit :

Je devrais peut etre essayé en 5.6.0 ? Mais le module n'a pas l'air plus disponible ...

Tu as mal regardé, va voir dans la section 6xxx, y a 2 zip, DBD-Oracle.zip et DBD-Oracle8.zip. J'utilisais DBD-Oracle.zip avec ma Personnal 7.3.4.0.0.0i.
 
Sont un peu nazes de sortir une version 5.8.0 ne proposant plus (apparemment !) de gestion automatique avec Oracle !


---------------
Samsung Galaxy S1 -> Samsung Galaxy S2 -> Samsung Note 2 -> Huawei Ascend Mate 7 -> ZTE Axon 7 -> OnePlus 6T -> Oppo Find X2 PRO -> Google Pixel 9 PRO XL
Reply

Marsh Posté le 12-05-2003 à 11:16:40    

Ah oui il est dispo en .zip pour la 5.6
 
Il pourrait passer ce .zip sur la 5.8 ou il faut que je reinstalle la 5.6 ?
 
Comment installe t-on un module .zip ?

Reply

Marsh Posté le 12-05-2003 à 11:22:31    

bezot3 a écrit :

Il pourrait passer ce .zip sur la 5.8 ou il faut que je reinstalle la 5.6 ?

J'éviterais une telle bidouille à ta place, le module DBI de la 5.8.0 étant différent de celui pour la 5.6.1, je me lancerais pas dans un truc aussi hasardeux :(  
 

bezot3 a écrit :

Comment installe t-on un module .zip ?

Tout est dans ce topic déjà, Stef_Doberman en a parlé, moi aussi, tu as toute la procédure :D
 
Ouaip, je pense que le mieux va être d'installer la 5.6.1, tu auras moins d'embrouilles qu'avec la 5.8.0


---------------
Samsung Galaxy S1 -> Samsung Galaxy S2 -> Samsung Note 2 -> Huawei Ascend Mate 7 -> ZTE Axon 7 -> OnePlus 6T -> Oppo Find X2 PRO -> Google Pixel 9 PRO XL
Reply

Marsh Posté le 12-05-2003 à 11:29:24    

ok merci, je tente ca et je te tiens au courant...

Reply

Marsh Posté le 12-05-2003 à 11:30:18    

Petit complément d'infos pour t'aider.
 
Tout d'abord, tu vires la 5.8.0 que tu remplaces par la version 5.6.1 (ActiveState aussi). Lors de l'installation, assure-toi que les path de ton Windows seront mis à jour avec les chemins d'accès à l'endroit où va s'installer Perl.
 
Ensuite, ouvre une console Ms-Dos et suis cette procédure ci-dessous :

Code :
  1. C:\>ppm
  2. PPM interactive shell (2.1.5) - type 'help' for available commands.
  3. PPM>install DBI
  4. PPM>install DBD-Oracle
  5. PPM> exit
  6. Quit!
  7. C:\>


PPM est un shell interne à Perl, c'est un utilitaire excellent pour installer les packages que tu veux, il va les chopper tout seul sur le net, les installe, met tout bien à jour comme il faut.
 
Avec la 5.6.1, l'installation successive de DBI et de DBD-Oracle est une obligation (et dans cet ordre car DBD-Oracle dépend en partie de DBI).
 
Avec tout ça, tu devrais pouvoir t'en sortir maintenant, croise les doigts hein !  :lol:  


---------------
Samsung Galaxy S1 -> Samsung Galaxy S2 -> Samsung Note 2 -> Huawei Ascend Mate 7 -> ZTE Axon 7 -> OnePlus 6T -> Oppo Find X2 PRO -> Google Pixel 9 PRO XL
Reply

Marsh Posté le 12-05-2003 à 11:49:52    

Ca marche nickel avec la version 5.6 !!
 
Ouf !
 
ppm instal DBI
 
et ensuite ppm install DBD-Oracle.ppd (car ce module n'est pas dispo autrement qu'en zip ...)
 
Bon reste plus qu'a faire la meme chose sous unix...
 
Merci a toi !

Reply

Marsh Posté le 12-05-2003 à 11:51:25    

bezot3 a écrit :

Merci a toi !

de rien, ça roule :)


---------------
Samsung Galaxy S1 -> Samsung Galaxy S2 -> Samsung Note 2 -> Huawei Ascend Mate 7 -> ZTE Axon 7 -> OnePlus 6T -> Oppo Find X2 PRO -> Google Pixel 9 PRO XL
Reply

Marsh Posté le 03-09-2009 à 18:41:52    

dbi connect('oracle','delphi',...) failed  
error ocinisenvironmentvariableget(oci_nls_charset_id)
check oracle_home and nls setting etc  
erreur survenue lors de l'execution de la connexion

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed