Paramètres SQLPlus pour générer un fichier de données séparé par des tabulations

StackOverflow https://stackoverflow.com/questions/106323

  •  01-07-2019
  •  | 
  •  

Question

Quelqu'un a-t-il un bon ensemble de directives de configuration sqlplus pour transformer une requête SQL donnée en une sortie bien séparée par des tabulations pour être insérée dans un tableur ou pour un traitement ultérieur?

Était-ce utile?

La solution

Consultez la documentation Oracle:

Vous pouvez générer un onglet dans Oracle en utilisant la valeur ASCII 9 de l'onglet et la fonction chr:

select chr(9) from dual;

Autres conseils

Comme Justin l’a souligné dans son lien, l’utilisation de la commande SQLPlus de la fonction set colsep permet d’enregistrer la saisie d’un séparateur pour chaque colonne.

Mais pour les délimités par des tabulations, set colsep Chr (9) ne fonctionnera pas.

Pour UNIX ou LINUX, utilisez set colsep '' , l'espace entre les guillemets simples constituant un onglet.

Sous Windows, utilisez les paramètres suivants:

col TAB# new_value TAB NOPRINT
select chr(9) TAB# from dual;
set colsep "&TAB"

select * from table;

Un script particulier que j'ai volé à plusieurs reprises provient d'un fil de discussion AskTom sur extraction de données dans un fichier à plat . Si j'avais besoin d'un fichier plat rapide et sale en SQL * Plus. J'aurais tendance à préférer la fonction DUMP_CSV que Tom a précédemment publiée sur ce fil de discussion, quel que soit le processus en cours.

J'ai une solution stupide. Cela a très bien fonctionné.

Solution

SELECT column1 || CHR(9) || column2 || CHR(9) || column3 ... ...
FROM table

principe derrière

En fait, il ne s'agit que d'une concaténation de chaînes .

CHR (9) - > '\ t'

colonne1 || CHR (9) || column2 - > concat (column1, '\ t', column2)

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top