添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
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.
Homme Profil pro
Ingénieur développement logiciels
Inscrit en
Juin 2012
Messages
87
Détails du profil
Informations personnelles :
Sexe : Homme
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
Points
179
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.
Homme Profil pro
Ingénieur développement logiciels
Inscrit en
Juin 2012
Messages
87
Détails du profil
Informations personnelles :
Sexe : Homme
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
Points
179
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;
Homme Profil pro
Ingénieur développement logiciels
Inscrit en
Juin 2012
Messages
87
Détails du profil
Informations personnelles :
Sexe : Homme
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
Points
179
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.