à quoi sert XML ;)
Par Renaud Gaudin le jeudi 10 mai 2007, 15:52 - Oracle - Lien permanent
résumé temporaire csv format with select *
L. Schneider propose d'utiliser des fonctions XML pour générer des fichiers de données csv (comma separated).
Fini les select champ1 || champ2 || champn from ma table?
Une solution (clob) est proposée pour des lignes de plus de 4000 caractères (!)
un lien nous propose d'utiliser la fonction regexp_replace
SQL> select regexp_replace(column_value,'\s*<^>*>^>*>',',')
2 from table(xmlsequence(cursor(select * from emp)));
REGEXP_REPLACE(COLUMN_VALUE,'\S*<^>*>^>*>',',')
---,7369,SMITH,CLERK,7902,17-DEC-80,800,20,
,7499,ALLEN,SALESMAN,7698,20-FEB-81,1600,300,30,
une autre solution nous vient de sql developper :
select /*CSV*/ * from EMP;
le test du xml viendra plus tard, dans l'immédiat les 2 solutions ci-dessus amènent les commentaires suivants:
- l'appel à l'expression régulière fait commencer les lignes résultats par une virgule... Comment faire en sorte que la première column_value soit évaluée différemment?
- le hint /*CSV*/ semble totalement inopérant. Toutefois le CSV est accessible par le menu Export Data, chaque champ est entre double quotes.