Existe-t-il une commande sql * plus pour supprimer \r
\n
et \t
du jeu de résultats qui sort dans le fichier spoule? C'est, "couper" chaque enregistrement?sqlplus remove r n t from spool
Nous avons utilisé set trim on
dans le passé, mais cela ne semble pas être ce dont nous avons besoin en ce moment. J'essaie d'éviter d'appeler les fonctions chr, de Oracle, dans la requête sql.
Par exemple,
set termout off
set spool somefile.dat
set lin 600
select data from mytable;
set spool off;
exit;
Ma requête renvoie cette
|DATA|
|\n \t\t\t\t\t thisistheactualdata \t\t\t\t\t\t\n|
et je voudrais garder dans mon spool
thisistheactualdata
mise à jour
bien , nous avons fini par faire quelque chose li ke ceci.
set tab off;
spool /home/oracle/out.dat
set linesize 20
set termout off
set trim on
select regexp_replace(l,'(\t|\n)','') from test;
spool off;
exit;
Mais quelques mauvaises nouvelles: Nous devons exécuter cet oracle dans 8 et regexp_replace ne semble pas être disponible. :(
Merci à l'avance.
Voulez-vous dire la suppression de ces personnages quand ils font partie des données (par opposition à Streaming Sortie SQL * Plus sans les caractères qu'elle fournit)? – dpbradley
Oui, supprimez-les des colonnes de sortie. – Tom
Si vous avez installé le paquet OWA_PATTERN, pourriez-vous écrire votre propre fonction wrapper pour imiter regexp_replace()? Peut-être une fonction générique strip/trim pour simplifier les requêtes - donc si vous trouvez un autre caractère que vous voulez supprimer, vous pouvez changer la fonction plutôt que toutes les requêtes. –