Bonjour,

voilà une question "classique" à laquelle j'ai trouvé 10 000 réponses sur le net mais aucun ne fonctionne pour mon cas qui me parait pourtant assez banal

J'ai un shell :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
#!/bin/ksh
#---------------------------------------------------------------------
echo "LANCEMENT !"
SORTIE=`sqlplus -S apps/apps @./sql.sql`
echo $SORTIE
echo "FIN !"
Et je veux que la variable SORTIE soit alimentée par le fichier "sql.sql" qui est :

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
16
17
18
19
20
21
22
23
24
25
Set heading OFF
Set linesize 1000
Set feedback OFF
Set echo OFF
Set verify OFF
Set serveroutput On
Set SERVEROUTPUT ON SIZE 1000000

WHENEVER sqlerror exit FAILURE ROLLBACK;

declare
  i number;
begin
	dbms_output.put_line('Mes messages de LOG');
	dbms_output.put_line('Mes messages de LOG');
	dbms_output.put_line('Mes messages de LOG');
	null;
        return 0;
exception
  when others then
    null;
end;
/
show error;
exit;
Le return ne fonctionne pas mais c'est l'idée de ce que je voudrais.

Je ne veux pas que SORTIE contienne un grep du spool de mon sql car j'ai plein de message de debug, j'ai essayé exit 0; , j'ai essayé WHENEVER sqlerror exit 1 ROLLBACK; j'ai essayé un :sortie = 0; enfin tout ce que je trouvais mais rien ne fonctionne.

Auriez-vous une idée ?

Merci