lancement d'un script sql

lancement d'un script sql - Shell/Batch - Programmation

Marsh Posté le 02-11-2005 à 15:45:15    

J'ai réalisé un fichier transfert_table.sh, ressemblant à ceci:
 

Code :
  1. #------------------------------------------------#
  2. # -- (1) VERIFICATION DU NOMBRE DE PARAMETRES -- #
  3. #------------------------------------------------#
  4. if [ $# -ne 2 ]
  5. then
  6.      echo "\nERREUR DANS LE NOMBRE DE PARAMETRES : "
  7.      echo "SYNTAXE : $0 USR PWD"
  8.      echo " - USR : Nom du login oracle"
  9.      echo " - PWD : Mot de passe oracle \n"
  10.      exit 1
  11. else
  12.      USR=$1
  13.      PWD=$2
  14. fi
  15.   #-------------------------------------#
  16. # -- (2) DECLARATION DES VARIABLES -- #
  17. #-------------------------------------#
  18.    
  19. # FICHIER DE TRACE
  20. FIC_TRACE=$SH_LOG/exemple.trc
  21. # FICHIER DE SCRIPT SQL
  22. SCRIPT_SQL = $FIC_SQL/copieTable.sql
  23. sqlplus -s $USR/$PWD@bouclage_v3 $SCRIPT_SQL  >> $FIC_TRACE
  24. codret=$?
  25. if [ $codret != 0 -a $codret != 2 ]
  26. then
  27.      echo "===========================================================" >>$FIC_TRACE
  28.      echo "= Probleme lors du chargement de la table                 =" >>$FIC_TRACE
  29.      echo "= FIN DU TRAITEMENT EN ERREUR                             =" >>$FIC_TRACE   
  30.      date >>$FIC_TRACE
  31.      echo "===========================================================" >>$FIC_TRACE   
  32.      exit 1
  33. else
  34.      echo "=> FIN SQLPLUS SANS ERREUR" >>$FIC_TRACE
  35.      echo "" >>$FIC_TRACE
  36. fi
  37. exit 0
  38. #EOF#


 
Et quand je l'execute j'ai comme erreur :  
 

Code :
  1. ksh: transfert_table.sh: cannot execute


 
Je ne comprends pas ce qi est incorrect

Reply

Marsh Posté le 02-11-2005 à 15:45:15   

Reply

Marsh Posté le 02-11-2005 à 16:41:08    

Il a les droits d'exécution, ton fichier?[:petrus75]


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 02-11-2005 à 16:47:40    

comment je peux faire pour le voir?

Reply

Marsh Posté le 02-11-2005 à 16:48:27    

ou pour lui donner les droits d'execution?

Reply

Marsh Posté le 02-11-2005 à 16:49:28    

man ls?
man chmod?


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 02-11-2005 à 16:49:50    

d'accord j'avais bien un probleme avec les droit d'execution mais j'ai aussi un probleme sur la ligne de commande sqlplus mais je ne vois pas ou

Reply

Marsh Posté le 02-11-2005 à 16:52:40    

il te dit quoi?


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 02-11-2005 à 16:56:13    


Code :
  1. Syntaxe : SQLPLUS [<option>] [logon] [<start>] ]
  2. où <option> ::= -H | -V | [ [-L] [-M <o>] [-R <n>] [-S] ]
  3.       <logon>  ::= <nom-utilisateur>[/<mot-passe>][@<chaîne_connexion>] | / | /NOLOG }
  4.       <start>  ::= @<URI>|<nom-fichier>[.<ext>] [<paramètre> ...]
  5.         "-H" affiche le numéro de version de SQL*Plus et la syntaxe
  6.         "-V" affiche le numéro de version de SQL*Plus
  7.         "-L" tente de se connecter une seule fois
  8.         "-M <o>" utilise les options de balisage HTML <o>
  9.         "-R <n>" utilise le mode restreint <n>
  10.         "-S" utilise le mode silencieux

Reply

Marsh Posté le 02-11-2005 à 16:57:34    

...bah débrouille toi pour générer une syntaxe correcte, alors! [:mlc]


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 02-11-2005 à 17:00:25    

oui mais pour moi ma syntaxe est correcte..

Reply

Marsh Posté le 02-11-2005 à 17:00:25   

Reply

Marsh Posté le 02-11-2005 à 17:03:32    

Dans ton code il y a un -s, et dans le message d'erreur un -S...:o


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 03-11-2005 à 20:34:40    

pour commencer, mettre une ligne de shebang :

Code :
  1. #!/bin/ksh


lorsque l'on exécute un script qui est exécutable (exécutable par un chmod +x) il va interpréter la shebang line
sous linux c'est un peu plus souple mais genre des vieux AIX ou Solaris il faut la ligne de shebang
 
ensuite pour sqlplus, il est possible d'appeler directement ton script avec @
 

Code :
  1. sqlplus user/passwd@SID @script.sql


 
si tu veux un mode silencieux, mettre plutôt un "echo off;" dans ton .sql

Reply

Marsh Posté le 04-11-2005 à 09:52:46    

Qu'est ce qu'on shebang???
 
A quoi sert le echo off?? En fait quand moi je lance le script dans ma console il m'ouvre sqlplus dans la console. Est ce possible de le fermer dans mon shell

Reply

Marsh Posté le 04-11-2005 à 11:04:12    

ligne de shebang = 1ère ligne de ton fichier pour spécifier l'exécutable qui va être utilisé quand tu exécutes ton script
 
pour quitter sqlplus, tu ajoutes "exit;" à la dernière ligne de ton script .sql

Reply

Sujets relatifs:

Leave a Replay

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