Slt, comment on peut manipuler les donnees
d'une base oracle 8.0 en lecture et en ecriture
à l'aide de Perl :king:
svp,vous pouvez m'envoiyer un exemple exécutable et merci d'avance
je suis débutant en Perl
Version imprimable
Slt, comment on peut manipuler les donnees
d'une base oracle 8.0 en lecture et en ecriture
à l'aide de Perl :king:
svp,vous pouvez m'envoiyer un exemple exécutable et merci d'avance
je suis débutant en Perl
Bonjour,
il te faut utiliser le module DBI.pm, lequel figure déjà dans ta distribution Perl normalement.
Petite doc : http://search.cpan.org/~timb/DBI/DBI.pm
le probleme que j'applique ces intructions et il m'affiche l'erreur suivant:
:(:(:(:(:(Code:
1
2
3
4
5 install_driver(Oracle) failed: Can't locate DBD/Oracle.pm in @INC (@INC contains: C:/Perl/site/lib C:/Perl/lib .) at (eval 4) line 3. Perhaps the DBD::Oracle perl module hasn't been fully installed, or perhaps the capitalisation of 'Oracle' isn't right. Available drivers: DBM, ExampleP, File, Gofer, Proxy, SQLite, Sponge. at 5.txt line 3
ok, alors dans une fenêtre MS-DOS, tape ceci au prompt :
Code:ppm install DBD::Oracle
il m'affiche l'ecran suivant :
;)Code:
1
2
3
4
5
6 C:\Documents and Settings\Administrateur>ppm install DB::Oracle Downloading ActiveState Package Repository packlist...done Updating ActiveState Package Repository database...done ppm install failed: Can't find any package that provide DB::Oracle C:\Documents and Settings\Administrateur>
Heu, relis mon message, je n'ai jamais parlé de DB::Oracle, mais plutôt DBD::Oracle...
je suis desolee ,ca va la cmd "
mais j'ai un pb avec le code suivant
comment on choisit le nom de la BDD ,je construire ma base comme suivantCode:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 use strict; use DBI; my $Bdd = "DBI:Oracle::ORCL"; # nom de ta BDD my $User = "utilsateur"; # nom du user A CHANGER ! my $Pass = "motpasse"; # passwd user A CHANGER my $dbh; # handle sur la base if ($dbh = DBI->connect($Bdd, $User, $Pass)) { print "Connexion reussie !!!\n"; } else { print "ERREUR : $DBI::errstr\n"; }
et perl m'envoyer l'erreur suivantCode:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47 /* creation de table */ CREATE TABLE place_disp ( code_vol varchar2(6), ville_depart varchar2(20), ville_arrivee varchar2(20), heure_depart varchar2(6), heure_arrive varchar2(6), date_depart date, classe varchar2(10), nb_place_dispo NUMBER, prix NUMBER, CONSTRAINT pk1 PRIMARY KEY (code_vol)); CREATE TABLE reserv ( code_fact NUMBER, nom_client varchar2(20), code_vol varchar2(6), ville_depart varchar2(20), heure_depart varchar2(6), ville_arrivee varchar2(20), heure_arrive varchar2(6), date_depart date, classe varchar2(10), prix NUMBER, accompte NUMBER, CONSTRAINT pk2 PRIMARY KEY (code_fact)); commit; /* insersion des données */ insert into place_disp values('AI132','PARIS','NICE','10H00','11H20','22-06-95','ECO',8,400); insert into place_disp values('AF330','LILLE','TOULOUSE','22H30','23H50','23-07-95','CLUB',16,1030); insert into place_disp values('BA120','PARIS','LONDRES','15H40','17H00','21-08-95','PREM',8,2500); insert into place_disp values('AF562','NICE','PARIS','21H00','22H20','21-07-95','ECO',44,400); insert into place_disp values('AF457','NICE','PARIS','22H00','23H20','21-07-95','ECO',20,400); insert into place_disp values('IB120','LISBONNE','LILLE','12H00','14H30','10-08-95','CLUB',23,3000); insert into place_disp values('KL498','AMSTERDAM','NICE','17H00','19H30','17-09-95','ECO',60,1500);
"voir l'image jointée svp"
il m'affiche l'erruer suivant
Code:
1
2
3
4
5
6 DBI connect(':ORCL','IA3B2',...) failed: ORA-12154: TNS : l'identificateur de co nnexion indiquÚ n'a pas pu Ûtre rÚsolu (DBD ERROR: OCIServerAttach) at d:\4.txt line 8 ERREUR : ORA-12154: TNS : l'identificateur de connexion indiquÚ n'a pas pu Ûtre rÚsolu (DBD ERROR: OCIServerAttach)
Modifie ces lignes là dans ton script pour voir :
Code:
1
2
3
4 use strict; use DBI; use DBD::Oracle; my $Bdd = "DBD::Oracle::ORCL"; # nom de ta BDD
ca ne marche pas aussi ,le pb est le meme
cette cmd produite le meme erreur
je ne sais pas pour quoiCode:$dbh = DBI->connect($Bdd, $User, $Pass)
Est ce que on ecrit "DBD::Oracle::ORCL" comme ça ou il faut que je le modifier?
je le copier et la meme chose se produit
C'est tres urgent,si tu peut svp de m'aider
Ben non, là j'en sais pas plus, désolé
c'est domage , merci pour votre aide mon ami:king:
a la creation de ma base de donnee sur l'oracle:j'utilise le code suivant
donc j'ai le nom d'utilisateur est "IA3B2" et le mot de passe est "RAMA"Code:
1
2
3 create user IA3B2 identified by RAMA; grant dba to IA3B2;
mais dans le code suivant
comment je peut determiner le nom de la base oracle ".......":(Code:
1
2
3
4
5
6
7
8
9
10
11 #!/usr/bin/perl use DBI; use DBD::Oracle; use strict; system("pause"); my $dbname = '......'; my $user = 'IA3B2'; my $passwd = 'RAMA'; my $dbh = DBI->connect("dbi:Oracle:$dbname", $user, $passwd)|| die "Database connection not made: $DBI::errstr"; $dbh -> disconnect;
et merci pour ton aide:coucou:
Pour le code ,ca marche mais je l'essayer dans un autre PC de mon ami qui utilise LINUX comme un system d'exploitation mais pour mon pc (windows XP) je ne sais pas où est l'erreur, en tous cas je vous remerci pour votre aide et j'attend votre proposition pour le Xp :yaisse2:
pour le code suivant
le Perl retourne l'erreur suivantCode:
1
2
3
4
5
6
7
8
9
10
11
12 #!/usr/bin/perl use DBI; use DBD::Oracle; use strict; my $dbname = 'ORCL'; my $user = 'IA3B2'; my $passwd = 'RAMA'; printf(" Test connexion"); my $dbh = DBI->connect("dbi:Oracle:$dbname", $user, $passwd)|| die "base connection not"; printf("reussite"); $dbh -> disconnect;
"voir l'image jointée"
comment tu connaitre le nom de ta base
parceque je ne sais pas comment le faireCode:my $db = 'DBI:oracle:mabase:@ipBDD';
merci d'avance mon ami
car il m'affiche l'erreur suivant
l'erreur se produit lors de la commandeCode:Can't connect to data source 'dbd:Oracle:ORCL' because I can't work out what driver to use (it doesn't seem to contain a 'dbi:driver:' prefix and the DBI_DRIVER env var is not set) at 4.txt line 10
Code:my $dbh = DBI->connect("dbi:Oracle:$dbname", $user, $passwd)|| die "base connection not";
Merci Wild classi