[KSH][PL/SQL] - Deux fichiers output
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 :
Code:
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}
} |
Pour le moment, dans mon FILE_CSV, j'ai à la fois mes bonnes lignes, mais aussi mes lignes d'erreurs.
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.