Bonjour à tous,

J'ai un script shell execute_sript.sh sous linux qui appelle une commande sqlplus
Ce script sqlplus fait appel à un fichier sql : papa.sql
dans ce fichier papa.sql sont appelé d'autre fichiers fils1.sql, fils2.sql

Autrement dit :
mon script linux contient la ligne suivante :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
sqlplus login/pass@tns @papa.sql
dans mon fichier papa.sql j'ai les lignes suivantes :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
 
@repertoire/fils1.sql
@repertoire/fils2.sql
Si j'execute mon script en ayant pris soin de me placer dans le même répertoire que papa.sql, mon script fonctionne.

Par contre si je l'appelle depuis le cron ou d'un autre reperoire de la manière suivante :
/home/user/execute_sript.sh
j'ai les erreurs suivantes :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
SP2-0310: unable to open file "repertoire/fils1.sql"
Sachant que je ne peux pas savoir à l'avance où les utilisateur vont placer le dossier contenant mon script et les fichiers sql,
Ma question est la suivante : comment dans mon script dire qu'il faut que je me mette dans le bon répertoire, commande linux ou sql.

Je précise que si je fait
Code : Sélectionner tout - Visualiser dans une fenêtre à part
cd /home/user/; ./execute_sript.sh
Mon script fonctionne, par contre si je mets la même ligne dans le cron, ca marche pô

Merci de votre aide