Résultat select dans fichier txt en bat

Résolu
Mickael864802 Messages postés 18 Date d'inscription   Statut Membre Dernière intervention   -  
mamiemando Messages postés 33682 Date d'inscription   Statut Modérateur Dernière intervention   - 17 juil. 2024 à 12:58

Bonjour à tous,

J'ai besoin de stocker le résultat d'une requête select dans un fichier txt via un .bat

Pour cela, j'ai trouvé ceci : 

SELECT divers INTO OUTFILE 'Monchemin\resultat.txt'
[FIELDS TERMINATED BY ',']
[OPTIONALLY ENCLOSED BY '"']
[LINES TERMINATED BY '\n']
FROM parametre
WHERE [Condition];

Lorsque j'exécute cette requête directement et manuellement en cmd (sqlplus), une erreur m'indique que le from est mal placé. Si je le place avant ou après le INTO OUTFILE la commande sql ne se termine pas correctement.

Est-ce possible de faire cela ainsi ou auriez vous une autre manière de faire ?

A voir également:

1 réponse

mamiemando Messages postés 33682 Date d'inscription   Statut Modérateur Dernière intervention   7 857
 

Bonjour,

Si tu as gardé le texte entre crochet, c'est la cause de ton erreur. Dans la plupart des documentations, du texte entre crochet signifie qu'il est optionnel et/ou à adapter en fonction de tes besoins. Par ailleurs, il faut probablement échapper ton \, car en programmation, \ sert à échapper des caractères spéciaux... et donc \ s'écrit souvent \\.

Une requête possible serait donc :

SELECT divers INTO OUTFILE 'Monchemin\\resultat.txt'
FIELDS TERMINATED BY ','
OPTIONALLY ENCLOSED BY '"'
LINES TERMINATED BY '\n'
FROM parametre;

Bonne chance

0
Mickael864802 Messages postés 18 Date d'inscription   Statut Membre Dernière intervention   1
 

Bonjour Mamiemando,

Tout d'abord, merci d'avoir pris le temps de me répondre.

J'ai testé ce que tu m'as dit, voici le résultat : 

as-tu une idée de ce qui coince ?

0
mamiemando Messages postés 33682 Date d'inscription   Statut Modérateur Dernière intervention   7 857 > Mickael864802 Messages postés 18 Date d'inscription   Statut Membre Dernière intervention  
 

Bonjour Mickael,

En fait, j'ai raisonné comme si c'était du MySQL (où SELECT INTO OUTFILE existe bien), mais SQLplus utilise une autre syntaxe. D'après cette discussion, il faut utiliser SPOOL à la place. On peut éventuellement préciser comment formater le résultat (voir ).

spool 'D:\\d_sante\\Livraison\\resultat.txt'

-- Voir https://stackoverflow.com/a/654723/14851404
set colsep ,     -- separate columns with a comma
set pagesize 0   -- No header rows
set trimspool on -- remove trailing blanks
set headsep off  -- this may or may not be useful...depends on your headings.
set linesize X   -- X should be the sum of the column widths
set numw X       -- X should be the length you want for numbers (avoid scientific notation on IDs)

SELECT divers 
  FROM parametre
  WHERE rubrique='WSUPD' AND reference='PATH'

spool off

Bonne chance

0