PostgreSQL La base de donnees la plus sophistiquee au monde.

Forums PostgreSQL.fr

Le forum officiel de la communauté francophone de PostgreSQL

Vous n'êtes pas identifié(e).

#1 18/09/2017 14:11:17

databaser
Membre

Erreur sans objet

Bonjour,



Je remplis une table et lorsque je l'enregistre il est inscrit : "Erreur de syntaxe sur ou près de ";" LINE 3 : ;^.

Quelle Line 3 ?? Line 3 mais quelle colonne ? Je suis déjà à la 19ème ligne et cette erreur apparaît parfois lorsque j'enregistre mais parfois n'apparaît et les nouvelles données sont enregistrées.

Lorsque cette erreur est annoncée et si je ferme la table et la rouvre, la ligne que j'ai remplis n'a pas été enregistrée. Je ne vois vraiment pas où est le problème!

Merci d'avance,

Dernière modification par databaser (18/09/2017 14:26:17)

Hors ligne

#2 19/09/2017 08:07:15

gleu
Administrateur

Re : Erreur sans objet

A priori, le problème vient de la ligne 3. Mais bon, difficile de dire quoi que ce soit de plus étant donné le peu d'informations données (par exemple, quelle est la requête qui renvoie ce message d'erreur).

Hors ligne

#3 19/09/2017 17:28:03

databaser
Membre

Re : Erreur sans objet

Bonjour Gleu,

Il n'y a aucune requête. Je double-clique sur une cellule, j'écris une valeur, et je passe à la suivante. Je sauvegarde de manière fréquente au cas où, en cliquant sur la disquette d'enregistrement.
Comment peut-il y avoir une erreur à la ligne 3 ? Et quelle cellule (il y en a une 15aine de colonnes)
L'impossibilité d'enregistrement ne se fait pas tout le temps. Parfois, ça enregistre sans souci, et parfois ça met cette erreur...

Oui... j'ouvre la table en cliquant sur la table et "View table", "View all rows". La table s'ouvre comme "Query 1" pour nom d'onglet et il est vrai qu'il y a une requête :

SELECT * FROM bd.metadon 
ORDER BY id ASC

Merci,

Hors ligne

#4 19/09/2017 17:46:31

databaser
Membre

Re : Erreur sans objet

est-ce qu'avoir un caractère spécial, le petit R entouré, dans une cellule de type varchar peut entraîner cette erreur ? Si c'est le cas, j'en avais à la ligne 2 et la ligne 3. Merci,

Hors ligne

#5 19/09/2017 17:47:03

gleu
Administrateur

Re : Erreur sans objet

Si ce n'est pas une requête que vous avez écrit, vous passez par un outil. Indiquer l'outil que vous utilisez pourrait être utile. Indiquer ce que vous faitesavec précision pourrait aussi être utile. En l'occurence, là, avec si peu d'informations, on ne peut pas vous aider.

Hors ligne

#6 19/09/2017 18:01:23

databaser
Membre

Re : Erreur sans objet

désolée... pgAdmin4, PG 9.6 + sous W10. Autre chose ? Les étapes sont indiquées dans mes messages précédents, merci,

Dernière modification par databaser (19/09/2017 18:02:03)

Hors ligne

#7 19/09/2017 18:18:31

dverite
Membre

Re : Erreur sans objet

databaser a écrit :

Comment peut-il y avoir une erreur à la ligne 3 ? Et quelle cellule (il y en a une 15aine de colonnes)

L'impossibilité d'enregistrement ne se fait pas tout le temps. Parfois, ça enregistre sans souci, et parfois ça met cette erreur...

Il y a peut-être un trigger sur la table ou la vue sous-jacente, et ce trigger planterait à la ligne 3 sur certains contenus et pas sur d'autres. C'est plausible si le trigger injecte les variables sans les échapper correctement (erreur commune).


@DanielVerite

Hors ligne

#8 19/09/2017 18:32:53

databaser
Membre

Re : Erreur sans objet

@DanielVerite
Quel trigger ? Ds le Browser, au niveau de la table, si je clique sur "Triggers", il n'y a rien. Idem pour le "Triggers" au niveau de "Tables".
si le trigger injecte les variables sans les échapper correctement (erreur commune). -> c'est-à-dire ?
merci,

Hors ligne

#9 19/09/2017 20:16:17

dverite
Membre

Re : Erreur sans objet

S'il n'y a pas de trigger, ce n'est donc pas ça.

Mais ce qu'il faut comprendre par rapport à l'erreur qui mentionne "LINE 3" c'est que cette ligne 3 ne se réfère par à une ligne de la table, mais à la ligne d'un code SQL qui est appelé plus ou moins directement par la mise à jour que vous faites via l'interface PgAdmin4.

Pour y voir plus clair, il serait utile d'examiner ce code SQL quand l'erreur se produit. Par défaut le paramètre log_statement dit au serveur d'écrire dans son log les requêtes en erreur, donc il y a de bonnes chances que l'information soit dans le log du serveur.


@DanielVerite

Hors ligne

Pied de page des forums