connexion à une base avec sqlplus

connexion à une base avec sqlplus - Perl - Programmation

Marsh Posté le 29-03-2007 à 11:07:48    

Salut,
 
J'arrive à me connecter à une base avec DBI,(je suis sur une machine windows)
et je voulais tester une connexion avec sqlplus, car il se pourrait que la machine ou je dois mettre mon script n'est pas DBI et que je ne puisse pas l'installer;
donc j'ai essayer ceci
 

Code :
  1. open(SQLPLUS,"|sqlplus -s user/pass\@base <<EOF\n" );
  2. open(SQLPLUS,"select name from customer where id=33;\n" );
  3. open(SQLPLUS,"exit\n" );
  4. open(SQLPLUS,"EOF\n" );
  5. undef $/;
  6. my $var = <SQLPLUS>;
  7. print "name is $var";


 
le probleme est que cela ne me retourne rien;
j'ai cela à l'affichage alors que dans ma base j'ai bien une valeur pour 33.

Citation :

<< était inattendu.
name is


 
Est-ce que quelqu'un a deja experimenter cette façon ?
 
 
MErci.


Message édité par donny3 le 29-03-2007 à 11:14:02
Reply

Marsh Posté le 29-03-2007 à 11:07:48   

Reply

Marsh Posté le 29-03-2007 à 11:24:06    

c'est possible que sous unix, c'est pour cela ?

Reply

Marsh Posté le 29-03-2007 à 15:29:18    

c'est plus un pb shell que perl
la syntaxe que tu utilises est pour unix, je te recommande plutôt d'utiliser une syntaxe "passe-partout" de ce style :

Code :
  1. sqlplus user/pass@SID @"chemin_complet_du_script_sql"


Cette commande shell marche sous unix et sous windows, il ne te reste plus à l'encapsuler dans ton perl

Reply

Marsh Posté le 03-04-2007 à 13:05:26    

Et puis surtout, il faut tout mettre dans le même open. Là, ton 2ème open essaie d'ouvir un fichier appelé "select name from customer where id=33;".

Reply

Sujets relatifs:

Leave a Replay

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