Posez votre question Signaler

Perl et SQL

gothen - Dernière réponse le 12 juin 2006 à 09:26
Bonjour,
Je voudrais savoir comment faire pour récuperer via sqlplus le résultat d'une requete SQL.
Je sais le faire en utilisant un fichier tmp_spool...aprés je dois parser ce fichier pr trouver le résultat de la requete.
Comment avoir directement le résultat?

Mon code avec le fichier de sortie tmp_spool:

open(SQLPLUS,"|sqlplus $db_user/$db_pass$D1KEU2|");
print "sqlplus $db_user/$db_pass$D1KEU2";
print SQLPLUS "spool $tmp_spool\n";
print SQLPLUS ("select status from sc_job_tco where job_id=24;\n");
print "select status from sc_job_tco where job_id=24;\n"
print SQLPLUS "spool off\n";
print SQLPLUS "quit\n";
close(SQLPLUS);

Le but étant de récupere directement dans une variable le status de la requete "select status from sc_job_tco where job_id=24;"

Je ne veux pas utiliser le module DBI.

Merci d'avance pr ceux qui pourront m'orienter.
Lire la suite 

Perl et SQL »

6 réponses
Réponse
+0
moins plus
Pas d'idée?:p
Ajouter un commentaire
Réponse
+0
moins plus
Salut,

Tu dit que Je sais le faire en utilisant un fichier tmp_spool... et ensuite aprés je dois parser ce fichier pr trouver le résultat de la requete.


Donc ton prolbème est où? D'après ce que je comprends c'est plutôt dans le parsing que dans la récuperation tant que tu utilise tmp_spool?

Et pour le parsing tu n'as pas besoin de DBI.

En bref je n'ai pas bien compris où et ton problème. Merci.

lami20j
gothen - 9 juin 2006 à 12:31
salut!
je sais faire du sqlplus dans un fichier comme sur l'exemple dans tmp_spool...mon probléme c'est que je voudrais faire du sqlplus sans passer par un fichier:
executer la requete et récuperer la ou les valeurs que me retourne ma requete dans une variable ou un tableau.Est-ce possible?
Sans quoi je serai oblié de travailler avec le fichier tmp_spool.
gothen - 9 juin 2006 à 12:31
salut!
je sais faire du sqlplus dans un fichier comme sur l'exemple dans tmp_spool...mon probléme c'est que je voudrais faire du sqlplus sans passer par un fichier:
executer la requete et récuperer la ou les valeurs que me retourne ma requete dans une variable ou un tableau.Est-ce possible?
Sans quoi je serai oblié de travailler avec le fichier tmp_spool.
Ajouter un commentaire
Réponse
+0
moins plus
Salut,

open(SQLPLUS,"|sqlplus $db_user/$db_pass$D1KEU2|");


Tu as ouvert un handle en lecture.

Essaie d'utiliser le mode slurp
undef $/;
my $var = <SQLPLUQ>;
# ensuite traitement de $var
Ou avec une boucle
while ( <SQLPLUS> ) {
 #traitement
}
lami20j
Ajouter un commentaire
Réponse
+0
moins plus
Merci pour ta réponse...je suis pas hyper doué mais voila ce que j'ai essayé:
open(SQLPLUS,"|sqlplus $db_user/$db_pass$D1KEU2 \@temp.sql|");
undef $/;
my $var = <SQLPLUS>;
print "le resultat est $var";

Sachant que dans tem.sql, le résultat de la requete(select status from sc_job_tco where job_id=24;) est 'D'
Merci lamij20
Ajouter un commentaire
Ce document intitulé « Perl et SQL » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
5 extensions si vous voulez revenir à l'ancien Facebook