2 pièce(s) jointe(s)
Update avec set = 'Segmentation de deux colonnes' | Erreur SQL
Bonjour,
Je voudrais passer de ceci :
Pièce jointe 297437
à cela :
Pièce jointe 297442
Lorsque le SNOMJOB est > 6 caractères -> on y met que les 3 premiers caractères dans Trigramme
Lorsque le SNOMJOB est <= 6 caractères -> on y met que les 2 premiers caractères dans Trigramme
Pour le moment j'ai :
Code:
1 2
| SELECT SUBSTR(SNOMJOB,1,3) FROM TBL_FRONT_BBP WHERE LENGTH(SNOMJOB) > 6
SELECT SUBSTR(SNOMJOB,1,2) FROM TBL_FRONT_BBP WHERE LENGTH(SNOMJOB) <= 6 |
et j'ai bien une liste avec les 3 ou 2 premiers chars en fonction de la taille :D
sauf qu'il faut que j'insère sa dans la colonne TRIGRAMME :weird:
Pour modifier mes données je sais qu'il me faudra faire un Update, donc je m'y suis mis aussitôt :
Code:
UPDATE TBL_FRONT_BBP set SNOMJOB=(SELECT SUBSTR(SNOMJOB,1,3) FROM TBL_FRONT_BBP WHERE LENGTH(SNOMJOB) > 6)
Mais j'obtient une erreur : :aie:
Citation:
Erreur SQL : ORA-01427: sous-requête ramenant un enregistrement de plus d'une ligne
01427. 00000 - "single-row subquery returns more than one row"
Je pense que pour remédier au problème il me faudrait faire une boucle, parcourir lignes par lignes la colonne :
boucle qui parcourt lignes par lignes (getline)
si (taille job <= 6)
alors on sectionne les 2 premiers caractères avec substr et on le met dans colonne TRIGRAMME
si condition est vraie on change de ligne
sinon
alors on sectionne les 3 premiers caractères avec substr et on le met dans colonne TRIGRAMME
si condition est vraie on change de ligne
fin de la boucle
voilà, je compte sur votre aide :D
à vrai dire je débute en SQL et j'aimerai vraiment progresser sur ce langage
Merci