Précédent   Forum des professionnels en informatique > Bases de données > MySQL
MySQL Forum d'entraide MySQL. Avant de poster -> FAQ MySQL, Tutoriels MySQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 04/10/2011, 17h11   #1
Nouveau Membre du Club
 
Inscription : janvier 2008
Messages : 109
Détails du profil
Informations forums :
Inscription : janvier 2008
Messages : 109
Points : 33
Points : 33
Par défaut Probleme de commande "spool" dans fichier sql crée à la volée par un .SH

Bonjour;
Je crois que tout est dans le sujet. Je suis sous Linux.

En clair voici mon code .SH qui crée le .SQL et qui l'execute afin de pouvoir créer un spool (fichier temporaire de sortie) :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
 
#!/bin/sh
 
#
# Variables globales
#
USER_MYSQL="biiiiiiip"
PWD_MYSQL="biiiiip"
HOST_MYSQL="dbbuiiip"
SID_MYSQL="pwdbiiip"
#
FIC_EXTRACT_SQL_SPOOL=extract_mysql.spool
FIC_EXTRACT_SQL=extract_mysql.sql
#
# Procedure de creation du script mysql en focntion de la requete plee en argument
creer_script_mysql()
{
echo "spool ${FIC_EXTRACT_SQL_SPOOL};"
echo "set head off;"
echo "${1}"
echo "spool off;"
echo "exit;"
echo
} >${FIC_EXTRACT_SQL}
#################
#
# MAIN
#
{
 
my_query="select distinct produit from table;";
creer_script_mysql "${my_query}"
IF [ $? -neq 0 ]; then
        echo "ERREUR SH : lors de la creation du script mysql \n"
fi
# On l execute
mysql -u${USER_MYSQL} -p${PWD_MYSQL} -h${HOST_MYSQL} ${SID_MYSQL} -e ${FIC_EXTRACT_SQL}
echo "Execution de mysql -u${USER_MYSQL} -p${PWD_MYSQL} -h${HOST_MYSQL} ${SID_MYSQL} -e ${FIC_EXTRACT_SQL}"
IF [ ! -s ${FIC_EXTRACT_SQL_SPOOL} ]; then
{
        echo "ERREUR MYSQL : lors de l'extraction des donees \n"
}
fi
 
 
}
# END generer_config.sh
Voici le .SQL que j'obtiens :
Code :
1
2
3
4
5
6
 
spool extract_mysql.spool;
SET head off;
SELECT DISTINCT produit FROM table_ip;
spool off;
exit;
Et voici l'erreur SQL que j'obtiens :
Code :
ERROR 1064 (42000): You have an error IN your SQL syntax; CHECK the manual that corresponds TO your MySQL server version FOR the RIGHT syntax TO USE near 'spool extract_mysql.spool' at line 1
Si je me connecte sur la base Mysql directement j'obtiens la meme erreur avec la commande spool :
Code :
1
2
3
4
5
6
7
8
 
mysql> spool extract_mysql.spool;
ERROR 1064 (42000): You have an error IN your SQL syntax; CHECK the manual that corresponds TO your MySQL server version FOR the RIGHT syntax TO USE near 'spool extract_mysql.spool' at line 1
mysql> spool ./extract_mysql.spool
    -> ;
ERROR 1064 (42000): You have an error IN your SQL syntax; CHECK the manual that corresponds TO your MySQL server version FOR the RIGHT syntax TO USE near 'spool ./extract_mysql.spool' at line 1
mysql> exit
Bye
D'ou proviens cette erreur de SYNTAX ?
Merci d'aider un newbie en MySQL
Moostiq est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/10/2011, 20h51   #2
Membre Expert
 
Inscription : août 2008
Messages : 1 271
Détails du profil
Informations forums :
Inscription : août 2008
Messages : 1 271
Points : 1 929
Points : 1 929
SPOOL et SET c'est du Oracle sqlplus... ça ne fonctionne pas sur MySql
skuatamad est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 05/10/2011, 09h11   #3
Nouveau Membre du Club
 
Inscription : janvier 2008
Messages : 109
Détails du profil
Informations forums :
Inscription : janvier 2008
Messages : 109
Points : 33
Points : 33
Aïe ! Et bien je m'attendais à une réponse comme celle - là ...
Alors quelle est l'instruction MySQL ?
Arf! Allez je vais fouiller.... Googleismyfriend
Moostiq est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 04h13.


 
 
 
 
Partenaires

Hébergement Web