2010-02-19 10 views
2

Lorsque j'utilise sqsh en mode interactif, parfois j'aime courir ma requête de la manière suivante je peux l'obtenir dans un joli fichier csv:Obtention des noms de colonnes avec l'option sqsh -m bcp activée?

1> select * from table où Blah = blah

2> go -m bcp> /fichier/nom/ici

le seul problème est que je l'aide de l'option "-m bcp" ne me donne pas les noms de colonnes dans la sortie . Une idée de comment obtenir ces noms de colonne d'une manière "propre"?

Répondre

3

Il y a un mode d'affichage CSV sqsh avez-vous essayé

+0

Je ne vois pas de réponse de l'Asker, mais cela a fonctionné pour moi. – prismaticorb

+1

Le mode csv n'est-il pas '-m bcp'? – andho

0

Essayez:

1> select * from Table where Blah=Blah 
2> go -m csv > /file/name/here 
0

Outre csv le style mentionné dans d'autres réponses, le style par défaut horiz combinée à une valeur appropriée dans colsep (pas bcp_colsep) produira une sortie séparée avec des noms de colonnes.

1> \set colsep="|" 

1> select * from Table where Blah=Blah 
2> go 
|heading1|heading2| 
|--------|--------| 
|row1 |col2 | 
|row2 |col2 | 

Cependant, les valeurs de la colonne sont rembourrés et à la fois l'en-tête-soulignement et une première colonne de séparation avant la première colonne sont également imprimés. Ceux-ci pourraient être enlevés avec awk, par exemple. Peut-être il n'y a pas de solution miracle ...

Un caractère de tabulation comme séparateur de colonne doit être insérée littéralement avec CtrlV - Tab à moins qu'une sqsh récente est utilisée (les informations de cette question: What options are there for the sqsh style "csv" (or anyway to get tab-delimited out)).