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) :
Voici le .SQL que j'obtiens :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
Et voici l'erreur SQL que j'obtiens :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 spool extract_mysql.spool; set head off; select distinct produit from table_ip; spool off; exit;
Si je me connecte sur la base Mysql directement j'obtiens la meme erreur avec la commande spool :
Code : Sélectionner tout - Visualiser dans une fenêtre à part 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
D'ou proviens cette erreur de SYNTAX ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
Merci d'aider un newbie en MySQL
Partager