Bonjour,
Voilà, j'ai un petit soucis. Je dois, à partir d'un fichier .ksh, parcourir une table en pl/sql.
Seulement, dans cette table, il peut y avoir des éléments faux.
Ma question est la suivante : Est-ce possible, à partir d'une requête pl/sql, d'écrire dans 2 fichiers d'output? Dans le premier, on trouvera les bons éléments formatés selon mes besoins, dans le second, les éléments faux. Tout cela en parcourant une seule fois mon vecteur.
Voici une partie simplifiée de mon code :
Pour le moment, dans mon FILE_CSV, j'ai à la fois mes bonnes lignes, mais aussi mes lignes d'erreurs.
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 function Treatment { sql_file=${BINPATH}/${FILE_BEGIN}.sql cat << __EOF__ > ${sql_file} set serveroutput on set line 155 DECLARE g_occ NUMBER(38,2):=0; CURSOR MHMEntries IS Select * FROM tmp_mhm; BEGIN FOR row IN MHMEntries LOOP g_occ:= '...mes calculs...'; IF g_occ >= 0 THEN dbms_output.put_line(row.coid||'|'||g_occ||';'); ELSE dbms_output.put_line('Erreur : XXX'); END IF; END LOOP; END; / EXIT; __EOF__ sqlplus -s ${DB_LOGIN}/${DB_PASSWORD} @$sql_file >> ${FILE_CSV} rm -f ${sql_file} }
J'ai créé un FILE_ERR, mais je ne sais pas comment définir 2 sorties différentes à partir d'une seule requête pl/sql.
Merci.
Partager