Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1867 connectés 

  FORUM HardWare.fr
  Programmation
  Perl

  [PERL] se connecter a une base Oracle avec DBI

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[PERL] se connecter a une base Oracle avec DBI

n°386231
bezot3
Posté le 07-05-2003 à 16:48:33  profilanswer
 

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

mood
Publicité
Posté le 07-05-2003 à 16:48:33  profilanswer
 

n°386517
stef_dober​mann
Personne n'est parfait ...
Posté le 07-05-2003 à 20:52:24  profilanswer
 

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...
n°387887
bezot3
Posté le 09-05-2003 à 09:00:19  profilanswer
 

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

n°387905
Aricoh
gentil mais fo po pousser
Posté le 09-05-2003 à 09:26:59  profilanswer
 

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
n°387979
stef_dober​mann
Personne n'est parfait ...
Posté le 09-05-2003 à 10:35:38  profilanswer
 

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


---------------
Tout à commencé par un rêve...
n°387983
Aricoh
gentil mais fo po pousser
Posté le 09-05-2003 à 10:37:13  profilanswer
 

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
n°388708
bezot3
Posté le 09-05-2003 à 20:44:06  profilanswer
 

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.

n°390005
bezot3
Posté le 12-05-2003 à 08:07:12  profilanswer
 

Plus personne pour m'aider ???

n°390010
Aricoh
gentil mais fo po pousser
Posté le 12-05-2003 à 08:18:14  profilanswer
 

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
n°390049
bezot3
Posté le 12-05-2003 à 09:27:33  profilanswer
 

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

mood
Publicité
Posté le 12-05-2003 à 09:27:33  profilanswer
 

n°390052
Aricoh
gentil mais fo po pousser
Posté le 12-05-2003 à 09:30:50  profilanswer
 

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
n°390057
bezot3
Posté le 12-05-2003 à 09:37:35  profilanswer
 

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 !

n°390061
Aricoh
gentil mais fo po pousser
Posté le 12-05-2003 à 09:43:17  profilanswer
 

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
n°390063
Aricoh
gentil mais fo po pousser
Posté le 12-05-2003 à 09:44:20  profilanswer
 

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
n°390069
bezot3
Posté le 12-05-2003 à 09:52:23  profilanswer
 

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 !

n°390086
Aricoh
gentil mais fo po pousser
Posté le 12-05-2003 à 10:13:14  profilanswer
 

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
n°390095
bezot3
Posté le 12-05-2003 à 10:24:39  profilanswer
 

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

n°390096
Aricoh
gentil mais fo po pousser
Posté le 12-05-2003 à 10:28:35  profilanswer
 

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
n°390125
bezot3
Posté le 12-05-2003 à 10:50:11  profilanswer
 

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 ...

n°390135
Aricoh
gentil mais fo po pousser
Posté le 12-05-2003 à 10:56:21  profilanswer
 

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
n°390162
bezot3
Posté le 12-05-2003 à 11:16:40  profilanswer
 

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 ?

n°390180
Aricoh
gentil mais fo po pousser
Posté le 12-05-2003 à 11:22:31  profilanswer
 

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
n°390197
bezot3
Posté le 12-05-2003 à 11:29:24  profilanswer
 

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

n°390200
Aricoh
gentil mais fo po pousser
Posté le 12-05-2003 à 11:30:18  profilanswer
 

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
n°390226
bezot3
Posté le 12-05-2003 à 11:49:52  profilanswer
 

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 !

n°390230
Aricoh
gentil mais fo po pousser
Posté le 12-05-2003 à 11:51:25  profilanswer
 

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
n°1921036
mandymoor
Posté le 03-09-2009 à 18:41:52  profilanswer
 

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

mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Perl

  [PERL] se connecter a une base Oracle avec DBI

 

Sujets relatifs
[ PHP ] Remplacer une expression dans une base de donnéesPERL : recuperer les 250 premiers caracteres d'un fichier...
[PHP](debutant) image et base de donnéePossible de se connecter a une base free mysql avec java/Mysqfront ??
crypter un mot de passe avant insertion dans Oracle ?[Oracle] utiliser une sequence dans une insertion
[PERL] executer une commande (facile)... [resolu]Qu'utilisez vous comme gestionnaire de base de données ????
[Oracle] n00b queries help (je maitrise pas les sub queries) 
Plus de sujets relatifs à : [PERL] se connecter a une base Oracle avec DBI


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR