Vous n'êtes pas identifié(e).
- Contributions : Récentes | Sans réponse
Pages : 1
#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).
Guillaume.
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.
Guillaume.
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
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
http://blog-postgresql.verite.pro/
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
http://blog-postgresql.verite.pro/
Hors ligne
Pages : 1