Erreur syntaxe sql

Fermé
saezer - 15 juin 2010 à 14:56
 saezer - 18 juin 2010 à 12:07
Bonjour, depuis quelques temps je travaille à la reprise d'un projet Java.
Je dois me connecter à des bases de données puis envoyer les données dans une autre base de données.
Je me connecte sans problèmes, mais lorsque le programme s'attaque à la modification de la base (sous SQL SERVER), j'ai des erreurs de syntaxes.
Lorsque j'ai tenté d'analyser le programme java, je me suis rendu compte que les requêtes, au départ,est prévu pour Mysql. J'ai donc fait des modifs moindres mais ça ne marche toujours pas.
J'aimerai donc savoir si quelqu'un aurait l'amabilité de m'aider à corriger ces satanés erreurs de syntaxes du programme.

voici deux des requêtes dont j'ai besoin:

DROP TABLE 'fichier_patient'.'lio'

CREATE TABLE 'fichier_patient'.'lio' ('id' INT( 25 ) NOT NULL AUTO_INCREMENT ,'sscode' VARCHAR( 15 ) NOT NULL,'BIRTHDATE' DATE NULL ,'lieux' VARCHAR( 255 ) NULL ,'DATEMAJ' DATE NULL , PRIMARY KEY ('id'))

Qui me donne l'erreur suivante: Ligne 1 : syntaxe incorrecte vers 'fichier_patient'.

n'ayant pas réussi à trouver un tuto adéquat, je ne comprend pas d'où viens l'erreur :(


6 réponses

Breub62 Messages postés 2989 Date d'inscription lundi 7 juin 2010 Statut Membre Dernière intervention 17 avril 2014 369
Modifié par Breub62 le 15/06/2010 à 15:12
Pour tes tables tu utilise '(4)ou '(Alt GR+7) ?? Parce que c'est le 2ème qui doit l'être
0
à la base, c'était des '(alt gr+7) mais j'avais des erreurs de syntaxes comme celle là:

Ligne 1 : syntaxe incorrecte vers '

du coup j'ai remplacé tout ça par des '(4)
0
Breub62 Messages postés 2989 Date d'inscription lundi 7 juin 2010 Statut Membre Dernière intervention 17 avril 2014 369
15 juin 2010 à 15:20
Soit c'est '(alt gr+7) ou rien(qui doit marcher aussi) mais jamais '(4) qui ne s'utilisent que lorsque tu met des valeur en dur(ex : Insert into table values('aaaz','hhh') ). Après je ne sais pas si c'est ça ton problème mais essaye d'enlever tout ça devrait être un "mieux".
0
ah il y a du "mieux"

je n'ai plus ces erreurs de syntaxes, j'en ai des nouvelles, merci c'est déjà ça ^^

voici les erreurs et leurs requêtes si jamais ça vous dis quelque chose, j'ai fais des "System.out" pour afficher les requêtes "lu" par par le programme:

DROP TABLE fichier_patient.lio
son erreur:
Impossible de supprimer le table 'fichier_patient.lio' parce qu'il n'existe pas dans le catalogue système.
bon ça a l'air d'être assez clair mais elle existe bien pourtant.


CREATE TABLE fichier_patient.lio (id INT( 25 ) NOT NULL AUTO_INCREMENT ,sscode VARCHAR( 15 ) NOT NULL,BIRTHDATE DATE NULL ,lieux VARCHAR( 255 ) NULL ,DATEMAJ DATE NULL , PRIMARY KEY (id))

son erreur:
Ligne 1 : syntaxe incorrecte vers 'AUTO_INCREMENT'

ALTER TABLE lio ADD INDEX ( sscode )
son erreur:
Syntaxe incorrecte vers le mot clé 'INDEX'

je vais pencher sur ces problèmes histoire d'avancer, étant débutant j'ai un peu de mal.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Salut

Effectivement, il fallait remplacer les apostrophes inversées (\x60) de MySQL par les guillemets (\x22) du standard SQL ou les supprimer (cette dernière option est préférable)

Pour les autoincréments, ne les utilisant pas, je pourrais pas t'indiquer leur équivalent en MSSQL.

Pour ce qui est de créer un index, la syntaxe standard est
CREATE INDEX nom_de_l_index ON nom_de_la_table(colonne {, colonne});
{} représentant une répétition optionnelle
=> pour ce cas là, ce serait donc create index lio_ak1 on lio(sscode);
...car j'ai pris habitude d'AMC*Designor d'utiliser des suffixes pour indiquer la nature de la clé: _pk pour primary key, _fk pour foreign key et _ak pour alternate key
0
merci beaucoup ça me retire une épine du pied.

maintenant je vais pouvoir avancer :)
par contre, je ne comprend pas pourquoi, le programme java ne parviens pas à supprimer la table.

La requête suivante est pourtant bonne:

"DROP TABLE fichier_patient.lio "
ou faut il spécifier un paramètre dans le programme? Je suis bien connecté à la base de données sur le serveur mais j'ai l'erreur suivante:

"Impossible de supprimer le table 'fichier_patient.lio' parce qu'il n'existe pas dans le catalogue système. "
0
j'ai réussi à résoudre ce problème, maintenant il ne me reste qu'à changer l'auto_incrémentation et je devrais être bon. merci pour votre aide ;)
0