Bonjour,
J'ai un problème pour insérer dans un fichier texte le résultat d'une requête select.
J'ai besoin de lancer un script MYSQL, dont le résultat est stocké dans une table; à la fin, je veux insérer dans un fichier texte le contenu de cette table.
Comme on ne peut pas ré-écrire en MYSQL dans un fichier déjà existant, il faut que je change chaque fois le nom du fichier de sortie - donc, il faut le créer et le mettre dans une variable.
J'ai un message d'erreur standard, et je ne vois pas où est le problème.
Voici le script, il se trouve dans une procédure stockée.
J'ai fait des tests, la procédure marche et la table TIME_RESULT_END est remplie. La requête OUTFILE marche lorsque je donne un nom de fichier en dur, mais pas quand il s'agit d'une variable.
Code :
Sélectionner tout
-
Visualiser dans une fenêtre à part
1 2 3 4
| DECLARE filename VARCHAR(2000);
(...)
SET filename = CONCAT(DATE_FORMAT(NOW(), '%Y%m%d%H%i%s'), '_result.txt');
SELECT * FROM TIME_RESULT_END INTO OUTFILE filename; |
Quelqu'un a une idée ?
NOTE : Ma version MYSQL est 5.6.17.
Merci.
Ingénieur développement logiciels
Inscrit enJuin 2012Messages87Détails du profil
![](/forums/images/buttons/cross.gif)
Informations personnelles :
Sexe :
![Homme](/forums/images/ranks/male.png)
Localisation : France, Savoie (Rhône Alpes)
Informations professionnelles :
Activité : Ingénieur développement logiciels
Secteur : High Tech - Opérateur de télécommunications
Informations forums :
Inscription : Juin 2012
Messages : 87
Points : 179
Points179
Sélectionner tout -
Visualiser dans une fenêtre à part
SELECT * FROM TIME_RESULT_END INTO OUTFILE @filename;
C'est mieux avec le @?
Sélectionner tout -
Visualiser dans une fenêtre à part
1 2
| SET filename = CONCAT((DATE_FORMAT(NOW(), '%Y%m%d%H%i%s')), '_result.txt');
SELECT * FROM TIME_RESULT_END INTO OUTFILE @filename; |
J'ai essayé plusieurs cas de figure, avec ou sans '@'. Mettre une variable après OUTFILE ne marche pas.
Ingénieur développement logiciels
Inscrit enJuin 2012Messages87![Plus de détails...](/forums/images/profil-etendu.gif)
Détails du profil
![](/forums/images/buttons/cross.gif)
Informations personnelles :
Sexe :
![Homme](/forums/images/ranks/male.png)
Localisation : France, Savoie (Rhône Alpes)
Informations professionnelles :
Activité : Ingénieur développement logiciels
Secteur : High Tech - Opérateur de télécommunications
Informations forums :
Inscription : Juin 2012
Messages : 87
Points : 179
Points179
1 2 3 4 5 6 7 8 9 10
|
SET @path := 'blabla/bla';
SET @fileName := CONCAT((DATE_FORMAT(NOW(), '%Y%m%d%H%i%s')), '_result.txt')
SET @fullPath := CONCAT(@OutputPath,'/',@fileName);
SET @requete := concat("SELECT * INTO OUTFILE ",@fullPath, " FROM TonSchema.TIME_RESULT_END");
prepare s1 from @requete ;
execute s1;
deallocate prepare s1; |
Ingénieur développement logiciels
Inscrit enJuin 2012Messages87Détails du profil
![](/forums/images/buttons/cross.gif)
Informations personnelles :
Sexe :
![Homme](/forums/images/ranks/male.png)
Localisation : France, Savoie (Rhône Alpes)
Informations professionnelles :
Activité : Ingénieur développement logiciels
Secteur : High Tech - Opérateur de télécommunications
Informations forums :
Inscription : Juin 2012
Messages : 87
Points : 179
Points179
Sélectionner tout -
Visualiser dans une fenêtre à part
1 2 3 4 5 6 7 8 9
| SET @prefixdate = DATE_FORMAT(NOW(), '%Y%m%d%H%i%s');
SET @fileNames = CONCAT(@prefixdate, '_result.txt');
SET @fullPath = CONCAT('tmp/', @fileNames);
SET @requete = CONCAT("SELECT * INTO OUTFILE '", @fullPath, "' FROM TIME_RESULT_END ORDER BY project");
prepare s1 from @requete ;
execute s1;
deallocate prepare s1; |
Amicalement,
catadanna
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité,
merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.