Bonjour,
je galère sur un truc qui à mon avis doit être tout bête.
Quand je suis en root et que je tape successivement :
je n'ai aucun souci :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 [root@XXXXX log_jour]# su - userl --command="sqlplus form/form <<FIN > select to_char(sysdate,'dd.mm.yyyy hh24:mm:ss') from dual; > FIN"
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 SQL*Plus: Release 10.2.0.4.0 - Production on Thu Feb 10 16:29:37 2011 Copyright (c) 1982, 2007, Oracle. All Rights Reserved. Connecte a : Oracle Database 10g Release 10.2.0.4.0 - 64bit Production SQL> TO_CHAR(SYSDATE,'DD ------------------- 10.02.2011 16:02:37 SQL> Deconnecte de Oracle Database 10g Release 10.2.0.4.0 - 64bit Production
En revanche quand je l'intègre dans un script (en environnement ksh), je n'arrive pas à obtenir le résultat de la requête, il bloque sur le login de connexion sqlplus, il me le redemande comment s'il s'était arrêté à la commande sqlplus. Du coup j'ai essayé un paquet de solutions mais pour le moment je n'ai pas trouvé la bonne. Il lui faut à priori des retours à la ligne dans le code, j'ai donc tenté cela sans succès :
Le problème à mon sens se situe au niveau des guillemets, qu'en pensez-vous svp ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 su - userl --command="sqlplus form/form <<FIN\r\n select to_char(sysdate,'dd.mm.yyyy hh24:mm:ss') from dual;\r\n FIN"
NB : j'ai créé un autre script contenant ma commande sqlplus en totalité (sans les retours chariots). Quand j'appelle ce script avec unça fonctionne. Ce qui m'embête c'est que ça fait un script qui appelle un autre script et vu que je dois le faire régulièrement pour d'autres tâches, ça va m'en faire une sacré liste (et donc un sacré bordel).
Code : Sélectionner tout - Visualiser dans une fenêtre à part su - userl -c monscript
Partager