sql plus, charger un fichier sql a la connexion ?

sql plus, charger un fichier sql a la connexion ? - SQL/NoSQL - Programmation

Marsh Posté le 06-04-2007 à 16:44:17    

Hello,

 


je cherche a executer un .sql en ligne de commande avec sql plus.
La doc dit:

 

connexion puis @fichier.sql:

 

sqlplus login/pass <<ENDSQL
@merge_pau.sql
ENDSQL

 

ca ne marche pas chez moi, ca affiche "70"

 

J'ai aussi essayé sqlplus login/pass @fichier.sql
puis:
sqlplus login/pass < fichier.sql
résultat:
SQL>   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   48   49   50   51   52   53   54   55   56   57   58   59   60   61   62   63   64   65   66   67   68   69   70  Disconnected from Oracle Database 10g Enterprise...

 

mon fichier contiens un merge que j'aimerai automatiser.

 

Pouvez vous m'aider ?

 

Merci

 


Message édité par veryfree le 06-04-2007 à 16:44:43
Reply

Marsh Posté le 06-04-2007 à 16:44:17   

Reply

Marsh Posté le 06-04-2007 à 16:45:49    

"sqlplus login/pass @fichier.sql" <= ça tout court à la ligne d'invite de la console ça marche pas :??: (à noter que je ne vois pas ton tns dans la commande)

Reply

Marsh Posté le 06-04-2007 à 16:49:41    

le tns il doit le trouver tout seul vu que c'est executé sur la machine qui fait tourner l'instance. ( j imagine que j'aurai eu une erreur sinon ; ) )
 
La commande sqlplus login/pass @fichier.sql renvois:

Citation :


SQL*Plus: Release 10.2.0.3.0 - Production on Fri Apr 6 16:46:06 2007
 
Copyright (c) 1982, 2006, Oracle.  All Rights Reserved.
 
 
Connected to:
Oracle Database 10g Enterprise Edition Release 10.2.0.3.0 - 64bit Production
With the Partitioning, OLAP and Data Mining options
 
 70
 


 
any idea ?


Message édité par veryfree le 06-04-2007 à 16:54:54
Reply

Marsh Posté le 06-04-2007 à 17:17:38    

ton script est peut-être mal gaulé, et il attend sûrement la suite d'une commande

Reply

Marsh Posté le 13-04-2007 à 17:52:49    

en fait il manquait un dos2unix sur mon fichier ( qui contenait des car windows )
et aussi un petit commit; a la fin pour valider mon merge.
 
 
Voila, au cas ou quelqu'un rencontre le meme soucis ;)

Reply

Marsh Posté le 10-01-2008 à 10:12:56    

Bonjour,
 
Je rencontre le même problème.
Le 70 correspond au nombre de ligne dans le fichier SQL.
 
J'ai essayé de convertir le fichier avec le script ansi2oem et cela revient au même.
Un COMMIT est également présent à la fin de mon fichier :
 
    END IF;
      COMMIT;
   END LOOP;  
END;
 
Que puis-je faire.
Merci de votre aide.
 
A noter que je suis sur Windows XP ou Vista et que j'utilise "sqlplus login/pass@base @fichier.sql"

Message cité 1 fois
Message édité par furb59 le 10-01-2008 à 10:14:47
Reply

Marsh Posté le 12-01-2008 à 22:03:00    

furb59 a écrit :

Bonjour,
 
Je rencontre le même problème.
Le 70 correspond au nombre de ligne dans le fichier SQL.
 
J'ai essayé de convertir le fichier avec le script ansi2oem et cela revient au même.
Un COMMIT est également présent à la fin de mon fichier :
 
    END IF;
      COMMIT;
   END LOOP;  
END;
 
Que puis-je faire.
Merci de votre aide.
 
A noter que je suis sur Windows XP ou Vista et que j'utilise "sqlplus login/pass@base @fichier.sql"


 
 
Il faut ajouter une ligne avec juste / à la fin pour lancer le bloc plsql

Reply

Marsh Posté le 14-01-2008 à 15:10:02    

Merci beaucoup cela fonctionne, par contre la fenetre ne se ferme pas automatiquement, y-a-t-il une instruction a rajouter ?

Reply

Marsh Posté le 14-01-2008 à 21:46:20    

il faut quitter sqlplus en faisant

Code :
  1. exit;

à la fin de ton fichier sql

Reply

Marsh Posté le 15-01-2008 à 16:14:48    

Super, merci beaucoup de votre aide...

Reply

Sujets relatifs:

Leave a Replay

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