Bonjour, J’ai une base de données libre office. J’ai un champ texte, auquel je souhaite ajouter une phrase sans effacer tous le texte qui se trouve déja dans ce champs. Lorsque j’utilise la fonction UPDATE, tout les textes se trouvant dans mon champ texte sont effacés et remplacés par le texte envoyé par ma commande SQL. J’ai aussi essyé la commande concact sans succès. si quelqu’un pouvais m’aider … Merci d’avance. Bien cordialement.
Bonjour
À adapter :
update "Table1" set "NomChamp" = "NomChamp" || 'ajout'
Nota :
- instruction à exécuter via
Outils
▸SQL
- utilisation du séparateur
'
et non du guillemet"
pour encadrer les chaînes de caractère - l’opérateur de concaténation
||
fonctionne à la fois avec hsqldb et firebird contrairement à la fonctionCONCAT
(voir l’aide sur ce sujet) - nécessaire d’actualiser les enregistrements pour visualiser le résultat si la table était déjà ouverte lors du lancement de la commande
[Ajout 26-02-20 10:00]
Message erreur : Value too long
En français : valeur trop longue, autrement dit il faut d’abord augmenter la taille du champ…
Cordialement
Le champ utilisé est un : mémo [LONGVARCHAR] dont la caractéristique est de pouvoir prendre une quantité de texte infinie. Je peux entrer le nombre de caractère d’un champ : Texte [VARCHAR] mais je ne peux pas rentrer un nombre de caractère dans les champs [LONGVARCHAR] , le logiciel refuse.
Alors je me demands ce qui est trop long, ça ne peut pas être la phrase que je rentre, elle ne represente rien par rapport aux nombres de caractères existant dans “Monchamp”.
Il est bizarre que les 2 façons d’utiliser la fonction CONCAT ne fonctionnent pas ? J’avoue que je recherche du coté de la syntaxe, mais je ne trouve pas… Vous pensez qu’elle est bonne ?
@Libre94 a écrit:
Il est bizarre que les 2 façons d’utiliser la fonction CONCAT ne fonctionnent pas ?
Je me répète, CONCAT ne fonctionne pas pour firebird, raison pour laquelle je recommande d’utiliser l’opérateur ||
à la place Quel est ton type de base ?
J’utilise Libeoffice Base Version: 4.3.5.2 sur Mac OSX 10.6.8. Et j’ai bien sur utiliser `l’opérateur que vous m’avez fait découvrir.
UPDATE "MAtable" SET "NomChamp" = "NomChamp" || 'ajout' WHERE "NomChampAutre" = 'Condition'
Même message d’erreur : Value too long
`
J’ai même transformer mon Champ en TEXTE [VARCHAR] en lui donnant 2500 caractères possible, rien n’y fait…
Et sur cette version la fonction CONCAT n’existerait pas ???
La version LibreOffice 4.3.7 (25 avril 2015) - ancienne branche Stable
elle n’a même pas 5 ans !!!
le problème doit être ailleurs ?
si je t’envoie un exemple de mon fichier, tu pourrais essayer la fonction CONCAT sur ta version de LibreOffice ?
Bonjour, et merci infiniment de votre réponse. Je suis sur ce sujet depuis 5 jours. J’utilise Libeoffice Base Version: 4.3.5.2 sur Mac OSX 10.6.8
J’ai lu l’aide sur CONCAT, mais aucune des versions ne fonctionnent. Je vous donne les codes que j’ai essayé avec les erreurs données par LibreOffice :
UPDATE "MAtable" SET "NomChamp" = "NomChamp" || 'Ajout' WHERE "NomChampAutre" = 'Condition'
Message erreur : Value too long
UPDATE "MAtable" SET "NomChamp" =CONCAT ("NomChamp", 'Ajout') WHERE "NomChampAutre" = 'Condition'
Message erreur : Value too long
UPDATE "MAtable" SET "NomChamp" = ("NomChamp" CONCAT 'Ajout') WHERE "NomChampAutre" = 'Condition'
Message Erreur : Unexpected token: CONCAT in statement [UPDATE “T-Grand COLLER” SET “Envoi Doc le” = (“Envoi Doc le” CONCAT]
Ajout : est une phrase type -24/02/2020: Envoi Mailing Tous les liens PRO. qui doit s’ajouter à la fin des textes qui se trouvent dans “NomChamp”
J’avais déjà essayé la fonction CONCAT sans succès. Si vous pouvez m’aider, ce serai vraiment super, je me casse
la tête dessus…
Merci de votre retour.